Patterns for Generating a Layered Architecture

By: B. Rubel
Published in: PLoPD1
Pages: 119-128

Summary: Provide a natural decomposition of system requirements into a layered architecture. Mechanical control systems are used as an example.

Category: Architectural, Reactive and Real-Time Systems

Pattern: Pedestal

Pages: 120-124

To create a layered architecture: (1) Select and order a set of domains. (2) Reflect the real-world domains in the software domain to form a model of the real world. The real-world domains form architectural layers. (3) Add a layer on the software model with objects that organize the behavior of the model. (4) Add another layer that connects the previous layers to a client.

Pattern: Bridge

Pages: 124

Given the layered architecture that results from using Pedestal, what can you do with the components that are part of different layers? Create a separate world for each domain. Information transfer between domains is enabled by a communication channel.

Pattern: Symmetrical Reuse

Pages: 125-127

Layers of the architecture in Pedestal support reuse. Encapsulation hides the details of how components use objects in lower layers.

Pattern: Elevate References to Enhance Reuse

Pages: 127-128

To model a relationship between two objects, implement the relationships in an object in a higher layer in the architecture.

Category: Design Process