Preface.
Acknowledgments.
About the Authors.
1. Introduction.
Stakeholders, Viewpoints, and Perspectives.
The Structure of This Book.
Who Should Read This Book.
Conventions Used.
I. ARCHITECTURE FUNDAMENTALS.
2. Software Architecture Concepts.
Software Architecture.
Architectural Elements.
Stakeholders.
Architectural Descriptions.
Interrelationships between the Core Concepts.
Summary.
Further Reading.
3. Viewpoints and Views.
Architectural Views.
Viewpoints.
Interrelationships between the Core Concepts.
The Benefits of Using Viewpoints and Views.
Viewpoint Pitfalls.
Our Viewpoint Catalog.
Summary.
Further Reading.
4. Architectural Perspectives.
Quality Properties.
Architectural Perspectives.
Applying Perspectives to Views.
Consequences of Applying a Perspective.
Interrelationships between the Core Concepts.
The Benefits of Using Perspectives.
Perspective Pitfalls.
Our Perspective Catalog.
Summary.
Further Reading.
5. The Role of the Software Architect.
The Architecture Definition Process.
The Role of the Architect.
Interrelationships between the Core Concepts.
Architectural Specializations.
The Organizational Context.
The Architect's Skills.
The Architect's Responsibilities.
Summary.
Further Reading.
II. THE PROCESS OF SOFTWARE ARCHITECTURE.
6. Introduction to the Software Architecture Process.
7. The Architecture Definition Process.
Guiding Principles.
Process Outcomes.
The Process Context.
Supporting Activities.
Architecture Definition Activities.
Process Exit Criteria.
Architecture Definition in the Software Development Lifecycle.
Summary.
Further Reading.
8. Scope, Concerns, Principles, and Constraints.
Business Goals and Drivers.
Architectural Scope.
Architectural Concerns.
Architectural Principles.
Other Architectural Constraints.
Checklist.
Summary.
Further Reading.
9. Identifying and Engaging Stakeholders.
Selection of Stakeholders.
Classes of Stakeholders.
Examples.
Proxy Stakeholders.
Stakeholder Groups.
Stakeholders' Responsibilities.
Checklist.
Summary.
Further Reading.
10. Identifying and Using Scenarios.
Types of Scenarios.
Uses for Scenarios.
Identifying and Prioritizing Scenarios.
Capturing Scenarios.
Applying Scenarios.
Effective Use of Scenarios.
Checklist.
Summary.
Further Reading.
11. Using Styles and Patterns.
Software Patterns.
Styles, Patterns, and Idioms.
An Example of an Architectural Style.
The Benefits of Using Architectural Styles.
Styles and the Architectural Description.
Common Architectural Styles.
Design Patterns and Language Idioms in Architecture.
Checklist.
Summary.
Further Reading.
12. Producing Architectural Models.
Why Models Are Important.
Types of Models.
Modeling Languages.
Guidelines for Creating Effective Models.
Agile Modeling Techniques.
Checklist.
Summary.
Further Reading.
13. Creating the Architectural Description.
Properties of an Effective Architectural Description.
Glossaries.
The IEEE Standard.
Contents of the Architectural Description.
Checklist.
Summary.
Further Reading.
14. Validating the Architecture.
Why Validate the Architecture?
Validation Techniques.
Scenario-Based Evaluation Methods.
Validation during the Software Lifecycle.
Recording the Results of Validation.
Checklist.
Summary.
Further Reading.
III. THE VIEWPOINT CATALOG.
15. Introduction to the Viewpoint Catalog.
16. The Functional Viewpoint.
Concerns.
Models.
Problems and Pitfalls.
Checklist.
Further Reading.
17. The Information Viewpoint.
Concerns.
Models.
Problems and Pitfalls.
Checklist.
Further Reading.
18. The Concurrency Viewpoint.
Concerns.
Models.
Problems and Pitfalls.
Checklist.
Further Reading.
19. The Development Viewpoint.
Concerns.
Models.
Problems and Pitfalls.
Checklist.
Further Reading.
20. The Deployment Viewpoint.
Concerns.
Models.
Problems and Pitfalls.
Checklist.
Further Reading.
21. The Operational Viewpoint.
Concerns.
Models.
Problems and Pitfalls.
Checklist.
Further Reading.
22. Achieving Consistency across Views.
Relationships between Views.
Functional and Information View Consistency.
Functional and Concurrency View Consistency.
Functional and Development View Consistency.
Functional and Deployment View Consistency.
Functional and Operational View Consistency.
Information and Concurrency View Consistency.
Information and Development View Consistency.
Information and Deployment View Consistency.
Information and Operational View Consistency.
Concurrency and Development View Consistency.
Concurrency and Deployment View Consistency.
Deployment and Operational View Consistency.
IV. THE PERSPECTIVE CATALOG.
23. Introduction to the Perspective Catalog.
24. The Security Perspective.
Applicability to Views.
Concerns.
Activities: Applying the Security Perspective.
Architectural Tactics.
Problems and Pitfalls.
Checklists.
Further Reading.
25. The Performance and Scalability Perspective.
Applicability to Views.
Concerns.
Activities: Applying the Performance and Scalability Perspective.
Architectural Tactics.
Problems and Pitfalls.
Checklists.
Further Reading.
26. The Availability and Resilience Perspective.
Applicability to Views.
Concerns.
Activities: Applying the Availability and Resilience Perspective.
Architectural Tactics.
Problems and Pitfalls.
Checklists.
Further Reading.
27. The Evolution Perspective.
Applicability to Views.
Concerns.
Activities: Applying the Evolution Perspective.
Architectural Tactics.
Problems and Pitfalls.
Checklists.
Further Reading.
28. Other Perspectives.
The Accessibility Perspective.
The Development Resource Perspective.
The Internationalization Perspective.
The Location Perspective.
The Regulation Perspective.
The Usability Perspective.
V. PUTTING IT ALL TOGETHER.
29. Working as a Software Architect.
The Architect in the Project Lifecycle.
The Architect in Different Types of Projects.
Appendix: Other Viewpoint Sets.
Kruchten "4+1".
RM-ODP.
Siemens (Hofmeister, Nord, and Soni).
SEI Viewtypes.
Garland and Anthony.
Bibliography.
Index.