Develop an object-oriented domain model
Objectives: To learn to identify the relevant use-cases for a given application, describe the use cases, and develop an object-oriented domain model.
Task 1 – Atomic Use Case Specifications
Formally specify the following atomic use cases:
1. Add a skater
2. Add a judge
3. Add a single entry
This use case registers a skater for a Ladies’ Single competition entry, for example. This use must also generates and save the two performances (technical and free style) for the entry, with session and entry score as missing values.
Note: The use case “Add a pair entry” will not be included in the required prototype. If you want to implement this use case, for your own satisfaction, please refer to it as use case 3B.
4. add a session
5. Assign a performance to a session
6. Assign a judge to a session
7. Add a score for a performance by a judge
Task 2 – Build Prototype Version 1
Build version 1 of the prototype for the system. For this version, you only need to implement the post conditions of the use cases listed in Task 1. The system class for this version is to be named FigureskatingSystemV1.
Note that this prototype can be used to verify the feasibility of the design class model.
Your implementation must be such that we can run the provided test program FigureskatingSystemviTester without making any changes to it. This means that the signatures of the methods in the system class must not be changed.
Task 3 – Build Prototype Version 2
Copy all classes of Version 1 to a separate directory. Rename the system class to FigureSkatingSystemV2. Now, modify the system class to build version 2 of the prototype.
For this version, in addition to the implementation of the post-conditions, you are required to implement all the preconditions as well.
Your implementation must be such, that we can run the provided test program Figureskatingsystemv2tester without any changes made to it.
Task 4 – Test the Assign Performance to Session Use Case
Write a test program, called Task4.java, to test the Assign Performance to Session atomic use case. You must have valid case test and invalid case test. You must use a method for the successful cases and a method for each of the invalid cases. The methods must be independent of each other, i.e. each can be called by itself. You must also include comments to explain the purpose of each test.
Task 5 – For CSE5DES Only
Add to your class FigureSkatingSystemVl a method to calculat4 the performance Score of a performance.