Homework 5: Chapters 9 and 10 Questions, due 10/3

Objective: To understand overall design engineering and architectural design

Please do the following problems from the end of Chapter 9 (page 252):

9.2. If a software design is not a program (and it isn’t), then what is it?

9.5. Provide examples of three data abstractions and the procedural abstractions that can be used to manipulate them

9.7. Suggest a design pattern that you encounter in a category of everyday things (e.g., consumer electronics, automobiles, appliances). Fully document the pattern using the template provided in Section 9.5.

9.12. Apply a "stepwise refinement approach" to develop three different levels of procedural abstraction for one or more of the following programs: (a) Develop a check writer that, given a numeric dollar amount, will print the amount in words normally required on a check; (b) Iteratively solve for the roots of a transcendental equation; (c) Develop a simple task scheduling algorithm for an operating system.

Please do the following problems from the end of Chapter 10 (page 290):

10.1. Using the architecture of a house or building as a metaphor, draw comparisons with software architecture. How are the disciplines of classical architecture and software architecture similar? How do they differ?

10.4. Present two or three examples of applications for each of the architectural styles noted in Section 10.3.1.

10.5. Some of the architectural styles noted in Section 10.3.1 are hierarchical in nature and others are not. Make a list of each type. How would the architectural styles that are not hierarchical be implemented?

E-mail me your answers at: cpersiko@ccsf.edu

Return to main CS 177 page