Documenting System Architecture with Patterns

Patterns explain a design. A professor of mine said, “Every problem in computer science boils down to trade-offs,” which I've found to be true. Patterns capture those trade-offs so that you understand why the design is the way that it is.

Patterns work together to build a larger solution, as you see in Chapter 6. When patterns are used to design and build a system, the patterns are part of the system's documentation. This documentation explains the design choices, as well as how the parts of the solution fit together.

The project that you're working on may be the source of the patterns that you'll write about, as described in the previous section. If the design wasn't created with patterns, or if the project has some unique characteristics, you can use the pattern form to describe the architecture and convey to the readers of the patterns just where the “unmovable walls” exist. This refers to the aspects of the system that may look ordinary but that are actually important structural elements that are tying the whole architecture together. If you've seen the concepts implemented elsewhere, you can write a pattern.

Patterns make a natural complement to a software framework. Patterns can explain the components in the framework and explain where the framework user may need to add extra classes or configuration to make a working application.

A good example of using patterns to document the architecture of a system can be found in Pattern-Oriented ...

Get Pattern-Oriented Software Architecture For Dummies 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.