Due: Monday March 15, 2004 at the beginning of class
- Follow the general homework directions.
- Make sure you cite all your references and contacts.
- (2 points) Decomposing a system into subsystems reduces the complexity developers have to deal with by simplifying the parts and increasing their coherence. Decomposing a system into simpler parts usually increase a different kind of complexity: simpler parts also means more parts and more interfaces. If cohesion is the guiding principle driving developers to decompose a system into small parts, which competing principle drives them to keep the total number of parts small?
- (2 points) You are developing a system that stores its data on a Unix file system. You anticipate that you will port future versions of the system to other operating systems that provide different file systems. Propose a subsystem decomposition that anticipates this change.
- (2 points) In many architectures, such as the three- and four-tier architectures (Figures 6-21 and 6-22), the storage of persistent objects is handled by a dedicated layer. In your opinion, which design goals have lead to this decision?
- (2 points) Consider a system that includes a web server and two database servers. Both database servers are identical: the first acts as a main server, and the second acts a redundant back-up in case the first one fails. Users use web browsers to access data through the web server. They also have the option of using a proprietary client that accesses the databases directly. Draw a UML deployment diagram representing the hardware/software mapping of this system.
- (2 points) Consider a legacy, fax-based, problem-reporting system for an aircraft manufacturer. You are part of a reengineering project replacing the core of the system with a computer-based system that includes a database and notification system. The client requires the fax to remain an entry point for problem reports. You propose and email entry point. Describe a subsystem decomposition that would allow both interfaces. Note that such systems are used to process many problem reports per day (e.g., 2000 faxes per day).