Analyse the Case Study documents and develop a candidate architecture to meet the functional and non-functional requirements you have identified in Assignment 1 and Part A of Assignment 2.
Document this candidate architecture with:
An Architectural Notebook.
Make sure this notebook addresses:
a) The key concerns driving the overall architecture.
b) Assumptions and dependencies c) Architecturally significant requirements d) Decisions, constraints, and justifications that shape the architecture e) Architectural mechanisms to be applied f) Key abstractions g) Any architectural frameworks or patterns that will be applied
Use the Architectural Notebook template
A high level Logical View of the architecture in the form of a UML component diagram.
A Physical View of the architecture showing how components will be deployed on hardware in the form of a UML Deployment Diagram.
Part C – Detailed Design
Show how your architecture will support the critical core use case for the system by developing a detailed design to support that use case.
Your design should be consistent with your architecture and respect any component and hardware boundaries.
Document your design with:
A UML Communication Diagram showing the interaction between user interface, control, and domain object classes for the critical core use case.
A UML Sequence Diagram showing the interaction between user interface, control, and domain object classes for the critical core use case.
A UML Design Class Diagram showing all classes, attributes, methods, and relationships required to support the critical core use case.
Part D – Reflection on Object Oriented Design
Reflect on the design principles you have employed in your architecture and design in a written text of between 200 to 1000 words (between 1 and 5 pages).
Make sure your reflection addresses:
a) A discussion of any issues you encountered in deciding on a particular architectural framework or pattern.
b) Identifies and discusses any object oriented design principles you applied in your detailed design.
c) Identifies and discusses any software design patterns you applied in your detailed design.