-
Notifications
You must be signed in to change notification settings - Fork 8
Problems Week 2
Trayan Iliev edited this page May 22, 2019
·
10 revisions
- Refactor your course project from week 1: Create Entity Repositories - extract Entity (domain, model) classes Create-Read-Update-Delete (CRUD) logic into separate Repository (DAO) classes for each top level Entity class (domain aggregate in terms of Domain Driven Design).
- Refactor / implement all Controller (Service) classes in a way that they delegate all Entity CRUD operations to the Repository (DAO) classes.
- Implement all console text input/output Menu and View classes necessary to create, present, update and delete all types of Entities (following the MVC pattern). Use Command design pattern to implement the necessary actions. The command actions implementation should delegate the execution of business logic to the appropriate Controller methods (implemented in previous point).
Create the project summary document using this course project template. More information about projects is available in this presentation. The domain to be modeled by each course project should include all domain objects (entities) specified in the project description Wiki page.
- Create UML Design class diagram using StarUML, including all domain (Entity, Model) classes from project description, with their attributes and relationships. Export it as JPEG image.
- Create UML Analysis class diagram including all domain (Entity, Model) classes, together with additional Controller and View classes you propose for the project, according to MVC pattern. Following stereotypes should be used: <<controll></controll>> - business logic, <<entity></entity>> - data, <<boundary></boundary>> - user interface views. The attributes in analysis class diagram can be suppressed for better readability. Export it as JPEG image.
- Create new Eclipse Java project for your course project. Create all domain (Entity, Model) classes as proposed in the project description in model package. You can change and improve the model classes as necessary.
- Implement all Controller classes with input and validation logic for each model (entity) class you have implemented.
- Add Create-Read-Update-Delete (CRUD) functionality for all entities and collections of them to the Controller classes. The methods should be implemented for: adding new instances, updating the instance state, deleting instance by id, finding all instances of the type, finding instance by id.
- Add formatted reporting functionality for each collection of entites to the Controller class. The report should return as String all entities from given type, as a table - each on separate line. Use formatted String output.
- Create MainDemo class demonstrating all of the above functionality implemented.