| |
| |
List of Figures | |
| |
| |
List of Tables | |
| |
| |
Preface | |
| |
| |
Acknowledgments | |
| |
| |
Reader's Guide | |
| |
| |
What Is Software Architecture? | |
| |
| |
Architecture as a Vehicle for Communication among Stakeholders | |
| |
| |
Architecture and Its Effects on Stakeholders | |
| |
| |
Architectural Views | |
| |
| |
Architecture Description Languages | |
| |
| |
Architecture as the Manifestation of the Earliest Design Decisions | |
| |
| |
Architectural Styles | |
| |
| |
Architecture as a Reusable, Transferable Abstraction of a System | |
| |
| |
Summary | |
| |
| |
For Further Reading | |
| |
| |
Discussion Questions | |
| |
| |
Evaluating a Software Architecture | |
| |
| |
Why Evaluate an Architecture? | |
| |
| |
When Can an Architecture Be Evaluated? | |
| |
| |
Who's Involved? | |
| |
| |
What Result Does an Architecture Evaluation Produce? | |
| |
| |
For What Qualities Can We Evaluate an Architecture? | |
| |
| |
Why Are Quality Attributes Too Vague for Analysis? | |
| |
| |
What Are the Outputs of an Architecture Evaluation? | |
| |
| |
Outputs from the ATAM, the SAAM, and ARID | |
| |
| |
Outputs Only from the ATAM | |
| |
| |
What Are the Benefits and Costs of Performing an Architecture Evaluation? | |
| |
| |
For Further Reading | |
| |
| |
Discussion Questions | |
| |
| |
The ATAM--A Method for Architecture Evaluation | |
| |
| |
Summary of the ATAM Steps | |
| |
| |
Detailed Description of the ATAM Steps | |
| |
| |
Step 1: Present the ATAM | |
| |
| |
Step 2: Present the Business Drivers | |
| |
| |
Step 3: Present the Architecture | |
| |
| |
Step 4: Identify the Architectural Approaches | |
| |
| |
Step 5: Generate the Quality Attribute Utility Tree | |
| |
| |
Step 6: Analyze the Architectural Approaches | |
| |
| |
Step 7: Brainstorm and Prioritize Scenarios | |
| |
| |
Step 8: Analyze the Architectural Approaches | |
| |
| |
Step 9: Present the Results | |
| |
| |
The Phases of the ATAM | |
| |
| |
Phase 0 Activities | |
| |
| |
Phase 1 Activities | |
| |
| |
Phase 2 Activities | |
| |
| |
Phase 3 Activities | |
| |
| |
For Further Reading | |
| |
| |
Discussion Questions | |
| |
| |
The Battlefield Control System--The First Case Study in Applying the ATAM | |
| |
| |
Preparation | |
| |
| |
Phase 1 | |
| |
| |
Step 1: Present the ATAM | |
| |
| |
Step 2: Present the Business Drivers | |
| |
| |
Step 3: Present the Architecture | |
| |
| |
Step 4: Identify the Architectural Approaches | |
| |
| |
Step 5: Generate the Quality Attribute Utility Tree | |
| |
| |
Step 6: Analyze the Architectural Approaches | |
| |
| |
Phase 2 | |
| |
| |
Step 7: Brainstorm and Prioritize Scenarios | |
| |
| |
Step 8: Analyze the Architectural Approaches | |
| |
| |
Step 9: Present the Results | |
| |
| |
Results of the BCS Evaluation | |
| |
| |
Documentation | |
| |
| |
Requirements | |
| |
| |
Sensitivities and Tradeoffs | |
| |
| |
Architectural Risks | |
| |
| |
Summary | |
| |
| |
Discussion Questions | |
| |
| |
Understanding Quality Attributes | |
| |
| |
Quality Attribute Characterizations | |
| |
| |
Performance | |
| |
| |
Availability | |
| |
| |
Modifiability | |
| |
| |
Characterizations Inspire Questions | |
| |
| |
Using Quality Attribute Characterizations in the ATAM | |
| |
| |
Attribute-Based Architectural Styles | |
| |
| |
Summary | |
| |
| |
For Further Reading | |
| |
| |
Discussion Questions | |
| |
| |
A Case Study in Applying the ATAM | |
| |
| |
Background | |
| |
| |
Phase 0: Partnership and Preparation | |
| |
| |
Phase 0, Step 1: Present the ATAM | |
| |
| |
Phase 0, Step 2: Describe Candidate System | |
| |
| |
Phase 0, Step 3: Make a Go/No-Go Decision | |
| |
| |
Phase 0, Step 4: Negotiate the Statement of Work | |
| |
| |
Phase 0, Step 5: Form the Core Evaluation Team | |
| |
| |
Phase 0, Step 6: Hold Evaluation Team Kick-off Meeting | |
| |
| |
Phase 0, Step 7: Prepare for Phase 1 | |
| |
| |
Phase 0, Step 8: Review the Architecture | |
| |
| |
Phase 1: Initial Evaluation | |
| |
| |
Phase 1, Step 1: Present the ATAM | |
| |
| |
Phase 1, Step 2: Present Business Drivers | |
| |
| |
Phase 1, Step 3: Present the Architecture | |
| |
| |
Phase 1, Step 4: Identify Architectural Approaches | |
| |
| |
Phase 1, Step 5: Generate Quality Attribute Utility Tree | |
| |
| |
Phase 1, Step 6: Analyze the Architectural Approaches | |
| |
| |
Hiatus between Phase 1 and Phase 2 | |
| |
| |
Phase 2: Complete Evaluation | |
| |
| |
Phase 2, Step 0: Prepare for Phase 2 | |
| |
| |
Phase 2, Steps 1-6 | |
| |
| |
Phase 2, Step 7: Brainstorm and Prioritize Scenarios | |
| |
| |
Phase 2, Step 8: Analyze Architectural Approaches | |
| |
| |
Phase 2, Step 9: Present Results | |
| |
| |
Phase 3: Follow-Up | |
| |
| |
Phase 3, Step 1: Produce the Final Report | |
| |
| |
Phase 3, Step 2: Hold the Postmortem Meeting | |
| |
| |
Phase 3, Step 3: Build Portfolio and Update Artifact Repositories | |
| |
| |
For Further Reading | |
| |
| |
Discussion Questions | |
| |
| |
Using the SAAM to Evaluate an Example Architecture | |
| |
| |
Overview of the SAAM | |
| |
| |
Inputs to a SAAM Evaluation | |
| |
| |
Outputs from a SAAM Evaluation | |
| |
| |
Steps of a SAAM Evaluation | |
| |
| |
Step 1: Develop Scenarios | |
| |
| |
Step 2: Describe the Architecture(s) | |
| |
| |
Step 3: Classify and Prioritize the Scenarios | |
| |
| |
Step 4: Individually Evaluate Indirect Scenarios | |
| |
| |
Step 5: Assess Scenario Interactions | |
| |
| |
Step 6: Create the Overall Evaluation | |
| |
| |
A Sample SAAM Agenda | |
| |
| |
A SAAM Case Study | |
| |
| |
ATAT System Overview | |
| |
| |
Step 1: Develop Scenarios, First Iteration | |
| |
| |
Step 2: Describe the Architecture(s), First Iteration | |
| |
| |
Step 1: Develop Scenarios, Second Iteration | |
| |
| |
Step 2: Describe the Architecture(s), Second Iteration | |
| |
| |
Step 3: Classify and Prioritize the Scenarios | |
| |
| |
Step 4: Individually Evaluate Indirect Scenarios | |
| |
| |
Step 5: Assess Scenario Interactions | |
| |
| |
Step 6: Create the Overall Evaluation--Results and Recommendations | |
| |
| |
Summary | |
| |
| |
For Further Reading | |
| |
| |
Discussion Questions | |
| |
| |
ARID--An Evaluation Method for Partial Architectures | |
| |
| |
Active Design Reviews | |
| |
| |
ARID: An ADR/ATAM Hybrid | |
| |
| |
The Steps of ARID | |
| |
| |
Phase 1: Rehearsal | |
| |
| |
Phase 2: Review | |
| |
| |
A Case Study in Applying ARID | |
| |
| |
Carrying Out the Steps | |
| |
| |
Results of the Exercise | |
| |
| |
Summary | |
| |
| |
For Further Reading | |
| |
| |
Discussion Questions | |
| |
| |
Comparing Software Architecture Evaluation Methods | |
| |
| |
Questioning Techniques | |
| |
| |
Questionnaires and Checklists | |
| |
| |
Scenarios and Scenario-Based Methods | |
| |
| |
Measuring Techniques | |
| |
| |
Metrics | |
| |
| |
Simulations, Prototypes, and Experiments | |
| |
| |
Rate-Monotonic Analysis | |
| |
| |
Automated Tools and Architecture Description Languages | |
| |
| |
Hybrid Techniques | |
| |
| |
Software Performance Engineering | |
| |
| |
The ATAM | |
| |
| |
Summary | |
| |
| |
For Further Reading | |
| |
| |
Discussion Questions | |
| |
| |
Growing an Architecture Evaluation Capability in Your Organization | |
| |
| |
Building Organizational Buy-in | |
| |
| |
Growing a Pool of Evaluators | |
| |
| |
Establishing a Corporate Memory | |
| |
| |
Cost and Benefit Data | |
| |
| |
Method Guidance | |
| |
| |
Reusable Artifacts | |
| |
| |
Summary | |
| |
| |
Discussion Questions | |
| |
| |
Conclusions | |
| |
| |
You Are Now Ready! | |
| |
| |
What Methods Have You Seen? | |
| |
| |
Why Evaluate Architectures? | |
| |
| |
Why Does the ATAM Work? | |
| |
| |
A Parting Message | |
| |
| |
An Example Attribute-Based Architectural Style | |
| |
| |
Problem Description | |
| |
| |
Stimulus/Response | |
| |
| |
Architectural Style | |
| |
| |
Analysis | |
| |
| |
Reasoning | |
| |
| |
Priority Assignment | |
| |
| |
Priority Inversion | |
| |
| |
Blocking Time | |
| |
| |
For Further Reading | |
| |
| |
References | |
| |
| |
Index | |