Software design patterns

Background:

The Toronto Parking Authority operates over 17,500 parking spots across Toronto. Approximately, 10,000 of these spaces are by 2,000 ticket meters and the additional 7,500 by single space meters. Currently, a customer either purchases a ticket from the machine and places it on the cars dashboard or inserts coins into a single spot meter. Employees have to walk weekly to collect money from these 9,500 locations. Additionally, the Toronto Police Service offers parking enforcement via dispatched personnel who randomly select areas to monitor. These personnel need to check tickets or parking meters manually and issue tickets as needed. In order to minimize the number of locations to collect money, the Toronto Parking Authority wants to develop an online platform to process payment for select spaces where single parking meters are currently used. The spaces will be numbered and the registered customer can select the space number from their device online to initiate payment. Additionally, parking enforcement will have a separate login into the application which will allow them to see whether an occupied space has been paid for or manage the parking locations.

Detailed Specifications: 

Software Requirements Specification: 

Tasks: 

task1: apply at least one design pattern we have introduced, and explain which requirements you think the patterns can help (you have at most one page to answer this question).

task2: design a system that can meet the specifications (hints: Section 4 System Features) via class diagrams, and describe how you design can meet the requirements. Please show the details of classes (including attributes, methods, and relations among classes) in your class diagrams. YOU MUST USE  TO DRAW YOUR DIAGRAM AND SUBMIT THE “.png” of your class diagram, penalty will be imposed for violation. (Your answer to this task should be at most 3 pages.)

Tips: you can put your solutions to task1 and task2 in a PDF file and submit it as an attachment.