Pattern-Based Design
- A software designer begins with a requirements model (either explicit or implied) that presents an abstract representation of the system.
- The requirements model describes the problem set, establishes the context.
Thinking in Patterns
Shalloway and Trott suggest the following approach that enables a designer to think in patterns:
- 1. Be sure you understand the big picture—the context in which the software to be built resides. The requirements model should communicate this to you.
- 2. Examining the big picture, extract the patterns that are present at that level of abstraction.
- 3. Begin your design with ‘big picture’ patterns that establish a context for further design work.
- 4. “Work inward from the context” looking for patterns at lower levels of abstraction that contribute to the design solution.
- 5. Repeat steps 1 to 4 until the complete design is fleshed out.
- 6. Refine the design by adapting each pattern to the specifics of the software you’re trying to build.
Design Tasks
- Examine the requirements model and develop a problem hierarchy.
- Determine if a reliable pattern language has been developed for the problem domain.
- Beginning with a broad problem, determine whether one or more architectural patterns are available for it.
- Using the collaborations provided for the architectural pattern, examine subsystem or component level problems and search for appropriate patterns to address them.
- Repeat steps 2 through 5 until all broad problems have been addressed.
No comments:
Post a Comment