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 ...

Get Software Architect Bootcamp, Second Edition now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.