Evaluating Software Architectures: Methods and Case Studies (Hardcover)
內容描述
Table of Contents
List of Figures. List of Tables. Preface. Acknowledgments.
Reader's Guide. 1. 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.
Appendix A: An Example Attribute-Based Architectural Style.
Problem Description. Stimulus/Response.
Architectural Style. Analysis.
Reasoning. Priority Assignment. Priority
Inversion. Blocking Time. For Further Reading.
References.