The goal of this assignment is learn to implement code based on a UML diagram.
You will learn how to develop unit tests to test your classes.
You will practice using inhertiance to implement a complex set of reuseable classes.
Details
Implement the classes detailed in the following UML class diagram:
The notation in the diagram above are those generated by the ObjectAid UML Eclipse plugin.
There is no specific format for the toString methods.
Do whatever you deem who provide helpful debugging output for developers using your classes.
You do not know in what order with respect to timestamps and/or finger IDs clients will add Touch events to Trace
ComputeTraceFirst returns the first Point if no timestamps are available.
If timestamps are available but no finger IDs, it returns the earliest point in the Trace
If timestamps and finger IDs are available, it returns the earliest finger ID 0 touch event in the Trace
ComputeTraceLast returns the last Point if no timestamps are available.
If timestamps are available but no finger IDs, it returns the latest point in the Trace
If timestamps and finger IDs are available, it returns the latest finger ID 0 point in the Trace
ComputeTraceAvg returns the simple average of all the locations in the Trace. This is irrespective of the finger ID.
Your implemented classes should live in a package named edu.mtech.esof427.keyboard
Your unit test classes should live somewhere else (e.g. a subfolder in the project)
During the assignment, I want you to produce tests for all your code using JUnit.
You should develop a unit test for each concrete class in the above diagram.
The unit tests should achieve at least line coverage of your implement classes.
To check this, we suggest you use the EclEmma Java code coverage plugin.
I will not be grading your test programs themselves, but you should endeavor to thoroughly test.
I will have my own test suite that I will use to look for bugs in your implented classes.
Submission.
Please submit a zip to the Moodle dropbox containing your Eclipse directory containing your code implementation of all the classes in the UML diagrams.
You should also include your JUnit test suite that at least provides line coverage of all code in your implementation.