Skip to content

Evaluating Software Architectures Methods and Case Studies

Best in textbook rentals since 2012!

ISBN-10: 020170482X

ISBN-13: 9780201704822

Edition: 2002

Authors: Peter Peter Gordon, Paul Clements, Rick Kazman, Mark Klein

List price: $79.99
Blue ribbon 30 day, 100% satisfaction guarantee!
what's this?
Rush Rewards U
Members Receive:
Carrot Coin icon
XP icon
You have reached 400 XP and carrot coins. That is the daily max!

The foundation of any software system is its architecture. Using this book, you can evaluate every aspect of architecture in advance, at remarkably low cost -- identifying improvements that can dramatically improve any system's performance, security, reliability, and maintainability. As the practice of software architecture has matured, it has become possible to identify causal connections between architectural design decisions and the qualities and properties that result downstream in the systems that follow from them. This book shows how, offering step-by-step guidance, as well as detailed practical examples -- complete with sample artifacts reflective of those that evaluators will…    
Customers also bought

Book details

List price: $79.99
Copyright year: 2002
Publisher: Addison Wesley Professional
Publication date: 10/22/2001
Binding: Hardcover
Pages: 368
Size: 6.38" wide x 9.37" long x 0.94" tall
Weight: 1.430
Language: English

Rick Kazman is a Professor at the University of Hawaii and a Principal Researcher at the Software Engineering Institute of Carnegie Mellon University. His primary research interests are software architecture, design and analysis tools, software visualization, and software engineering economics. He also has interests in human-computer interaction and information retrieval. Kazman has created several highly influential methods and tools for architecture analysis, including the SAAM (Software Architecture Analysis Method), the ATAM (Architecture Tradeoff Analysis Method), the CBAM (Cost-Benefit Analysis Method) and the Dali architecture reverse engineering tool.

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