|
|
xiii | |
|
|
xv | |
Preface |
|
xvii | |
Acknowledgments |
|
xxi | |
Reader's Guide |
|
xxiii | |
|
What Is Software Architecture? |
|
|
1 | (18) |
|
Architecture as a Vehicle for Communication among Stakeholders |
|
|
3 | (8) |
|
Architecture and Its Effects on Stakeholders |
|
|
3 | (1) |
|
|
4 | (6) |
|
Architecture Description Languages |
|
|
10 | (1) |
|
Architecture as the Manifestation of the Earliest Design Decisions |
|
|
11 | (2) |
|
|
12 | (1) |
|
Architecture as a Reusable, Transferable Abstraction of a System |
|
|
13 | (1) |
|
|
14 | (1) |
|
|
15 | (1) |
|
|
16 | (3) |
|
Evaluating a Software Architecture |
|
|
19 | (24) |
|
Why Evaluate an Architecture? |
|
|
23 | (1) |
|
When Can an Architecture Be Evaluated? |
|
|
24 | (2) |
|
|
26 | (1) |
|
What Result Does an Architecture Evaluation Produce? |
|
|
27 | (3) |
|
For What Qualities Can We Evaluate an Architecture? |
|
|
30 | (2) |
|
Why Are Qualities Attributes Too Vague for Analysis? |
|
|
32 | (2) |
|
What Are the Outputs of an Architecture Evaluation? |
|
|
34 | (3) |
|
Outputs from the ATAM, the SAAM, and ARID |
|
|
34 | (1) |
|
Outputs Only from the ATAM |
|
|
35 | (2) |
|
What Are the Benefits and Costs of Performing an Architecture Evaluation? |
|
|
37 | (4) |
|
|
41 | (1) |
|
|
42 | (1) |
|
The ATAM---A Method for Architecture Evaluation |
|
|
43 | (44) |
|
Summary of the ATAM Steps |
|
|
44 | (1) |
|
Detailed Description of the ATAM Steps |
|
|
45 | (25) |
|
|
45 | (1) |
|
Present the Business Drivers |
|
|
46 | (1) |
|
|
47 | (1) |
|
Identify the Architectural Approaches |
|
|
47 | (3) |
|
Generate the Quality Attribute Utility Tree |
|
|
50 | (6) |
|
Analyze the Architectural Approaches |
|
|
56 | (3) |
|
Brainstorm and Prioritize Scenarios |
|
|
59 | (9) |
|
Analyze the Architectural Approaches |
|
|
68 | (1) |
|
|
68 | (2) |
|
|
70 | (14) |
|
|
71 | (5) |
|
|
76 | (1) |
|
|
77 | (1) |
|
|
78 | (6) |
|
|
84 | (1) |
|
|
84 | (3) |
|
The Battlefield Control System---The First Case Study in Applying the ATAM |
|
|
87 | (22) |
|
|
88 | (1) |
|
|
89 | (11) |
|
|
89 | (1) |
|
Present the Business Drivers |
|
|
89 | (1) |
|
|
89 | (1) |
|
Identify the Architectural Approaches |
|
|
90 | (2) |
|
Generate the Quality Attribute Utility Tree |
|
|
92 | (1) |
|
Analyze the Architectural Approaches |
|
|
92 | (8) |
|
|
100 | (3) |
|
Brainstorm and Prioritize Scenarios |
|
|
100 | (2) |
|
Analyze the Architectural Approaches |
|
|
102 | (1) |
|
|
102 | (1) |
|
Result of the BCS Evaluation |
|
|
103 | (4) |
|
|
103 | (2) |
|
|
105 | (1) |
|
Sensitivities and Tradeoffs |
|
|
106 | (1) |
|
|
106 | (1) |
|
|
107 | (1) |
|
|
107 | (2) |
|
Understanding Quality Attributes |
|
|
109 | (18) |
|
Quality Attribute Characterizations |
|
|
110 | (11) |
|
|
111 | (4) |
|
|
115 | (3) |
|
|
118 | (2) |
|
Characterizations Inspire Questions |
|
|
120 | (1) |
|
Using Quality Attribute Characterizations in the ATAM |
|
|
121 | (3) |
|
Attribute-Based Architectural Styles |
|
|
124 | (1) |
|
|
125 | (1) |
|
|
126 | (1) |
|
|
126 | (1) |
|
A Case Study in Applying the ATAM |
|
|
127 | (84) |
|
|
128 | (1) |
|
Phase 0: Partnership and Preparation |
|
|
129 | (19) |
|
Phase 0, Step 1: Present the ATAM |
|
|
130 | (2) |
|
Phase 0, Step 2: Describe Candidate System |
|
|
132 | (2) |
|
Phase 0, Step 3: Make a Go/No-Go Decision |
|
|
134 | (1) |
|
Phase 0, Step 4: Negotiate the Statement of Work |
|
|
135 | (2) |
|
Phase 0, Step 5: Form the Core Evaluation Team |
|
|
137 | (3) |
|
Phase 0, Step 6: Hold Evaluation Team Kick-off Meeting |
|
|
140 | (2) |
|
Phase 0, Step 7: Prepare for Phase 1 |
|
|
142 | (5) |
|
Phase 0, Step 8: Review the Architecture |
|
|
147 | (1) |
|
Phase 1: Initial Evaluation |
|
|
148 | (35) |
|
Phase 1, Step 1: Present the ATAM |
|
|
149 | (3) |
|
Phase 1, Step 2: Present Business Drivers |
|
|
152 | (5) |
|
Phase 1, Step 3: Present the Architecture |
|
|
157 | (5) |
|
Phase 1, Step 4: Identify Architectural Approaches |
|
|
162 | (2) |
|
Phase 1, Step 5: Generate Quality Attribute Utility Tree |
|
|
164 | (8) |
|
Phase 1, Step 6: Analyze the Architectural Approaches |
|
|
172 | (11) |
|
Hiatus between Phase 1 and Phase 2 |
|
|
183 | (1) |
|
Phase 2: Complete Evaluation |
|
|
184 | (18) |
|
Phase 2, Step 0: Prepare for Phase 2 |
|
|
184 | (3) |
|
|
187 | (1) |
|
Phase 2, Step 7: Brainstorm and Prioritize Scenarios |
|
|
187 | (9) |
|
Phase 2, Step 8: Analyze Architectural Approaches |
|
|
196 | (3) |
|
Phase 2, Step 9: Present Results |
|
|
199 | (3) |
|
|
202 | (7) |
|
Phase 3, Step 1: Produce the Final Report |
|
|
203 | (1) |
|
Phase 3, Step 2: Hold the Postmortem Meeting |
|
|
204 | (3) |
|
Phase 3, Step 3: Build Portfolio and Update Artifact Respositories |
|
|
207 | (2) |
|
|
209 | (1) |
|
|
209 | (2) |
|
Using the SAAM to Evaluate an Example Architecture |
|
|
211 | (30) |
|
|
212 | (2) |
|
Inputs to a SAAM Evaluation |
|
|
213 | (1) |
|
Outputs from a SAAM Evaluation |
|
|
213 | (1) |
|
Steps of a SAAM Evaluation |
|
|
214 | (6) |
|
Step 1: Develop Scenarios |
|
|
214 | (2) |
|
Step 2: Describe the Architecture(s) |
|
|
216 | (1) |
|
Step 3: Classify and Prioritize the Scenarios |
|
|
217 | (1) |
|
Step 4: Individuality Evaluate Indirect Scenarios |
|
|
218 | (1) |
|
Step 5: Assess Scenario Interactions |
|
|
218 | (1) |
|
Step 6: Create the Overall Evaluation |
|
|
219 | (1) |
|
|
220 | (2) |
|
|
222 | (16) |
|
|
222 | (1) |
|
Step 1: Develop Scenarios, First Iteration |
|
|
223 | (1) |
|
Step 2: Describe the Architecture(s), First Iteration |
|
|
224 | (1) |
|
Step 1: Develop Scenarios, Second Iteration |
|
|
225 | (2) |
|
Step 2: Describe the Architecture(s), Second Iteration |
|
|
227 | (1) |
|
Step 3: Classify and Prioritize the Scenarios |
|
|
228 | (3) |
|
Step 4: Individuality Evaluate Indirect Scenarios |
|
|
231 | (4) |
|
Step 5: Assess Scenario Interactions |
|
|
235 | (1) |
|
Step 6: Create the Overall Evaluation--Results and Recommendations |
|
|
236 | (2) |
|
|
238 | (1) |
|
|
239 | (1) |
|
|
239 | (2) |
|
ARID--An Evaluation Method for Partial Architectures |
|
|
241 | (14) |
|
|
242 | (3) |
|
|
245 | (1) |
|
|
245 | (3) |
|
|
246 | (1) |
|
|
246 | (2) |
|
A Case Study in Applying ARID |
|
|
248 | (4) |
|
|
249 | (2) |
|
|
251 | (1) |
|
|
252 | (1) |
|
|
252 | (1) |
|
|
253 | (2) |
|
Comparing Software Architecture Evaluation Methods |
|
|
255 | (20) |
|
|
257 | (6) |
|
Questionnaires and Checklists |
|
|
257 | (4) |
|
Scenarios and Scenario-Based Methods |
|
|
261 | (2) |
|
|
263 | (4) |
|
|
264 | (1) |
|
Simulations, Prototypes, and Experiments |
|
|
265 | (1) |
|
|
265 | (1) |
|
Automated Tools and Architecture Description Languages |
|
|
266 | (1) |
|
|
267 | (4) |
|
Software Performance Engineering |
|
|
267 | (1) |
|
|
268 | (3) |
|
|
271 | (2) |
|
|
273 | (1) |
|
|
273 | (2) |
|
Growing an Architecture Evaluation Capability in Your Organization |
|
|
275 | (12) |
|
Growing Organizational Buy-in |
|
|
276 | (1) |
|
Growing a Pool of Evaluators |
|
|
276 | (2) |
|
Establishing a Corporate Memory |
|
|
278 | (7) |
|
|
278 | (3) |
|
|
281 | (2) |
|
|
283 | (2) |
|
|
285 | (1) |
|
|
285 | (2) |
|
|
287 | (10) |
|
|
287 | (1) |
|
What Methods Have You Seen? |
|
|
288 | (1) |
|
Why Evaluate Architectures? |
|
|
288 | (2) |
|
|
290 | (6) |
|
|
296 | (1) |
Appendix A An Example Attribute-Based Architectural Style |
|
297 | (6) |
|
|
297 | (1) |
|
|
298 | (1) |
|
|
298 | (1) |
|
|
299 | (3) |
|
|
299 | (1) |
|
|
300 | (1) |
|
|
301 | (1) |
|
|
301 | (1) |
|
|
302 | (1) |
References |
|
303 | (4) |
Index |
|
307 | |