Chapter four. Software Architecture: Drill School

In order to provide technical leadership, an architect must have mastered several fundamental areas of software design and 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 1971. Design levels help to simplify hardware design because they provide a separation of 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, we simplify design problems. This simplification is possible because ...

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

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.