Monday, January 29, 2018

Pattern-Based Design | Thinking in Patterns | Design Tasks

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.


Pattern-Based Design


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