Solve a software development problem using one (or possibly more) of the design patterns that we cover in class. Your problem should be different from your previous projects.
- Statement of Work: Write your problem definition in detail using 100-200 words.
- Design Pattern(s): Select design pattern(s) that are useful in solving the problem you defined. Explain why and how you employ such design pattern(s) in your Project.
- UML: Draw a detailed class diagram of your proposed solution using some UML Diagram Drawing Tool.
- Research: Find an implementation of a design pattern from a well known open source project. Explain the usage of the pattern in the project in detail.
- Implementation: Implement your proposed solution based on the UML Class Diagram using the base Maven Project that you are supplied. The Maven Project produces a executable .jar file typing following command:
mvn clean package
. To learn more about Maven Project, you can read maven in 5 minutes. (https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html) Your project should not expect any input from user, and it should produce decent outputs when compiled by the following command:java -jar target\project.jar
You are allowed to change pom.xml to add or remove any dependency or plugin. - You need to upload the .pdf file and necessary parts of your code. (Do not upload target folder and IDE-specific files)
Submit (1) Statement of Work, (2) Explanation on Utilized Design Patterns, (3) UML Class Diagram, and (4) Research. These written materials should be in a single .pdf file. Submit the .pdf file and (5) Implementation codes (without the target folder and IDE-specific files) to your github classroom repository
Deadline: March 10, 2019.
Please read this document very carefully. Submissions not complying with the To-Do list will be disqualified.