| |
| |
Preface | |
| |
| |
Acknowledgments | |
| |
| |
Reader's Guide | |
| |
| |
| |
Envisioning Architecture | |
| |
| |
| |
The Architecture Business Cycle | |
| |
| |
| |
Where Do Architectures Come From? | |
| |
| |
| |
Software Processes and the Architecture Business Cycle | |
| |
| |
| |
What Makes a "Good" Architecture? | |
| |
| |
| |
Summary | |
| |
| |
| |
Discussion Questions | |
| |
| |
| |
What Is Software Architecture? | |
| |
| |
| |
What Software Architecture Is and What It Isn't | |
| |
| |
| |
Other Points of View | |
| |
| |
| |
Architectural Patterns, Reference Models, and Reference Architectures | |
| |
| |
| |
Why Is Software Architecture Important? | |
| |
| |
| |
Architectural Structures and Views | |
| |
| |
| |
Summary | |
| |
| |
| |
For Further Reading | |
| |
| |
| |
Discussion Questions | |
| |
| |
| |
A-7E Avionics System: A Case Study in Utilizing Architectural Structures | |
| |
| |
| |
Relationship to the Architecture Business Cycle | |
| |
| |
| |
Requirements and Qualities | |
| |
| |
| |
Architecture for the A-7E Avionics System | |
| |
| |
| |
Summary | |
| |
| |
| |
For Further Reading | |
| |
| |
| |
Discussion Questions | |
| |
| |
| |
Creating an Architecture | |
| |
| |
| |
Understanding Quality Attributes | |
| |
| |
| |
Functionality and Architecture | |
| |
| |
| |
Architecture and Quality Attributes | |
| |
| |
| |
System Quality Attributes | |
| |
| |
| |
Quality Attribute Scenarios in Practice | |
| |
| |
| |
Other System Quality Attributes | |
| |
| |
| |
Business Qualities | |
| |
| |
| |
Architecture Qualities | |
| |
| |
| |
Summary | |
| |
| |
| |
For Further Reading | |
| |
| |
| |
Discussion Questions | |
| |
| |
| |
Achieving Qualities | |
| |
| |
| |
Introducing Tactics | |
| |
| |
| |
Availability Tactics | |
| |
| |
| |
Modifiability Tactics | |
| |
| |
| |
Performance Tactics | |
| |
| |
| |
Security Tactics | |
| |
| |
| |
Testability Tactics | |
| |
| |
| |
Usability Tactics | |
| |
| |
| |
Relationship of Tactics to Architectural Patterns | |
| |
| |
| |
Architectural Patterns and Styles | |
| |
| |
| |
Summary | |
| |
| |
| |
Discussion Questions | |
| |
| |
| |
For Further Reading | |
| |
| |
| |
Air Traffic Control: A Case Study in Designing for High Availability | |
| |
| |
| |
Relationship to the Architecture Business Cycle | |
| |
| |
| |
Requirements and Qualities | |
| |
| |
| |
Architectural Solution | |
| |
| |
| |
Summary | |
| |
| |
| |
For Further Reading | |
| |
| |
| |
Discussion Questions | |
| |
| |
| |
Designing the Architecture | |
| |
| |
| |
Architecture in the Life Cycle | |
| |
| |
| |
Designing the Architecture | |
| |
| |
| |
Forming the Team Structure | |
| |
| |
| |
Creating a Skeletal System | |
| |
| |
| |
Summary | |
| |
| |
| |
For Further Reading | |
| |
| |
| |
Discussion Questions | |
| |
| |
| |
Flight Simulation: A Case Study in an Architecture for Integrability | |
| |
| |
| |
Relationship to the Architecture Business Cycle | |
| |
| |
| |
Requirements and Qualities | |
| |
| |
| |
Architectural Solution | |
| |
| |
| |
Summary | |
| |
| |
| |
For Further Reading | |
| |
| |
| |
Discussion Questions | |
| |
| |
| |
Documenting Software Architectures | |
| |
| |
| |
Uses of Architectural Documentation | |
| |
| |
| |
Views | |
| |
| |
| |
Choosing the Relevant Views | |
| |
| |
| |
Documenting a View | |
| |
| |
| |
Documentation across Views | |
| |
| |
| |
Unified Modeling Language | |
| |
| |
| |
Summary | |
| |
| |
| |
For Further Reading | |
| |
| |
| |
Discussion Questions | |
| |
| |
| |
Reconstructing Software Architectures | |
| |
| |
| |
Introduction | |
| |
| |
| |
Information Extraction | |
| |
| |
| |
Database Construction | |
| |
| |
| |
View Fusion | |
| |
| |
| |
Reconstruction | |
| |
| |
| |
Example | |
| |
| |
| |
Summary | |
| |
| |
| |
For Further Reading | |
| |
| |
| |
Discussion Questions | |
| |
| |
| |
Analyzing Architectures | |
| |
| |
| |
The ATAM: A Comprehensive Method for Architecture Evaluation | |
| |
| |
| |
Participants in the ATAM | |
| |
| |
| |
Outputs of the ATAM | |
| |
| |
| |
Phases of the ATAM | |
| |
| |
| |
The Nightingale System: A Case Study in Applying the ATAM | |
| |
| |
| |
Summary | |
| |
| |
| |
For Further Reading | |
| |
| |
| |
Discussion Questions | |
| |
| |
| |
The CBAM: A Quantitative Approach to Architecture Design Decision Making | |
| |
| |
| |
Decision-Making Context | |
| |
| |
| |
The Basis for the CBAM | |
| |
| |
| |
Implementing the CBAM | |
| |
| |
| |
Case Study: The NASA ECS Project | |
| |
| |
| |
Results of the CBAM Exercise | |
| |
| |
| |
Summary | |
| |
| |
| |
For Further Reading | |
| |
| |
| |
Discussion Questions | |
| |
| |
| |
The World Wide Web: A Case Study in Interoperability | |
| |
| |
| |
Relationship to the Architecture Business Cycle | |
| |
| |
| |
Requirements and Qualities | |
| |
| |
| |
Architectural Solution | |
| |
| |
| |
Another Cycle through the ABC: The Evolution of Web-Based E-Commerce Architectures | |
| |
| |
| |
Achieving Quality Goals | |
| |
| |
| |
The Architecture Business Cycle Today | |
| |
| |
| |
Summary | |
| |
| |
| |
For Further Reading | |
| |
| |
| |
Discussion Questions | |
| |
| |
| |
Moving from One System to Many | |
| |
| |
| |
Software Product Lines: Re-using Architectural Assets | |
| |
| |
| |
Overview | |
| |
| |
| |
What Makes Software Product Lines Work? | |
| |
| |
| |
Scoping | |
| |
| |
| |
Architectures for Product Lines | |
| |
| |
| |
What Makes Software Product Lines Difficult? | |
| |
| |
| |
Summary | |
| |
| |
| |
For Further Reading | |
| |
| |
| |
Discussion Question | |
| |
| |
| |
Celsius Tech: A Case Study in Product Line Development | |
| |
| |
| |
Relationship to the Architecture Business Cycle | |
| |
| |
| |
Requirements and Qualities | |
| |
| |
| |
Architectural Solution | |
| |
| |
| |
Summary | |
| |
| |
| |
For Further Reading | |
| |
| |
| |
Discussion Questions | |
| |
| |
| |
J2EE/EJB: A Case Study of an Industry-Standard Computing Infrastructure | |
| |
| |
| |
Relationship to the Architecture Business Cycle | |
| |
| |
| |
Requirements and Qualities | |
| |
| |
| |
Architectural Solution | |
| |
| |
| |
System Deployment Decisions | |
| |
| |
| |
Summary | |
| |
| |
| |
For Further Reading | |
| |
| |
| |
Discussion Questions | |
| |
| |
| |
The Luther Architecture: A Case Study in Mobile Applications Using J2EE | |
| |
| |
| |
Relationship to the Architecture Business Cycle | |
| |
| |
| |
Requirements and Qualities | |
| |
| |
| |
Architectural Solution | |
| |
| |
| |
How Luther Achieved Its Quality Goals | |
| |
| |
| |
Summary | |
| |
| |
| |
For Further Reading | |
| |
| |
| |
Discussion Questions | |
| |
| |
| |
Building Systems from Off-the-Shelf Components | |
| |
| |
| |
Impact of Components on Architecture | |
| |
| |
| |
Architectural Mismatch | |
| |
| |
| |
Component-Based Design as Search | |
| |
| |
| |
ASEILM Example | |
| |
| |
| |
Summary | |
| |
| |
| |
Further Reading | |
| |
| |
| |
Software Architecture in the Future | |
| |
| |
| |
The Architecture Business Cycle Revisited | |
| |
| |
| |
Creating an Architecture | |
| |
| |
| |
Architecture within the Life Cycle | |
| |
| |
| |
The Impact of Commercial Components | |
| |
| |
| |
Summary | |
| |
| |
Acronyms | |
| |
| |
References | |
| |
| |
Index | |