Assignment 2
Software Engineering
Fall 2021
Due date: Thursday, October 14, 2021 (Midnight)
“Rhythm. Life is full of it; words should have it, too. But you have to train your ear. Listen to the waves on a quiet night; you’ll pick up the cadence. Look at the patterns the wind makes in dry sand and you’ll see how syllables in a sentence should fall”
Arthur Gordon, A Touch of Wonder
In this assignment, you will learn how to apply design patterns to solve problems in software components design. You will work with one partner, I prefer that you choose your partner. The experiment from the first assignment was a nightmare for me! If you cannot find a partner by Wednesday, I will assign you a partner randomly.
This is an easy assignment; it was something else (I would say much harder) but I decided to change it since we have only three weeks left. The assignment, however, is a practice on how to apply some of the well-known patterns to solve problems, it also contains a general design problem.
In this assignment you need to provide solutions to the following problems. Please submit all your answers using one document in in pdf.
Problem 1. A giant industrial company produces different types of vehicles including cars, boats and buses. The company provides its vehicles with three different types of seats: luxury seats, leather seats, and clothes seats. The company buys these seats from 3 different providers: Provider A, B, and C. Any type of vehicle can have any type of seat which might be requested from any of the 3 providers. A control unit (i.e., a client code) can create vehicles of different types depending on the requests that come from the managers.
What design pattern(s) best fits your needs? Using the design pattern(s) you choose, design a solution in the form of a class diagram that shows how these classes can be structured.
Problem 2. You were asked to design a smart control unit for a printer. The printer can print three types of documents: pdf, MSWord, and JPG (images). The smart printer keeps the documents sent for printing in a queue. It can perform 2 types of operations on the jobs in the queue. These are: (1) Add colored frame, which displays a colored frame on the edges of the printed paper. (2) Add background, which adds some background on the printed paper.
The control unit should be designed in a way that allows clients to perform any operation on the jobs in the queue. So the problem is that you have a collection of heterogeneous
objects, on which you want to perform similar operations. The design also allows adding more operations upon client’s needs.
What design pattern(s) best fits your needs? Using the design pattern(s) you choose, design a solution in the form of a class diagram that shows how these classes can be structured.
Problem 3. Suppose you want to design a software component that is responsible for the calculation of the shipping cost for some shipping company. The company ships goods for three destinations: local (in the same city), domestic (same country) and international. The shipping cost consists of two factors:
- Handling:forlocalshipping,handlingisperformedbythecompanyemployees, for domestic, handling is performed by a contractor, and for international shipping, handling is performed by some airplane employees.
- Delivery:bycarforlocaladdresses,trainfordomestic,andairplanesfor international addresses
What design pattern(s) best fits your needs? Using the design pattern(s) you choose, design a solution in the form of a class diagram that shows how these classes can be structured.
Problem 4. Video Store
A new video store intends to offer rentals (and sales) of entertainment material to the wider public. The video store will keep a stock of video tapes, CDs (games and music) and DVDs. The inventory has been ordered from suppliers. All entertainment media will be bar coded so that a scanning machine integrated with the system can support the rentals, returns, and sales. Existing customers will be able to place reservations on entertainment material to be collected at a specific date. The system must have a flexible search engine to answer customer enquiries, including enquiries about the material that the video store does not stock (but may order it on request).
System Requirements:
- The video store keeps an extensive library of current and popular movie titles in stock. A particular movie may be held on video tapes or disks
- Amoviecanberentedforaparticularrentalduration(indays),witharentalcharge for that period
- Thevideostoremustbeabletoanswerimmediatelyanyqueriesaboutamovie’s stock availability. The current condition of each tape and disk must be known and recorded, together with generic information about the percentage of video tapes and disks in excellent renting condition
Scanning Device
<
Rent Video
Reserve Video
Return Video
Employee
Order Video
A use-case diagram for the video store
Maintain Customer Answer Enquiry
a. Designanarchitecturalcontextdiagramforthevideostoresystem.Pleasestate any assumptions you make
b. Definethearchetypesandrefinethearchitectureintocomponents,designthe component structure for the system