Preface
Foreword
Part I Software Architecture
Chapter1 Introduction
1.1 Putting Software Architecture in Context
1.1.1 Softeware Architecture as a Design Plan
1.1.2 Software Architecture as an Abstraction
1.1.3 Software Architecture Terminology
1.2 Where the Four Views Came From
1.2.1 Loose Coupling Between Views
1.2.2 Different Engineering Concerns Addressed by Different Views
1.3 Using the Four Views
1.4 Notation
Part II Designing,Describing,and Using Software Architecture
Chapter2 IS2000:The Advanced Imaging Solution
2.1 System Overview
2.2 Product Features
2.3 System Interactions
2.4 The Future of IS2000
Chapter3 Global Analysis
3.1 Overview of Global Analysis Activities
3.1.1 Analyze Factors
3.1.2 Develop Strategies
3.2 Analyze Organizational Factors
3.3 Begin Developing Strategies
3.4 Analyze Technological Factors
3.5 Continue Developing Strategies
3.6 Analyze Product Factors
3.7 Continue Developing Strategies
3.8 Global Analysis Summary
Chapter4 Conceptual Architecture View
4.1 Design Activities for the Conceptual Architecture View
4.1.1 Global Analysis
4.1.2 Central Design Tasks
4.1.3 Final Design Task:Resource Budgeting
4.2 Design of Conceptual Architecture View for IS2000
4.2.1 Global Analysis
4.2.2 Central Design Tasks:Components,Connectors,and Configuration
4.2.3 Final Design Task:Resource Budgeting
4.2.4 Design Summary for IS2000 Conceptual View
4.3 Summary of Conceptual Architecture View
4.3.1 Traceability
4.3.2 Uses for the Conceptual Architecture View
Chapter 5 Module Architecture View
5.1 Design Activities for the Module Architecture View
5.1.1 Global Analysis
5.1.2 Central Design Tasks
5.1.3 Final Design Task:Interface Design
5.2 Design of Module Architecture View for IS2000
5.2.1 Global Analysis
5.2.2 Central Design Tasks:Modularization and Layering
5.2.3 Final Design Task:Interface Design
5.2.4 Design Summary for IS2000 Module View
5.3 Summary of Module Architecture View
5.3.1 Traceability
5.3.2 Uses for the Module Architecture View
Chapter6 Execution Architecture View
6.1 Design Activities for the Execution Architecture View
6.1.1 Global Analysis
6.1.2 Contral Design Tasks
6.1.3 Final Design Task:Resource Allocation
6.2 Design of Execution Architecture View for IS2000
6.2.1 Global Analysis
6.2.2 Central Design Tasks:Runtime Entities,Communication Paths,and Configuration
6.2.3 Final Design Task:Resource Allocation
6.2.4 Design Summary for IS2000 Exection View
6.3 Summary of Execution Architecture View
6.3.1 Traceability
6.3.2 Uses for the Execution Architecture View
Chapter7 Code Architecture view
7.1 Design Activities for the Code Architecture View
7.1.1 Global Analysis
7.1.2 Central Design Tasks
7.1.3 Final Design Tasks
7.2 Design of Code Architecture View for IS2000
7.2.1 Global Analysis
7.2.2 Central Design Tasks:Source Components,Intermediate Components,and Deployment Components
7.2.3 Final Design Tasks:Build Procedure andd Configuration Management
7.2.4 Design Summary for IS2000 Code Architecture View
7.3 Summary of Code Architecture View
7.3.1 Traceability
7.3.2 Uses for the Code Architecture View
Part III Software Architecture Best Practice
Chapter8 Safety Vision
8.1 Global Analysis
8.1.1 Analyze Product Factors
8.1.2 Analyze Technological Factors
8.1.3 Analyze Organizational Factors
8.1.4 Develop Strategies
8.2 Conceptual Architecture View
8.2.1 Components for Software Specification
8.2.2 Connectors for Software Specification
8.2.3 Conceptual Configuration
8.2.4 Resource Budgeting
8.3 Module Architecture View
8.3.1 ApplicationSoftware Layer
8.3.2 PlatformSoftware Layer
8.4 Execution Architecture View
8.4.1 Processes
8.4.2 Communication Paths
8.4.3 Execution Configuration
8.5 Code Architecture View
8.6 Software Architecture Uses
8.6.1 Softare Process for Projects
8.6.2 Testing of Projects
8.7 Summary
Chapter9 Healthy Vision
9.1 Global Analysis
9.1.1 Analyze Product Factors
9.1.2 Analyze Technological Factors
9.1.3 Develop Strategies
9.1.4 Conceptual Architecture View
9.2 Conceptual Architecture View
9.3 Module Architecture View
9.3.1 Decomposition of the Application Software
9.3.2 Decomposition of the Platform Software
9.3.3 Layering Structure
9.3.4 Error Logging
9.4 Execution Architecture View
9.4.1 Defining Runtime Entities
9.4.2 Communication Paths
9.4.3 Conceptual and Module Views Revisited
9.4.4 Execution Configuration
9.5 Code Architecture View
9.5.1 Development Environment
9.5.2 Configuration Management and Build Strategies
9.6 Software Architecture Uses
9.6.1 Evaluation
9.6.2 Schedule Planning
9.6.3 Implementation
9.6.4 Requirements Tracking
9.7 Summary
9.7.1 Software Architecture Comcepts
9.7.2 Experience
Chapter10 Central Vision
10.1 Global Analysis
10.1.1 Analyze Product Factors
10.1.2 Analyze Technological Factors
10.1.3 Analyze Organizational Factors
10.1.4 Develop Strategies
10.2 Conceptual Architecture View
10.3 Module Architecture View
10.3.1 Decomposition and Layering
10.3.2 Decomposition
10.4 Execution Architecture View
10.4.1 Defining Runtime Entities
10.4.2 Defining Communication Paths
10.4.3 Defining the Execution Configuration
10.4.4 Resource Allocation
10.5 Code Architecture View
10.5.1 Central Design Tasks
10.5.2 Build Procedure and Configuration
10.6 Software Architecture Uses
10.7 Summary
10.7.1 Software Architecture Concepts
10.7.2 Experience
Chapter11 Comm Vision
11.1 Global Analysis
11.1.1 Analyze Product Factors
11.1.2 Analyze Technological Factors
11.1.3 Analyze Organizational Factors
11.1.4 Develop Strategies
11.2 Conceptual Architecture View
11.3 Module Architecture View
11.3.1 Decomposition
11.3.2 SPU Interfaces and Inter-SPU Dependencies
11.3.3 Layering Structure of Shell Model
11.4 Execution Architecture View
11.4.1 Defining Executables and Configurations
11.4.2 Communication
11.4.3 Recovery Suites and Recovery-Tolerant Communication
11.4.4 Resource Allocation
11.5 Code Architecture View
11.5.1 Source Components
11.5.2 Intermediate Components
11.5.3 Configuration Management
11.6 Software Architecture Uses
11.6.1 Simulation and Code Generation
11.6.2 Higher Productivity of Software Production
11.6.3 Stepwise Production Testing of Shells
11.6.4 Architecture Control Process
11.7 Summary
11.7.1 Software Architecture Concepts
11.7.2 Experience
Part IV Software Architecture in Your Future
12.1 The Role of the Software Architect
12.2 Creating a Vision
12.3 The Architect as a Key Technical Consultant
12.4 The Architect Makes Decisions
12.5 The Architect Coordinates
12.6 The Architect Implements
12.7 The Architect Advocates
12.8 Software Architecture as a Career
Glossary
Four Views Quick Reference
Bibliography
Index