英国软件工程dissertation写作要求-System Development Assignment
TASKS NOTES:
• Start with the answer schema to the first Jade assignment. This is available on Moodle.
• The task for this assignment is to add functionality so a Student can answer a Test.
• In this assignment you must follow the conventions in the starting schema. In particular you must NOT use read-only or public attributes or references but instead always keep these protected and must access data through accessor methods.
1. Code Comparison [2 marks] Compare your code with that in the model answer. Note all differences. If you did not submit a first Jade assignment then you must draw a UML sequence diagrams and a UML collaboration/communication diagram of the Jadescript method c_displayAlternativesCount() in the provided start schema for this assignment.
2. Starting Analysis [2 marks] Start by reading the JadeScript.loadTestData2 and the required report outputs. First draw an analysis level class diagram of how you are going to support a Course of Students who Answer Alternatives in a Test and who get a Mark for each Test. In this diagram show only classes (boxes with names), relationships (lines), multiplicities (0s, 12, and *s) and new methods (names only in the bottom of the class boxes). Get this marked before going any further.
3. Detailed Design [3 marks] Draw a design level class diagram of how you are going to create the system. For all NEW things being added to the system show: classes, collections, collection keys, reference names, attributes, attribute data types.
4. Implementation of Student [2 marks] Create the Course and Student classes. Define a collection for the Student class. Define relationships in the Course class which link it to the data classes collections (allMyStudentsByLastname, allMyTests, allMyResultsByStudent, allmyResultsByTest )
5. Implementation of new methods [2 marks] In the Course class define the methods needed to make the JadeScript loadTestData2 compile and run and populate the collections of the Course class (addStudent, findStudent, addTest, findTest). Define or alter other methods as needed to support these responsibilities.
6. Implementation of new methods [2 marks] Make an Answer class. Make a collection for the Answer class. Make sure that each Student, Test, Question and Alternative has a link to a collection of Answers. Make sure that a student can answer a Question in a Test by selecting an Alternative. Define or alter other methods as needed to support these responsibilities. answer( theTest : Test io; theQuestion : Question io; theAlternative : Alternative io) updating;
7. Implement of Forms [6 marks] A MDI Main Form with a menu (1 mark), Browse Students (1 mark), Add/Edit Students (2 marks), Browse Tests (1 mark), ViewTest (1 mark)
8. Implement of Reports [6 marks] g_displayStudents (1 mark) , h_displayTests (1 mark), i_displayTestAnswersByStudent (2 mark), j_displayTestMarkByStudent (2 marks) The required format of the reports is shown at the end of this document. loadTestData2() updating; vars theCourse : Course; theStudent : Student; theTest : Test; theQuestion : Question; theAlternative : Alternative; begin deleteAll(); beginTransaction; create theCourse; theCourse.set( 'BCSE101', 'Software Engineering 1A' );
commitTransaction; theCourse.addStudent( '12196141', 'Afan', 'Mr', 'AAron' ); theCourse.addStudent( '11195742', 'Smart', 'Dr', 'Very' ); theCourse.addStudent( '12194543', 'Confused', 'Rev', 'Slightly' ); theCourse.addStudent( '04200045', 'Bee-Lover', 'Miss', 'Betty' ); theCourse.addTest( 'Currency Test' ); theTest := theCourse.findTest( 'Currency Test' ); theTest.addQuestion( 1 ,'Which of the following is the currency in China?' ); theQuestion := theTest.findQuestion
( 1 ); theQuestion.addAlternative( 'a', true, 'RMB' ); theQuestion.addAlternative( 'b', false, 'Rice' ); theQuestion.addAlternative( 'c', false, 'Rupee' ); theQuestion.addAlternative( 'd', true, 'Yuan' ); theTest.addQuestion( 2, 'Which of the following is the currency in New Zealand?' ); theQuestion := theTest.findQuestion
( 2 ); theQuestion.addAlternative( 'a', true, 'Dollar' ); theQuestion.addAlternative( 'b', false, 'RMB' ); theQuestion.addAlternative( 'c', false, 'Euro' ); theQuestion.addAlternative( 'd', false, 'Pound' ); theQuestion.addAlternative( 'e', false, 'Chocolate' ); theTest.addQuestion( 3, 'Which of the following is the currency in Italy?' ); theQuestion := theTest.findQuestion
( 3 ); theQuestion.addAlternative( 'a', true, 'Euro' ); theQuestion.addAlternative( 'b', false, 'Pizza' ); theQuestion.addAlternative( 'c', false, 'Rila' ); theQuestion.addAlternative( 'd', false, 'Rupee' ); theTest.addQuestion( 4, 'Which of the following is the currency in England?' ); theQuestion := theTest.findQuestion
( 4 ); theQuestion.addAlternative( 'a', true, 'Pound' ); theQuestion.addAlternative( 'b', false, 'Yuan' ); theQuestion.addAlternative( 'c', false, 'Fish&Chips' ); theQuestion.addAlternative( 'd', false, 'Rupee' ); theQuestion.addAlternative( 'e', true, 'Sterling' ); theCourse.addTest( 'Jade Syntax Test 2' ); theTest := theCourse.findTest( 'Jade Syntax Test 2' ); theTest.addQuestion( 1 ,'Which of the following are indexed data structures?' ); theQuestion := theTest.findQuestion
( 1 ); theQuestion.addAlternative( 'a', true, 'String' ); theQuestion.addAlternative( 'b', false, 'MemberKeyDictionary' ); theQuestion.addAlternative( 'c', false, 'Integer' ); theQuestion.addAlternative( 'd', true, 'Array' ); theTest.addQuestion( 2, 'What data type can represent the value 12.34?' ); theQuestion := theTest.findQuestion
( 2 ); theQuestion.addAlternative( 'a', true, 'Decimal' ); theQuestion.addAlternative( 'b', true, 'Real' ); theQuestion.addAlternative( 'c', false, 'Float' ); theQuestion.addAlternative( 'd', false, 'Number' ); theQuestion.addAlternative( 'e', false, 'String' ); theTest.addQuestion( 3, 'What data type can represent the value 007?' ); theQuestion := theTest.findQuestion
( 3 ); theQuestion.addAlternative( 'a', false, 'Decimal' ); theQuestion.addAlternative( 'b', false, 'Real' ); theQuestion.addAlternative( 'c', false, 'Float' ); theQuestion.addAlternative( 'd', false, 'Number' ); theQuestion.addAlternative( 'e', true, 'String' ); theCourse.addTest( 'Jade Syntax Test 1' ); theTest := theCourse.findTest( 'Jade Syntax Test 1' ); theTest.addQuestion( 1, 'It is best to use the String datatype to store values like 12.34 or 0.00001' ); theQuestion := theTest.findQuestion
( 1 ); theQuestion.addAlternative( 'a', true, 'false' ); theQuestion.addAlternative( 'b', false, 'true' ); theTest.addQuestion( 2, 'It is best to use the String datatype to store values like 12 or 14' ); theQuestion := theTest.findQuestion
( 2 ); theQuestion.addAlternative( 'a', true, 'false' ); theQuestion.addAlternative( 'b', false, 'true' ); theTest.addQuestion( 3, 'It is best to use the String datatype to store values like 007 or 000' ); theQuestion := theTest.findQuestion( 3 ); theQuestion.addAlternative( 'a', true, 'true' ); theQuestion.addAlternative( 'b', false, 'false' ); // 1 a student sits some tests - likes alternative A theStudent := theCourse.findStudent( '12196141' ); theTest := theCourse.findTest( 'Jade Syntax Test 2' ); theQuestion := theTest.findQuestion( 1 ); theAlternative := theQuestion.findAlternative( 'a' ); theStudent.answer( theTest, theQuestion, theAlternative ); theQuestion := theTest.findQuestion( 2 ); theAlternative := theQuestion.findAlternative( 'a' ); theStudent.answer( theTest, theQuestion, theAlternative ); theQuestion := theTest.findQuestion
( 3 ); theAlternative := theQuestion.findAlternative( 'a'); theStudent.answer( theTest, theQuestion, theAlternative ); theTest := theCourse.findTest( 'Jade Syntax Test 1' ); theQuestion := theTest.findQuestion( 1 ); theAlternative := theQuestion.findAlternative( 'a' ); theStudent.answer( theTest, theQuestion, theAlternative ); theQuestion := theTest.findQuestion( 2 ); theAlternative := theQuestion.findAlternative( 'a' ); theStudent.answer( theTest, theQuestion, theAlternative ); theQuestion := theTest.findQuestion( 3 ); theAlternative := theQuestion.findAlternative( 'a'); theStudent.answer( theTest, theQuestion, theAlternative ); // 2 a student sits some tests - likes alternative B theStudent := theCourse.findStudent( '04200045' ); theTest := theCourse.findTest( 'Jade Syntax Test 2' ); theQuestion := theTest.findQuestion( 1 ); theAlternative := theQuestion.findAlternative( 'b' ); theStudent.answer( theTest, theQuestion, theAlternative ); theQuestion := theTest.findQuestion
( 2 ); theAlternative := theQuestion.findAlternative( 'b' ); theStudent.answer( theTest, theQuestion, theAlternative ); theQuestion := theTest.findQuestion( 3 ); theAlternative := theQuestion.findAlternative( 'b'); theStudent.answer( theTest, theQuestion, theAlternative ); theTest := theCourse.findTest( 'Jade Syntax Test 1' ); theQuestion := theTest.findQuestion( 1 ); theAlternative := theQuestion.findAlternative( 'b' ); theStudent.answer( theTest, theQuestion, theAlternative ); theQuestion := theTest.findQuestion( 2 ); theAlternative := theQuestion.findAlternative( 'b' ); theStudent.answer( theTest, theQuestion, theAlternative ); theQuestion := theTest.findQuestion( 3 ); theAlternative := theQuestion.findAlternative( 'b'); theStudent.answer( theTest, theQuestion, theAlternative ); //
3 a student sits some tests - gets all right theStudent := theCourse.findStudent( '11195742' ); theTest := theCourse.findTest( 'Jade Syntax Test 2' ); theQuestion := theTest.findQuestion( 1 ); theAlternative := theQuestion.findAlternative( 'a' ); theStudent.answer( theTest, theQuestion, theAlternative ); theQuestion := theTest.findQuestion( 2 ); theAlternative := theQuestion.findAlternative( 'a' ); theStudent.answer( theTest, theQuestion, theAlternative ); theQuestion := theTest.findQuestion( 3 ); theAlternative := theQuestion.findAlternative( 'e'); theStudent.answer( theTest, theQuestion, theAlternative ); theTest := theCourse.findTest( 'Currency Test' ); theQuestion := theTest.findQuestion( 1 ); theAlternative := theQuestion.findAlternative( 'd' ); theStudent.answer( theTest, theQuestion, theAlternative ); theQuestion := theTest.findQuestion( 2 ); theAlternative := theQuestion.findAlternative( 'a' ); theStudent.answer( theTest, theQuestion, theAlternative ); theQuestion := theTest.findQuestion
( 3 ); theAlternative := theQuestion.findAlternative( 'a'); theStudent.answer( theTest, theQuestion, theAlternative ); theQuestion := theTest.findQuestion( 4 ); theAlternative := theQuestion.findAlternative( 'a'); theStudent.answer( theTest, theQuestion, theAlternative ); // 4 a student sits some tests - gets all wrong :-( theStudent := theCourse.findStudent( '12194543' ); theTest := theCourse.findTest( 'Jade Syntax Test 2' ); theQuestion := theTest.findQuestion( 1 ); theAlternative := theQuestion.findAlternative( 'c' ); theStudent.answer( theTest, theQuestion, theAlternative ); theQuestion := theTest.findQuestion( 2 ); theAlternative := theQuestion.findAlternative( 'd' ); theStudent.answer( theTest, theQuestion, theAlternative ); theQuestion := theTest.findQuestion
( 3 ); theAlternative := theQuestion.findAlternative( 'd'); theStudent.answer( theTest, theQuestion, theAlternative ); theTest := theCourse.findTest( 'Currency Test' ); theQuestion := theTest.findQuestion( 1 ); theAlternative := theQuestion.findAlternative( 'c' ); theStudent.answer( theTest, theQuestion, theAlternative ); theQuestion := theTest.findQuestion( 2 ); theAlternative := theQuestion.findAlternative( 'e' ); theStudent.answer( theTest, theQuestion, theAlternative ); theQuestion := theTest.findQuestion( 3 ); theAlternative := theQuestion.findAlternative( 'd'); theStudent.answer( theTest, theQuestion, theAlternative ); theQuestion := theTest.findQuestion( 4 ); theAlternative := theQuestion.findAlternative( 'd'); theStudent.answer( theTest, theQuestion, theAlternative ); end; output from g_displayStudents(); 04200045 - Bee-Lover, Miss Betty 11195742 - Smart, Dr Very 12194543 - Confused, Rev Slightly 12196141 - Afan, Mr Aaron output from h_displayTests(); Currency Test Jade Syntax Test 1 Jade Syntax Test 2 Output from i_displayTestAnswersByStudent();
***********************************
04200045 - Bee-Lover, Miss Betty Currency Test - not answered Jade Syntax Test 1 1-b 2-b 3-b Jade Syntax Test 2 1-b 2-b* 3-b
***********************************
11195742 - Smart, Dr Very Currency Test 1-d* 2-a* 3-a* 4-a* Jade Syntax Test 1 - not answered Jade Syntax Test 2 1-a* 2-a* 3-e*
***********************************
12194543 - Confused, Rev Slightly Currency Test 1-c 2-e 3-d 4-d Jade Syntax Test 1 - not answered Jade Syntax Test 2 1-c 2-d 3-d
***********************************
12196141 - Afan, Mr AAron Currency Test - not answered Jade Syntax Test 1 1-a* 2-a* 3-a* Jade Syntax Test 2 1-a* 2-a* 3-a Output from j_displayTestMarkByStudent(); ***********************************
04200045 - Bee-Lover, Miss Betty Currency Test - not answered Jade Syntax Test 1 - 0/3 Jade Syntax Test 2 - 1/3
***********************************
11195742 - Smart, Dr Very Currency Test - 4/4 Jade Syntax Test 1 - not answered Jade Syntax Test 2 - 3/3
***********************************
12194543 - Confused, Rev Slightly Currency Test - 0/4 Jade Syntax Test 1 - not answered Jade Syntax Test 2 - 0/3
*********************************** 12196141 - Afan, Mr AAron Currency Test - not answered Jade Syntax Test 1 - 3/3 Jade Syntax Test 2 - 2/3
相关文章
UKthesis provides an online writing service for all types of academic writing. Check out some of them and don't hesitate to place your order.