April 2003
Intermediate to advanced
560 pages
16h 53m
English
An object-oriented program's runtime structure often bears little resemblance to its code structure. The code structure is frozen at compile-time; it consists of classes in fixed inheritance relationships. A program's runtime structure consists of rapidly changing networks of communicating objects. In fact, the two structures are largely independent. Trying to [understand] one from the other is like trying to understand the dynamism of living ecosystems from the static taxonomy of plants and animals, and vice versa.
—E. Gamma, R. Helms, R. Johnson, and J. Vlissides [Gamma 95]
In Chapter 2, we stated that software architecture describes elements of a system ...