Preface |
|
xi | |
About the Author |
|
xv | |
|
1 Architecture and Its Significance |
|
|
1 | (18) |
|
|
1 | (1) |
|
|
2 | (5) |
|
|
7 | (2) |
|
1.4 Distributed Development |
|
|
9 | (3) |
|
1.5 Practice for Architecture-Centric Engineering |
|
|
12 | (4) |
|
|
16 | (1) |
|
|
17 | (2) |
|
|
17 | (2) |
|
2 Stakeholders and Their Business Goals |
|
|
19 | (20) |
|
|
19 | (1) |
|
2.2 Influence of Business Goals on the Architecture |
|
|
20 | (3) |
|
2.3 Representing Business Goals |
|
|
23 | (3) |
|
2.4 Refining Business Goals |
|
|
26 | (1) |
|
2.5 Translating Engineering Objectives into Architectural Requirements |
|
|
27 | (6) |
|
2.6 Prioritizing Architectural Requirements |
|
|
33 | (1) |
|
|
34 | (2) |
|
|
36 | (3) |
|
|
37 | (2) |
|
3 Establishing Broad Functional Understanding |
|
|
39 | (18) |
|
|
39 | (1) |
|
|
40 | (1) |
|
|
41 | (4) |
|
|
45 | (2) |
|
3.5 An End-to-End Operational View |
|
|
47 | (5) |
|
|
52 | (2) |
|
|
54 | (1) |
|
|
55 | (2) |
|
|
55 | (2) |
|
4 Getting Ready for Designing the Architecture |
|
|
57 | (44) |
|
|
57 | (2) |
|
4.2 Architectural Drivers |
|
|
59 | (2) |
|
|
61 | (20) |
|
|
64 | (3) |
|
|
67 | (2) |
|
|
69 | (2) |
|
|
71 | (1) |
|
4.3.5 Language Extension View |
|
|
72 | (3) |
|
4.3.6 User Interaction View |
|
|
75 | (2) |
|
4.3.7 Component Interaction View |
|
|
77 | (2) |
|
|
79 | (2) |
|
|
81 | (15) |
|
4.4.1 Tactics for Availability |
|
|
82 | (3) |
|
4.4.2 Tactics for Interoperability |
|
|
85 | (2) |
|
4.4.3 Tactics for Modifiability |
|
|
87 | (3) |
|
4.4.4 Tactics for Performance |
|
|
90 | (2) |
|
4.4.5 Tactics for Security |
|
|
92 | (2) |
|
4.4.6 Tactics for Testability |
|
|
94 | (1) |
|
4.4.7 Tactics for Usability |
|
|
95 | (1) |
|
|
96 | (1) |
|
|
97 | (4) |
|
|
98 | (3) |
|
5 Creating the Architecture |
|
|
101 | (28) |
|
|
101 | (2) |
|
5.2 Architecture of the Building Automation System |
|
|
103 | (13) |
|
5.2.1 Support for Adding New Field Devices |
|
|
106 | (4) |
|
5.2.2 Addressing Latency and Load Conditions |
|
|
110 | (3) |
|
5.2.3 Addressing International Language Support |
|
|
113 | (3) |
|
5.3 Architecture Trade-Offs |
|
|
116 | (4) |
|
5.3.1 Revisiting Modifiability Drivers |
|
|
116 | (2) |
|
5.3.2 Revisiting Performance Drivers |
|
|
118 | (2) |
|
5.4 The Final Architecture |
|
|
120 | (1) |
|
|
120 | (2) |
|
|
122 | (7) |
|
|
127 | (2) |
|
6 Communicating the Architecture |
|
|
129 | (34) |
|
|
129 | (1) |
|
6.2 Views as a Basis for Documentation |
|
|
130 | (1) |
|
|
131 | (1) |
|
6.4 Building an Architecture Description Document |
|
|
132 | (1) |
|
6.5 Architecture Description for the Building Automation System |
|
|
133 | (27) |
|
6.5.1 Section 1: Document Road Map |
|
|
133 | (1) |
|
6.5.1.1 Section 1.1: Description of the Architecture Documentation |
|
|
133 | (1) |
|
6.5.1.2 Section 1.2: How Stakeholders Can Use the Documentation |
|
|
134 | (2) |
|
6.5.2 Section 2: System Overview |
|
|
136 | (1) |
|
6.5.2.1 Section 2.1: Business Goals |
|
|
136 | (1) |
|
6.5.2.2 Section 2.2: System Context |
|
|
137 | (3) |
|
6.5.2.3 Section 2.3: Functions |
|
|
140 | (2) |
|
6.5.2.4 Section 2.4: Quality Attribute Requirements |
|
|
142 | (1) |
|
6.5.2.5 Section 2.5: Constraints |
|
|
143 | (1) |
|
6.5.2.6 Section 2.6: Architectural Drivers |
|
|
143 | (2) |
|
6.5.3 Section 3: View Template |
|
|
145 | (1) |
|
|
145 | (1) |
|
6.5.4.1 Section 4.1: Module View |
|
|
145 | (1) |
|
6.5.4.2 Section 4.2: Component-and-Connector View |
|
|
146 | (9) |
|
6.5.4.3 Section 4.3: Deployment View |
|
|
155 | (2) |
|
6.5.5 Section 5: Mapping between Views |
|
|
157 | (3) |
|
6.5.6 Section 6: Rationale |
|
|
160 | (1) |
|
|
160 | (2) |
|
|
162 | (1) |
|
|
162 | (1) |
|
7 Architecture and Detailed Design |
|
|
163 | (16) |
|
|
163 | (1) |
|
|
164 | (1) |
|
7.3 Creating the Domain Object Model |
|
|
164 | (3) |
|
|
167 | (7) |
|
7.3.1 Addressing Architectural Responsibilities |
|
|
169 | (5) |
|
7.3.2 Addressing Functional Responsibilities |
|
|
174 | (1) |
|
|
174 | (3) |
|
|
177 | (2) |
|
|
177 | (2) |
|
8 Role of Architecture in Managing Structural Complexity |
|
|
179 | (22) |
|
|
179 | (1) |
|
8.2 Analyzing System Complexity |
|
|
180 | (9) |
|
|
182 | (2) |
|
8.2.2 Partitioning Algorithms |
|
|
184 | (2) |
|
|
186 | (3) |
|
8.3 Managing Structural Complexity |
|
|
189 | (7) |
|
8.3.1 Testing the Hypothesis |
|
|
190 | (6) |
|
8.4 Discussion and Conclusions |
|
|
196 | (1) |
|
|
197 | (4) |
|
|
198 | (3) |
Index |
|
201 | |