Software Design Patterns Course Project

Project: Choose a software system in your own domain. You will design (or refactor) this system by using design patterns. Contact me for the project topic approval first. You will submit the deliverables stated below.

Things to do now

  1. form a group (at most 5)
  2. choose a software system, a topic. The more people in a project group, the more complex should the system be
  3. contact me for project approval
  4. prepare for the first deadline
Full implementation will be a bonus. The least requirement is a running portion of the system that reuses one or two design patterns (depends on the complecity of the pattern reused). The size of project group influeces the running code expectations. If the project group has 5 members, then you should have a running code that hasat least 5 patterns.

Deadlines and Deliverables

February 21st (3rd week) midnight (23:59) Specification report with Use cases. A quick report presenting the use cases in your system. A high level use case diagram is a must. If necessary (if some use cases are complicated) have more elaborated use case diagrams. The report should include use case specifications (textual descriptions)
March 21st (7th week) Intermediate report: Which patterns are appropriate in your system? Why? Among the patterns discussed in the class, which of them are suitable in your system. Give answers to questions why and why not. Is there a modification in the pattern you will reuse? Justify your pattern usage.
April 18th (11th week) Final Report: Include the diagrams showing the pattern reuses in your system. The diagrams should be specialized to your system. (Do not put a class diagram for composite pattern. The class names, attributes should be of your system attributes.) the diagrams will show your usage. Contrast with the previous report. Why did you add another pattern? What difficulties have arised when you apply the patterns? What modification have you done? Have you used patterns other than GoF patterns?
April 25th (12th week) Presentation: 10 minute presentation showing your system design and conclusions. Show your design. What are your observations and comments after the refactoring to patterns or pattern reuse? Was it useful? What difficulties did you encounter? Present your conclusions. For example, "reusuing patterns help us in the following ways .....". Beside this general conlcusions, include comments like "the use of factory pattern help me this way... this pattern has complicated the design ....."