In this block we'll finally get into exploring Design Patterns. This, by implement patterns from the book and from the lectures as well as through using UML as notation for discussing design.
Please follow the below folder/file structure for the handin of this block.
B3.zip
Ex1
Use-case-diagram.[png|jpg|gif|pdf]
Ex2
Class-diagram.[png|jpg|gif|pdf]
Ex3
ObserverPattern
(VS solution)Ex4
VisitorPattern
(VS solution)Ex5
CommandPattern
(VS solution)Ex6
Reverse-engineered.[png|jpg|gif|pdf]
Ex7
Re-engineered.[png|jpg|gif|pdf]
Consider the below requirements for a library system. Identify the actors and construct a UML use case diagram.
Create a UML class diagram from the below description. Begin with a noun and verb analysis.
A customer wants to make an order from a retail catalog. The customer can make the payment in one of these three kinds: cash, cheque, or credit card. The order contains order details, each with its associated item. Each order carries the date in which it has been posted and its status (pending, delivered, etc).
Implement the Observer pattern as discussed in the lectures and the course book. In the context of the Weather Station Project. You will have to change the code from Java to C#. Add the Heat Index display element as described on page 61 of the course book.
Consider the polymorphism example given in the lectures, where Employees are either Secretaries or Managers. Use the Visitor pattern to calculate the salary of employees.
Use the command pattern example from the course book as inspiration, and implement the pattern for a different, but suitable, domain.
Reverse engineer the graphical encryption/decryption system that you built in block one, using the UML class diagram notation. In other words, your task is to create a model of your implementation in UML.
When building the graphical encryption/decryption system in block 1, little attention was paid to design principles and patterns of software design. In this exercise you are to systematically analyze your chat system and make changes to the design.
Refactor your UML representation created in the previous exercise, by introducing patterns and principles as you see fit. Be sure to at least consider all patterns discussed in this course.