/DesignPatternsProject

Base project for Design Principles projects

Primary LanguageJava

2018-2019 Design Patterns

Project 1

Project Definition

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.

To-Do

  • 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)

To-Submit

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

Important Dates

Deadline: March 10, 2019.

Notes

Please read this document very carefully. Submissions not complying with the To-Do list will be disqualified.