1st Edition

Software and Systems Architecture in Action

By Raghvinder S. Sangwan Copyright 2015
232 Pages 70 B/W Illustrations
by Auerbach Publications

232 Pages 70 B/W Illustrations
by Auerbach Publications

232 Pages
by Auerbach Publications

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... Read more

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

Biography

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