NOTE: Carefully read this document. In addition, regularly follow the Canvas assignment discussion board for
assignment related clarifications and discussion.
In this assignment you are required to work individually to develop a Resident Care System using Java. Using
Java as a vehicle, you are required to demonstrate your understanding of object-oriented design principles,
design patterns, generics, graphical user interfaces, unit testing and object relational mapping building on the
foundations laid by the Programming Fundamentals course and further developed in COSC1295. The system
you develop should be maintainable and extensible as well as produce substantial value for the stakeholders by
improving the level of patient care. The marks will therefore be awarded both for your functionality as well as
justifying the design decisions and code quality. During the final face to face assessment you will also be
required to justify your design decisions as well as explain how your program can be extended to meet other
This assignment is structured to let you incrementally build your product throughout the semester by
incorporating the OO design principles, Java constructs and technologies introduced in the notes and videos on
Canvas, and developed in the lecturorial and prac sessions. You are required to ensure you make steady
progress and marks will be awarded in the prac classes for completing specific milestones. The main purpose of
this assignment is to develop and demonstrate your problem-solving skills by applying the concepts taught for
a reasonably complex open-ended problem (and to create a complete working system based on agile
specifications). You should not be overly concerned about every minute detail and are free to make reasonable
assumptions (you may check with your lab-tutor if in doubt, who will also mark your final assignment).
Disclaimer: the specification in this assignment is intended to represent a simplified version of a system in real life and
thus is not meant to be an accurate simulation of any real system or service that is being used commercially.
2. Assessment Criteria
This assessment will determine your ability to implement Object-Oriented Java code according to the specifications shown
below. In addition to functional correctness (i.e. getting your code to work) you will also be assessed on code quality.
● You are required to demonstrate your understanding of object-oriented programming constructs encapsulation,
inheritance and polymorphism.
● You are required to promote performance and robustness by using well tested collections and by catching and
handling all exceptions.
● You are required to demonstrate that you have done adequate unit testing considering various business rules
using the JUnit framework.
● You are required to demonstrate all the objects stored in memory can be persisted to a file and restored when
the program starts again.
● Your interaction design must anticipate what users might need next and include appropriate JavaFX elements to
make the system accessible, intuitive, usable and efficient (fewer clicks/keystrokes)
● You are required to ensure all historic data can be archived to a relational database allowing access by external
software and the current system.
● Your object-oriented design should provide high cohesion and low coupling following well established design
principles and patterns. You should justify your design decisions that led to the final product using detailed
comments in the beginning of each class.
● You should reflect on the difficulties/limitations of the technologies used and suggest how these can be
improved by researching and identifying other technologies and tools in a separate one-page report.
Further specifications and assessment criteria will follow throughout the semester.
3. Learning Outcomes
This assessment is relevant to the following Learning Outcomes:
CL01: use the Java programming language in the implementation of small to medium sized application programs that
illustrate professionally acceptable coding and performance standards.
CL02: demonstrate knowledge of the basic principles of the object-oriented development process and apply this
understanding to the analysis and design of solutions for small to medium scale problems.
CLO3: describe and apply basic algorithms and data structures, in particular simple searching and sorting of data stored
in data structures and manipulating data.
CLO4: implement basic event-driven programming and graphical user interfaces in Java.
本网站支持淘宝 支付宝 微信支付 paypal等等交易。如果不放心可以用淘宝交易！
E-mail: email@example.com 微信:itcsdx