In Assignment 1, you developed a design document for the initial design of a marking assistance system. The starting point for your design were the following use cases:
1. Calculate grades, either for an individual student (UC1a) or for all students (UC1b). Display the updated records in a text area
2. Find borderline cases. This is done either by specifying a tolerance that is applied to all grade boundaries (UC2a) or to an explicit range (UC2b). A tolerance of 2 will return all records with totals that are two or less than the minimum total for the next highest grade – e.g. 48, 49 (P), 63, 64 (C), 73, 74 (D) and 83, 84 (HD). A range returns all totals in the range provided, including the endpoints of the range - e.g. 45-49 will return all records with totals of 45, 46, 47, 48 or 49. Display the borderline / range cases in a text area. Both tolerance and range are to be entered by the user via the GUI. For the tolerance use case, note that while one could construct a query to return the required records directly, you are free to use a combination of a query plus Java code.
3. Update an entry for a student – i.e. change marks for one or more assessment items (UC3). Display the updated record in a text area
Refer to the Assignment 1 for the rules for grade assignment. In this assignment, you are not to implement the design that you developed in Assignment 1. Rather, you are to implement the refactored AddressBook design presented in Week 6 (a JavaFX implementation will be provided in addition to the existing Swing implementation). In particular, you must incorporate and employ suitably modified IConnect, IQuery and IView interfaces, as in the Week 6 refactoring of AddressBook. You are free to make use of the code that has been provided for the case study.
In addition, you are to provide
• browsing of query results as per AddressBook - ie via previous and next buttons with wrap-around functionality (UC4).
• implementations of the three use cases presented above (UC1-UC3). Where records are returned, these are to be displayed a record at a time.
• addition functionality to provide a query that displays (a record at a time) all students who have a achieved a specified grade. Records are to be presented in order of increasing mark (UC5).
You are free to use either JavaFX or Swing for your GUI development. JavaDB / Apache Derby must be used as the database - use the table provided for Assignment 1. The coding, documentation and test plan guidelines provided on the unit website must be followed.
You are to submit two files:
1. Your zipped NetBeans project
2. A comprehensive test plan
A revised design document is not required. Refer to the Resources block on the unit website for a test plan exemplar (albeit for COIT20245). Also refer to the acceptance tests provided in the Week 5 sample design document.
Criteria Marks Available
Functionality and conformance to requirements
1. Use case realization (8 marks):
• UC1, UC2, UC5: 2 marks each
• UC3, UC4: 1 mark each
2. Design conformance (implementation of the interaction scheme employed in the Week 6 case study, ie interfaces and dependency injection) (7 marks):
• Model: 3 marks
• Presenter: 1 mark
• View: 2 marks
• Main: 1 mark 15
Conformance to coding/documentation guidelines 5
Source code documentation 5