Chapter 10. Every System Is Perfect…

For What It Was Designed to Do!

Analyzing system behavior
Analyzing system behavior

Much of what architects do is reason about the behavior of complex systems: systems that have many pieces and complex interrelationships. There’s an entire field dedicated to such reasoning, called systems thinking or complex systems theory. While popular software architecture definitions focus on a system’s components and interrelationships, systems thinking emphasizes behavior (Chapter 8). As architects, we should view structure simply as a means to achieve a desired behavior. Thinking in systems helps us do so.

Heater as a System

A residential heater provides a canonical example of a system, which we also look at when we realize that control is an illusion (Chapter 27). As demonstrated in Figure 10-1, a heating system’s typical architecture diagram would depict the components and their relationships: a furnace generates hot water or air, a radiator or air duct delivers the heat to the room, and a thermostat controls the furnace. The structural/control system theory point of view, shown at the top of the figure, considers the thermostat the central element: it switches the furnace on and off as needed to regulate the room temperature.

A structural view (top) and a systems view (bottom) of a heater
Figure 10-1. A structural view (top) and a systems ...

Get The Software Architect Elevator 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.