Systems Architecture · Chapter 4
Course modeling language
This text follows Dov Dori’s Object-Process Methodology (OPM) throughout, our method for representing architecture.
| Question | Produces |
|---|---|
| 4a. What is the system? | An object defining the abstraction of form |
| 4b. What are the principal elements of form? | The first- and second-level downward abstractions |
| 4c. What is the formal structure? | Spatial and connectivity relationships among the objects |
| 4d. What are the accompanying systems? What is the whole product system? | Objects essential for delivering value, and their relationships |
| 4e. What are the system boundaries? What are the interfaces? | A clear boundary between system and context |
| 4f. What is the use context? | Objects that are not essential to value, but inform function and design |
Form is the physical or informational embodiment of a system that exists, or has the potential for stable, unconditional existence, for some period of time, and is instrumental in the execution of function. Form includes the entities of form and the formal relationships among the entities. Form exists prior to the execution of function.
A beach house: the floor plan (a) and finished result (b) are both representations of the same form. Source: Crawley, Cameron & Selva (2016), Fig. 4.1. © The Sater Design Collection, Inc.
An airline emergency card represents informational form. Its instructions help passengers respond to an emergency. Source: Crawley, Cameron & Selva (2016), Fig. 4.2. © Cabin Safety International Ltd.
An object is that which has the potential for stable, unconditional existence for some period of time.
Left: a simple object. Center: an object with states shown directly. Right: an object with an explicit attribute (linked by the “is characterized by” double-triangle), which itself has states. Source: Crawley, Cameron & Selva (2016), Fig. 4.3.

Form representation
Form will be modeled throughout as objects of form, plus the formal structure among them.

Source: Crawley, Cameron & Selva (2016), Fig. 4.5. Source: PumpBiz.com.
This gives us a specialization relationship: Pump ← (unfilled triangle) → Centrifugal Pump.
“Pump” specializes to “Centrifugal pump” (open triangle), which decomposes into its ten elements of form (filled triangle). Source: Crawley, Cameron & Selva (2016), Fig. 4.6.
Hierarchy of pump elements
Hierarchy can rank the ten elements too: cover/impeller/housing/motor shaft/motor carry the most scope and function; O-ring/seal/water-slinger are mid-rank; screws and locking nut are least important.
| Parts list | Abstractions used to designate elements of form |
|---|---|
| Cover | Cover |
| Screws | Screws (class of 5) |
| O-ring | O-ring |
| Locking nut | Locking nut |
| Impeller | Impeller |
| Seal | Seal |
| Housing | Housing |
| Water slinger | Water slinger |
| Motor | Motor; motor shaft |
Nine parts-list entries become ten abstractions: separate the rotating shaft from the non-rotating motor.
Source: Crawley, Cameron & Selva (2016), Table 4.2, p. 74.
| Scope / rank | Elements of form |
|---|---|
| Whole system | Centrifugal pump |
| Highest-priority elements | Cover, impeller, housing, motor shaft, motor |
| Middle rank | O-ring, seal, water slinger |
| Fasteners | Screws (class), locking nut |
Source: Crawley, Cameron & Selva (2016), Table 4.3, p. 75; explanatory rank labels added.
Everything at once: specialization (Pump → Centrifugal pump), two-level hierarchic decomposition (Pump/Motor assembly), class/instance (Screw → Screw #1), and an attribute with states (Motor shaft → Spinning: yes/no). Source: Crawley, Cameron & Selva (2016), Fig. 4.9.
Formal relationships, or structure, are the relationships between objects of form that have the potential for stable, unconditional existence for some duration of time and may be instrumental in the execution of functional interactions.
Spatial / topological
Where things are: location or placement: above/below, near/far, within, adjacent to, encircling. Implies only placement, not the ability to transmit anything.
Connectivity
What is connected, linked, or joined to what. Explicitly creates the ability to transfer or exchange something between objects: a wire, a shared address, a bearing.
Architectural relevance test
The key question for either type: “Is this relationship key to some important functional interaction, or to the successful emergence of function and performance?”
A binary link, drawn as a single-headed arrow with a label: “the housing surrounds the impeller.” The direction of the arrow is arbitrary: it implies no exchange, interaction, or causality, just a relationship that exists. Source: Crawley, Cameron & Selva (2016), Fig. 4.13.
The five key elements from the hierarchy, connected by their important spatial/topological relationships. Source: Crawley, Cameron & Selva (2016), Fig. 4.14.
DSM: an N-squared matrix used to map the connections between one element of a system and the others. Read down the column to the relationship at the row heading.
Read column → cell → row. X marks self; a blank means no relationship is recorded.
| Object list | Cover | Impeller | Housing | Motor | Motor shaft |
|---|---|---|---|---|---|
| Cover | X | Close to | Touch | Aligned with | |
| Impeller | Close to | X | Surrounds | Touch / is encircled by | |
| Housing | Touch | Within | X | Touch | Is encircled by / aligned |
| Motor | Touch | X | Within / touches | ||
| Motor shaft | Aligned with | Touch / encircles | Encircles / aligned | Surrounds / touches | X |
Column Housing, row Impeller: “Housing surrounds impeller.” Reverse: “Impeller is within housing.”
Source: Crawley, Cameron & Selva (2016), Table 4.5, p. 85; same relationships as Fig. 4.14.
Placement and connection
Two objects can be adjacent without being connected. A computer and a remote server can be connected without specifying their relative location.
Source: Crawley, Cameron & Selva (2016), Section 4.4, pp. 85–87.
Four pairwise connections among the five principal elements. The labels describe how the parts are joined, not a flow direction. Source: Crawley, Cameron & Selva (2016), Fig. 4.16, p. 87.
Fig. 4.14: spatial / topological

Eight pairs: touching, proximity, containment, encircling, alignment.
Fig. 4.16: connectivity

Four pairs: pressing, bearing support, shaft–impeller fit.
Source: Crawley, Cameron & Selva (2016), Figs. 4.14 and 4.16, pp. 82 and 87.
| Object list | Cover | Impeller | Housing | Motor | Motor shaft |
|---|---|---|---|---|---|
| Cover | X | Presses | |||
| Impeller | X | Had slid onto | |||
| Housing | Presses | X | Presses | ||
| Motor | Presses | X | Connected by bearings | ||
| Motor shaft | Slid onto | Connected by bearings | X |
Column Impeller, row Motor shaft: “Impeller slid onto motor shaft.” The reverse cell uses the book’s “Had slid onto.”
Source: Crawley, Cameron & Selva (2016), Table 4.6, p. 87; same relationships as Fig. 4.16.
S = spatial/topological relationship; C = connectivity relationship.
| Object list | Cover | Impeller | Housing | Motor | Motor shaft |
|---|---|---|---|---|---|
| Cover | X | S | SC | S | |
| Impeller | S | X | S | SC | |
| Housing | SC | S | X | SC | S |
| Motor | SC | X | SC | ||
| Motor shaft | S | SC | S | SC | X |
Source: Crawley, Cameron & Selva (2016), Table 4.7, p. 88.
Beyond spatial/topological and connectivity, several other relationship types simply exist:
Static does not mean permanent
All formal relationships are static at any instant: but they can change: connections made and broken, addresses reassigned, membership revoked.
Pump accompanying systems
For the pump: the inflow and outflow hoses, the pump support structure, and the power/controller are all accompanying systems: without them, the pump delivers no value.
The dashed line is the product/system boundary. Including the operator reminds the architect to consider human interaction with the system. Source: Crawley, Cameron & Selva (2016), Fig. 4.17.
Figure 4.17 lists the accompanying systems. Figure 4.18 shows how they connect and where interfaces cross the product boundary. Source: Crawley, Cameron & Selva (2016), Fig. 4.18, p. 90.
| Boundary crossing | Details to agree across the interface |
|---|---|
| Inflow hose ↔︎ cover | Fit, sealing, allowable pressure |
| Outflow hose ↔︎ housing | Fit, sealing, allowable pressure |
| Pump support ↔︎ motor | Mounting pattern, loads, alignment |
| Power/controller ↔︎ motor | Terminals, electrical supply, control compatibility |
Discuss: A third-party inlet hose leaks at the cover. Is it enough to say “the hose is outside our system boundary”?
Source: Crawley, Cameron & Selva (2016), discussion based on Fig. 4.18 and Section 4.5, pp. 90–91; interface details are teaching examples.
It’s important to understand about two levels down in decomposition: and about two levels out in context: the whole product system and the use context.
We review the same procedure on a software system: bubblesort, which sorts an array by successively swapping adjacent out-of-order entries.
1 Procedure bubblesort (List array, number length_of_array)
2 for i = 1 to length_of_array - 1
3 for j = 1 to length_of_array - i
4 if array[j] > array[j+1] then
5 temporary = array[j+1]
6 array[j+1] = array[j]
7 array[j] = temporary
8 end if
9 end of j loop
10 end of i loop
11 return array
12 End procedure
Trace one left-to-right pass on [4, 2, 3, 1]. Which statements compare entries, and which perform a swap?
“Dualism in philosophy, mind/body, free will/determinism, idealism/materialism appear as contradictory only because of underdeveloped formulation of the concepts involved.”: Hegel’s dialectic, Science of Logic (1812–1816)
The “precedes” relationship informs transfer of control; “contains” informs what executes conditionally. Source: Crawley, Cameron & Selva (2016), Fig. 4.20.
F = follows · P = precedes · W = within · C = contains
| Object list | 1 | 2/10 | 3/9 | 4/8 | 5 | 6 | 7 | 11 | 12 |
Calling routine |
Compiler |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | X | F | |||||||||
| 2/10 | P | X | FW | W | W | W | W | ||||
| 3/9 | PC | X | FW | W | W | W | |||||
| 4/8 | C | PC | X | FW | W | W | |||||
| 5 | C | C | PC | X | F | ||||||
| 6 | C | C | C | P | X | F | |||||
| 7 | C | C | C | P | X | F | |||||
| 11 | P | X | F | ||||||||
| 12 | P | X | |||||||||
|
Calling routine |
|||||||||||
| Compiler |
Column → row. Shading: Fig. 4.20 subset. Dashed rules: system boundary.
Source: Crawley, Cameron & Selva (2016), Table 4.8, p. 94; all cells retained.
Discuss: Does containment in the if block mean lines 5–7 execute on every comparison?
A = array · L = length · T = temporary · I/J = loop indices
C = sharing the procedure’s instructions with the compiler
| Object list | 1/12 | 2/10 | 3/9 | 4/8 | 5 | 6 | 7 | 11 |
Calling routine |
Compiler |
|---|---|---|---|---|---|---|---|---|---|---|
| 1/12 | X | L | L | A | A | A | A | A | AL | C |
| 2/10 | L | X | LI | C | ||||||
| 3/9 | L | LI | X | J | J | J | J | C | ||
| 4/8 | A | J | X | AJ | AJ | AJ | A | C | ||
| 5 | A | J | AJ | X | AJ | AJT | A | C | ||
| 6 | A | J | AJ | AJ | X | AJ | A | C | ||
| 7 | A | J | AJ | AJT | AJ | X | A | C | ||
| 11 | A | A | A | A | A | X | A | C | ||
|
Calling routine |
AL | A | ||||||||
| Compiler | C | C | C | C | C | C | C | C |
Shared variables establish connections; these are not directed runtime flows.
Source: Crawley, Cameron & Selva (2016), Table 4.9, p. 95; all cells retained.
| Pair | Table 4.8: topology | Table 4.9: connectivity |
|---|---|---|
| Lines 5 and 7 | No direct sequence entry | AJT: share array, j, and temporary |
| Line 1 / procedure and calling routine | No relation recorded | AL: array and length interface |
| Procedure statements and compiler | No relation recorded | C: instructions available to compiler |
Discuss: Why does temporary connect lines 5 and 7 even though line 6 lies between them?
Reference
Crawley, E., Cameron, B., & Selva, D. (2016). System Architecture: Strategy and Product Development for Complex Systems. Pearson. Chapter 4.

← Course Home · Systems Architecture · Chapter 4