Contents

Preface

Acknowledgments

Reader's Guide

Part One Envisioning Architecture

Chapter 1 The Architecture Business Cycle

1.1 Where Do Architectures Come From?

1.2 Software Processes and the Architecture Business Cycle

1.3 What Makes a “Good” Architecture?

1.4 Summary

1.5 Discussion Questions

Chapter 2 What Is Software Architecture?

2.1 What Software Architecture Is and What It Isn't

2.2 Other Points of View

2.3 Architectural Patterns, Reference Models, and Reference Architectures

2.4 Why Is Software Architecture Important?

2.5 Architectural Structures and Views

2.6 Summary

2.7 For Further Reading

2.8 Discussion Questions

Chapter 3 A-7E Avionics System: A Case Study in Utilizing Architectural Structures

3.1 Relationship to the Architecture Business Cycle

3.2 Requirements and Qualities

3.3 Architecture for the A-7E Avionics System

3.4 Summary

3.5 For Further Reading

3.6 Discussion Questions

Part Two Creating an Architecture

Chapter 4 Understanding Quality Attributes

4.1 Functionality and Architecture

4.2 Architecture and Quality Attributes

4.3 System Quality Attributes

4.4 Quality Attribute Scenarios in Practice

4.5 Other System Quality Attributes

4.6 Business Qualities

4.7 Architecture Qualities

4.8 Summary

4.9 For Further Reading

4.10 Discussion Questions

Chapter 5 Achieving Qualities

5.1 Introducing Tactics

5.2 Availability Tactics

5.3 Modifiability Tactics

5.4 Performance Tactics

5.5 Security Tactics

5.6 Testability Tactics

5.7 Usability Tactics

5.8 Relationship of Tactics to Architectural Patterns

5.9 Architectural Patterns and Styles

5.10 Summary

5.11 Discussion Questions

5.12 For Further Reading

Chapter 6 Air Traffic Control: A Case Study in Designing for High Availability

6.1 Relationship to the Architecture Business Cycle

6.2 Requirements and Qualities

6.3 Architectural Solution

6.4 Summary

6.5 For Further Reading

6.6 Discussion Questions

Chapter 7 Designing the Architecture

7.1 Architecture in the Life Cycle

7.2 Designing the Architecture

7.3 Forming the Team Structure

7.4 Creating a Skeletal System

7.5 Summary

7.6 For Further Reading

7.7 Discussion Questions

Chapter 8 Flight Simulation: A Case Study in an Architecture for Integrability

8.1 Relationship to the Architecture Business Cycle

8.2 Requirements and Qualities

8.3 Architectural Solution

8.4 Summary

8.5 For Further Reading

8.6 Discussion Questions

Chapter 9 Documenting Software Architectures

9.1 Uses of Architectural Documentation

9.2 Views

9.3 Choosing the Relevant Views

9.4 Documenting a View

9.5 Documentation across Views

9.6 Unified Modeling Language

9.7 Summary

9.8 For Further Reading

9.9 Discussion Questions

Chapter 10 Reconstructing Software Architectures

10.1 Introduction

10.2 Information Extraction

10.3 Database Construction

10.4 View Fusion

10.5 Reconstruction

10.6 Example

10.7 Summary

10.8 For Further Reading

10.9 Discussion Questions

Part Three Analyzing Architectures

Chapter 11 The ATAM: A Comprehensive Method for Architecture Evaluation

11.1 Participants in the ATAM

11.2 Outputs of the ATAM

11.3 Phases of the ATAM

11.4 The Nightingale System: A Case Study in Applying the ATAM

11.5 Summary

11.6 For Further Reading

11.7 Discussion Questions

Chapter 12 The CBAM: A Quantitative Approach to Architecture Design Decision Making

12.1 Decision-Making Context

12.2 The Basis for the CBAM

12.3 Implementing the CBAM

12.4 Case Study: The NASA ECS Project

12.5 Results of the CBAM Exercise

12.6 Summary

12.7 For Further Reading

12.8 Discussion Questions

Chapter 13 The World Wide WebA Case Study in Interoperability

13.1 Relationship to the Architecture Business Cycle

13.2 Requirements and Qualities

13.3 Architectural Solution

13.4 Another Cycle through the ABC: The Evolution of Web-Based E-Commerce Architectures

13.5 Achieving Quality Goals

13.6 The Architecture Business Cycle Today

13.7 Summary

13.8 For Further Reading

13.9 Discussion Questions

Part Four Moving From One System to Many

Chapter 14 Software Product Lines: Re-using Architectural Assets

14.1 Overview

14.2 What Makes Software Product Lines Work?

14.3 Scoping

14.4 Architectures for Product Lines

14.5 What Makes Software Product Lines Difficult?

14.6 Summary

14.7 For Further Reading

14.8 Discussion Question

Chapter 15 CelsiusTech: A Case Study in Product Line Development

15.1 Relationship to the Architecture Business Cycle

15.2 Requirements and Qualities

15.3 Architectural Solution

15.4 Summary

15.5 For Further Reading

15.6 Discussion Questions

Chapter 16 J2EE/EJB: A Case Study of an Industry-Standard Computing Infrastructure

16.1 Relationship to the Architecture Business Cycle

16.2 Requirements and Qualities

16.3 Architectural Solution

16.4 System Deployment Decisions

16.5 Summary

16.6 For Further Reading

16.7 Discussion Questions

Chapter 17 The Luther Architecture: A Case Study in Mobile Applications Using J2EE

17.1 Relationship to the Architecture Business Cycle

17.2 Requirements and Qualities

17.3 Architectural Solution

17.4 How Luther Achieved Its Quality Goals

17.5 Summary

17.6 For Further Reading

17.7 Discussion Questions

Chapter 18 Building Systems from Off-the-Shelf Components

18.1 Impact of Components on Architecture

18.2 Architectural Mismatch

18.3 Component-Based Design as Search

18.4 ASEILM Example

18.5 Summary

18.6 Further Reading

Chapter 19 Software Architecture in the Future

19.1 The Architecture Business Cycle Revisited

19.2 Creating an Architecture

19.3 Architecture within the Life Cycle

19.4 The Impact of Commercial Components

19.5 Summary

Acronyms

References

Index

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset