Software and Systems Architecture in Action

Book description

This book explores practices that can be helpful in the development of architectures of large-scale systems in which software is a major component. Examining the synergies that exist between software and systems engineering, it details an approach to architecture design that is driven from systemic quality attributes determined from both the business and technical goals of the system. This approach utilizes analytically derived patterns and tactics for quality attributes that inform the architect's design choices and help shape the architecture of a given system.

Table of contents

  1. Preface
  2. About the Author
  3. Chapter 1 - Architecture and Its Significance
    1. 1.1 Introduction
    2. 1.2 Rising Complexity
    3. 1.3 Constant Change
    4. 1.4 Distributed Development
    5. 1.5 Practice for Architecture-Centric Engineering
    6. 1.6 Summary
    7. 1.7 Questions
    8. References
  4. Chapter 2 - Stakeholders and Their Business Goals
    1. 2.1 Introduction
    2. 2.2 Influence of Business Goals on the Architecture
    3. 2.3 Representing Business Goals
    4. 2.4 Refining Business Goals
    5. 2.5 Translating Engineering Objectives into Architectural Requirements
    6. 2.6 Prioritizing Architectural Requirements
    7. 2.7 Summary
    8. 2.8 Questions
    9. References
  5. Chapter 3 - Establishing Broad Functional Understanding
    1. 3.1 Introduction
    2. 3.2 System Context
    3. 3.3 System Use Cases
    4. 3.4 Domain Model
    5. 3.5 An End-to-End Operational View
    6. 3.6 Constraints
    7. 3.7 Summary
    8. 3.8 Questions
    9. References
  6. Chapter 4 - Getting Ready for Designing the Architecture
    1. 4.1 Introduction
    2. 4.2 Architectural Drivers
    3. 4.3 Patterns
      1. 4.3.1 Layered View
      2. 4.3.2 Data Flow View
      3. 4.3.3 Data-Centered View
      4. 4.3.4 Adaptation View
      5. 4.3.5 Language Extension View
      6. 4.3.6 User Interaction View
      7. 4.3.7 Component Interaction View
      8. 4.3.8 Distribution View
    4. 4.4 What Is a Tactic?
      1. 4.4.1 Tactics for Availability
      2. 4.4.2 Tactics for Interoperability
      3. 4.4.3 Tactics for Modifiability
      4. 4.4.4 Tactics for Performance
      5. 4.4.5 Tactics for Security
      6. 4.4.6 Tactics for Testability
      7. 4.4.7 Tactics for Usability
    5. 4.5 Summary
    6. 4.6 Questions
    7. References
  7. Chapter 5 - Creating the Architecture
    1. 5.1 Introduction
    2. 5.2 Architecture of the Building Automation System
      1. 5.2.1 Support for Adding New Field Devices
      2. 5.2.2 Addressing Latency and Load Conditions
      3. 5.2.3 Addressing International Language Support
    3. 5.3 Architecture Trade-Offs
      1. 5.3.1 Revisiting Modifiability Drivers
      2. 5.3.2 Revisiting Performance Drivers
    4. 5.4 The Final Architecture
    5. 5.5 Summary
    6. 5.6 Questions
    7. References
  8. Chapter 6 -
    1. 6.1 Introduction
    2. 6.2 Views as a Basis for Documentation
    3. 6.3 Documenting a View
    4. 6.4 Building an Architecture Description Document
    5. 6.5 Architecture Description for the Building Automation System
      1. 6.5.1 Section 1: Document Road Map
        1. 6.5.1.1 Section 1.1: Description of the Architecture Documentation
        2. 6.5.1.2 Section 1.2: How Stakeholders Can Use the Documentation
      2. 6.5.2 Section 2: System Overview
        1. 6.5.2.1 Section 2.1: Business Goals
        2. 6.5.2.2 Section 2.2: System Context
        3. 6.5.2.3 Section 2.3: Functions
        4. 6.5.2.4 Section 2.4: Quality Attribute Requirements
        5. 6.5.2.5 Section 2.5: Constraints
        6. 6.5.2.6 Section 2.6: Architectural Drivers
      3. 6.5.3 Section 3: View Template
      4. 6.5.4 Section 4: Views
        1. 6.5.4.1 Section 4.1: Module View
        2. 6.5.4.2 Section 4.2: Component-and-Connector View
        3. 6.5.4.3 Section 4.3: Deployment View
      5. 6.5.5 Section 5: Mapping between Views
      6. 6.5.6 Section 6: Rationale
    6. 6.6 Conclusions
    7. 6.7 Questions
    8. References
  9. Chapter 7 - Architecture and Detailed Design
    1. 7.1 Introduction
    2. 7.2 Defining Interfaces
    3. 7.3 Creating the Domain Object Model
    4. 7.3 The Rule Manager
      1. 7.3.1 Addressing Architectural Responsibilities
      2. 7.3.2 Addressing Functional Responsibilities
    5. 7.4 Summary
    6. 7.5 Question
    7. References
  10. Chapter 8 - Role of Architecture in Managing Structural Complexity
    1. 8.1 Introduction
    2. 8.2 Analyzing System Complexity
      1. 8.2.1 Partitioning a DSM
      2. 8.2.2 Partitioning Algorithms
      3. 8.2.3 Tearing a DSM
    3. 8.3 Managing Structural Complexity
      1. 8.3.1 Testing the Hypothesis
    4. 8.4 Discussion and Conclusions
    5. 8.5 Discussion Questions
    6. References

Product information

  • Title: Software and Systems Architecture in Action
  • Author(s): Raghvinder S. Sangwan
  • Release date: October 2014
  • Publisher(s): Auerbach Publications
  • ISBN: 9781498759946