Table of Contents Previous Section Next Section

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 design forces are equally important at all levels. Design levels are defined in terms of a reference model. The reference model partitions and allocates the major design forces so that each force is resolved at an appropriate level.

The separation of design levels is an important, but missing, element in most object technology practice. Design levels are particularly important for the creation and understanding of object-oriented architecture.

    Table of Contents Previous Section Next Section