Principles, Properties, and Structures

Late in this book’s review process, one of the reviewers asked us to provide our personal opinion, in the form of commentary, on what a reader could learn from each chapter. The idea was intriguing, but we did not like the fact that we would have to second-guess the chapter authors. Asking the authors themselves to provide a meta-analysis of their writings would lead to a Babel tower of definitions, terms, and architectural constructs guaranteed to confuse readers. What was needed was a common vocabulary of architectural terms; thankfully, we realized we already had that in our hands.

In the Foreword, Stephen Mellor discusses seven principles upon which all beautiful architectures are based. In Chapter 1, John Klein and David Weiss present four architecture building blocks and six properties that beautiful architectures exhibit. A careful reader will notice that Mellor’s principles and Klein’s and Weiss’s properties are not independent of each other. In fact, they mostly coincide; this happens because great minds think alike. All three, being very experienced architects, have seen many times in action the importance of the concepts they describe.

We merged Mellor’s architectural principles with the definitions of Klein and Weiss into two lists: one containing principles and properties (Table 1), and one containing structures (Table 2). We then asked the chapter authors to mark the terms they thought applied to their chapters, and produced a corresponding legend for each chapter. In these tables, you can see the definition of each principle, property, or architectural construct that appears in the chapter legend. We hope the legends will guide your reading of this book by giving you a clean overview of the contents of each chapter, but we urge you to delve into a chapter’s text rather than simply stay with the legend.

Table 1. Architectural principles and properties

Principle or propertyThe ability of an architecture to...
Versatility

...offer “good enough” mechanisms to address a variety of problems with an economy of expression.

Conceptual integrity

...offer a single, optimal, nonredundant way for expressing the solution of a set of similar problems.

Independently changeable

...keep its elements isolated so as to minimize the number of changes required to accommodate changes.

Automatic propagation

...maintain consistency and correctness, by propagating changes in data or behavior across modules.

Buildability

...guide the software’s consistent and correct construction.

Growth accommodation

...cater for likely growth.

Entropy resistance

...maintain order by accommodating, constraining, and isolating the effects of changes.

Table 2. Architectural structures

StructureA structure that...
Module

...hides design or implementation decisions behind a stable interface.

Dependency

...organizes components along the way where one uses functionality of another.

Process

...encapsulates and isolates the runtime state of a module.

Data access

...compartmentalizes data, setting access rights to it.

Get Beautiful Architecture 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.