Skip to Content

Software and Systems Architecture in Action

By Raghvinder S. Sangwan

Auerbach Publications – 2014 – 225 pages

Series: Applied Software Engineering Series

Purchasing Options:

  • Pre-Order NowHardback: $89.95
    978-1-43-984916-3
    October 14th 2014
    Available for pre-order

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.

Contents

Architecture and Its Significance

Introduction

Rising Complexity

Constant Change

Distributed Development

Practice for Architecture-Centric Engineering

Summary

Questions

References

Stakeholders and Their Business Goals

Introduction

Influence of Business Goals on the Architecture

Representing Business Goals

Refining Business Goals

Translating Engineering Objectives into Architectural Requirements

Prioritizing Architectural Requirements

Summary

Questions

References

Establishing Broad Functional Understanding

Introduction

System Context

System Use Cases

Domain Model

An End-to-End Operational View

Constraints

Summary

Questions

References

Getting Ready for Designing the Architecture

Introduction

Architectural Drivers

Patterns

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

Summary

Questions

References

Creating the Architecture

Introduction

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

Summary

Questions

References

Communicating the Architecture

Introduction

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

Conclusions

Questions

References

Architecture and Detailed Design

Introduction

Defining Interfaces

Creating the Domain Object Model

The Rule Manager

Addressing Architectural Responsibilities

Addressing Functional Responsibilities

Summary

Question

References

Role of Architecture in Managing Structural Complexity

Introduction

Analyzing System Complexity

Partitioning a DSM

Partitioning Algorithms

Tearing a DSM

Managing Structural Complexity

Testing the Hypothesis

Discussion and Conclusions

Discussion Questions

References

Author Bio

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).

Name: Software and Systems Architecture in Action (Hardback)Auerbach Publications 
Description: By Raghvinder S. Sangwan. 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...
Categories: Software Engineering & Systems Development, Systems & Control Engineering, Engineering Project Management