Software and Systems Architecture in Action  book cover
1st Edition

Software and Systems Architecture in Action

ISBN 9781138374423
Published September 18, 2018 by Auerbach Publications
232 Pages 70 B/W Illustrations

SAVE ~ $13.99
was $69.95
USD $55.96

Prices & shipping based on shipping country


Book Description

Modern-day projects require software and systems engineers to work together in realizing architectures of large and complex software-intensive systems. To date, the two have used their own tools and methods to deal with similar issues when it comes to the requirements, design, testing, maintenance, and evolution of these architectures.

Software and Systems Architecture in Action 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 the disciplines of software and systems engineering, it presents concepts, techniques, and methods for creating and documenting architectures.

The book describes an approach to architecture design that is driven from systemic quality attributes determined from both the business and technical goals of the system, rather than just its functional requirements. This architecture-centric design 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.

The book includes coverage of techniques used to assess the impact of architecture-centric design on the structural complexity of a system. After reading the book, you will understand how to create architectures of systems and assess their ability to meet the business goals of your organization.

Ideal for anyone involved with large and complex software-intensive systems, the book details powerful methods for engaging the software and systems engineers on your team. The book is also suitable for use in undergraduate and graduate-level courses on software and systems architecture as it exposes students to the concepts and techniques used to create and manage architectures of software-intensive systems.

Table of Contents

Architecture and Its Significance
Rising Complexity
Constant Change
Distributed Development
Practice for Architecture-Centric Engineering

Stakeholders and Their Business Goals
Influence of Business Goals on the Architecture
Representing Business Goals
Refining Business Goals
Translating Engineering Objectives into Architectural Requirements
Prioritizing Architectural Requirements

Establishing Broad Functional Understanding
System Context
System Use Cases
Domain Model
An End-to-End Operational View

Getting Ready for Designing the Architecture
Architectural Drivers
     Layered View
     Data Flow View
     Data-Centered View
     Adaptation View
     Language Extension View
     User Interaction View
     Component Interaction View
     Distribution View
What Is a Tactic?
     Tactics for Availability
     Tactics for Interoperability
     Tactics for Modifiability
     Tactics for Performance
     Tactics for Security
     Tactics for Testability
     Tactics for Usability

Creating the Architecture
Architecture of the Building Automation System
     Support for Adding New Field Devices
     Addressing Latency and Load Conditions
     Addressing International Language Support
Architecture Trade-offs
     Revisiting Modifiability Drivers
     Revisiting Performance Drivers
The Final Architecture

Communicating the Architecture
Views as a Basis for Documentation
Documenting a View
Building an Architecture Description Document
Architecture Description for the Building Automation System
     Section 1: Document Road Map
          Section 1.1: Description of the Architecture Documentation
          Section 1.2: How Stakeholders Can Use the Documentation
     Section 2: System Overview
          Section 2.1: Business Goals
          Section 2.2: System Context
          Section 2.3: Functions
          Section 2.4: Quality Attribute Requirements
          Section 2.5: Constraints
          Section 2.6: Architectural Drivers
     Section 3: View Template
     Section 4: Views
          Section 4.1: Module View
          Section 4.2: Component-and-Connector View
          Section 4.3: Deployment View
     Section 5: Mapping between Views
     Section 6: Rationale

Architecture and Detailed Design
Defining Interfaces
Creating the Domain Object Model
The Rule Manager
     Addressing Architectural Responsibilities
     Addressing Functional Responsibilities

Role of Architecture in Managing Structural Complexity
Analyzing System Complexity
     Partitioning a DSM
     Partitioning Algorithms
     Tearing a DSM
Managing Structural Complexity
     Testing the Hypothesis
Discussion and Conclusions
Discussion Questions

View More



Raghvinder (Raghu) Sangwan is an associate professor of software engineering at Pennsylvania State University. His work involves design and development of software systems, their architecture, and automatic and semiautomatic approaches to assess their design and code quality. He has published several papers in these areas. Prior to joining the Pennsylvania State University, Raghu was a software architect at Siemens, where he worked on large-scale systems in the domains of health care, automation, transportation, and mining; many of these systems were developed by teams geographically distributed around the world. This experience resulted in his coauthoring the Global Software Development Handbook and co-organizing the first International Conference on Global Software Engineering (ICGSE 2006), sponsored by the Institute for Electrical and Electronics Engineers (IEEE). He also holds a visiting scientist appointment at the Software Engineering Institute at Carnegie Mellon University. He received his PhD in computer and information sciences from Temple University and is a senior member of IEEE and the Association for Computing Machinery (ACM).