Here is the scenario:
"Desks 'R' We" is automating their plant to build custom desks.
Your team has been contracted to build the automation software. In the plant, there are three (or more, if successful!) automated lines used to assemble the desks to order. Each line can take a desk from material to finish.
"Desks 'R' We" makes several types of desks and can provide different features for each. The desks come in different styles - e.g. Left 'L', Right 'L', Standard, Rolltop, Executive - and can be made from different materials in assorted colors.
Several accessories and features can be part of the desk. Such items as monitor stands/brackets, elevation (powered or manual), drawers, shelves, keyboard/mouse trays, and others.
These accessories are often supplied by one or more third parties.
Your task is:
1. Spend some time looking at options for desks. Use sites such as Office Depot, Staples, Sauder, or others for ideas. Assume that accessories can come in more than one style. Write up what you discover and how you will use it in your implementation.
2. Using strategy, observer, decorator, factory method, abstract factory, and singleton, design a software control system for the automated production lines.
a. Describe why you made the architectural choices that you did.
b. Provide a UML class diagram to illustrate the system.