Chapter Five. Software Architecture: Drill School
To provide technical leadership, an architect must have mastered several fundamental areas of software design as well as aspects of the overall software development process.
Most software architects would agree that software design involves multiple levels of abstraction. The notion of design levels originates from the hardware design levels proposed by Bell and Newell in [Bell 1971]. Design levels help to simplify hardware design because they separate concerns. In design patterns terminology, design levels provide a separation of “forces.”
By limiting the sets of forces that need to be resolved in each design decision, design problems are simplified. This simplification is possible because not all ...