Table Of ContentInformation Technology / Software Engineering & Systems Development S
a
n
g Software
Modern-day projects require software and systems engineers to work together w
a
in realizing architectures of large and complex software-intensive systems. To n
date, the two professions have used their own tools and methods to deal with
similar issues when it comes to the requirements, design, testing, maintenance, S
o and Systems
and evolution of these architectures.
f
t
Software and Systems Architecture in Action explores practices that can be w
helpful in the development of architectures of large-scale systems in which a
Architecture
software is a major component. Examining the synergies that exist between r
e
the disciplines of software and systems engineering, it presents concepts,
techniques, and methods for creating and documenting architectures. a
n
in Action
d
The book describes an approach to architecture design that is driven from
systemic quality attributes determined from both the business and technical S
goals of the system, rather than just its functional requirements. This y
architecture-centric design approach utilizes analytically derived patterns and s
t
tactics for quality attributes that inform the architect’s design choices and help
e
shape the architecture of a given system. m
s
The book includes coverage of techniques used to assess the impact of
A
architecture-centric design on the structural complexity of a system. After
reading the book, you will understand how to create architectures of systems r
c
and assess their ability to meet the business goals of your organization. h
i
t
Ideal for anyone involved with large and complex software-intensive systems, e
the book details powerful methods for engaging the software and systems c
t
engineers on your team. The book is also suitable for use in undergraduate
u
and graduate-level courses on software and systems architecture as it exposes
r
students to the concepts and techniques used to create and manage architectures e
of software-intensive systems.
i
n
A
c
t
i
o
Raghvinder S. Sangwan
n
K12223
6000 Broken Sound Parkway, NW
ISBN: 978-1-4398-4916-3
Suite 300, Boca Raton, FL 33487
711 Third Avenue 90000
an informa business New York, NY 10017
2 Park Square, Milton Park
www.crcpress.com Abingdon, Oxon OX14 4RN, UK
9 781439 849163
www.auerbach-publications.com
K12223 cvr mech.indd 1 8/29/14 8:35 AM
Software
and Systems
Architecture
in Action
Titles in the
Auerbach Series on Applied Software Engineering
Phillip A. Laplante, Pennsylvania State University, Series Editor
Software and Systems Architecture in Action
Raghvinder Sangwan
978-1-4398-4916-3
Requirements Engineering for Software and Systems, Second Edition
Phillip A. Laplante
978-1-4665-6081-9
Software Engineering Design: Theory and Practice
Carlos E. Otero
978-1-4398-5168-5
Ethics in IT Outsourcing
Tandy Gold
978-1-4398-5062-6
The ScrumMaster Study Guide
James Schiel
978-1-4398-5991-9
Antipatterns: Managing Software Organizations and People,
Second Edition
Colin J. Neill, Philip A. Laplante, and Joanna F. DeFranco
978-1-4398-6186-8
Enterprise-Scale Agile Software Development
James Schiel
978-1-4398-0321-9
Building Software: A Practioner’s Guide
Nikhilesh Krishnamurthy and Amitabh Saran
978-0-8493-7303-9
Global Software Development Handbook
Raghvinder Sangwan, Matthew Bass, Neel Mullick, Daniel J. Paulish,
and Juergen Kazmeier
978-0-8493-9384-6
Software Engineering Quality Practices
Ronald Kirk Kandt
978-0-8493-4633-0
Titles in the Other Auerbach Publications in Software Development,
Auerbach Series on Applied Software Engineering
Software Engineering, and Project Management
Phillip A. Laplante, Pennsylvania State University, Series Editor
Accelerating Process Improvement Project Management Maturity Model,
Software and Systems Architecture in Action
Using Agile Techniques Second Edition
Raghvinder Sangwan
Deb Jacobs J. Kent Crawford
978-1-4398-4916-3
0-8493-3796-8 0-8493-7945-8
Requirements Engineering for Software and Systems, Second Edition The Complete Project Management Real Process Improvement Using
Phillip A. Laplante Office Handbook the CMMI®
978-1-4665-6081-9 Gerard M. Hill Michael West
0-8493-2173-5 0-8493-2109-3
Software Engineering Design: Theory and Practice
Defining and Deploying Software Reducing Risk with Software Process
Carlos E. Otero
Processes Improvement
978-1-4398-5168-5
F. Alan Goodman Louis Poulin
0-8493-9845-2 0-8493-3828-X
Ethics in IT Outsourcing
Tandy Gold Embedded Linux System Design The ROI from Software Quality
978-1-4398-5062-6 and Development Khaled El Emam
P. Raghavan, Amol Lad, and Sriram 0-8493-3298-2
The ScrumMaster Study Guide Neelakandan
0-8493-4058-6 Software Sizing, Estimation, and
James Schiel
Risk Management
978-1-4398-5991-9
Interpreting the CMMI®: A Process Daniel D. Galorath and Michael W. Evans
Improvement Approach 0-8493-3593-0
Antipatterns: Managing Software Organizations and People,
Margaret Kulpa and Kent Johnson
Second Edition 0-8493-1654-5 Software Specification and Design:
Colin J. Neill, Philip A. Laplante, and Joanna F. DeFranco An Engineering Approach
978-1-4398-6186-8 Modeling Software with Finite State John C. Munson
Machines 0-8493-1992-7
Enterprise-Scale Agile Software Development Ferdinand Wagner, Ruedi Schmuki,
Thomas Wagner, and Peter Wolstenholme Software Testing and Continuous
James Schiel
0-8493-8086-3 Quality Improvement, Second Edition
978-1-4398-0321-9
William E. Lewis
Optimizing Human Capital with a 0-8493-2524-2
Building Software: A Practioner’s Guide
Strategic Project Office
Nikhilesh Krishnamurthy and Amitabh Saran J. Kent Crawford and Strategic Software Engineering:
978-0-8493-7303-9 Jeannette Cabanis-Brewin An Interdisciplinary Approach
0-8493-5410-2 Fadi P. Deek, James A.M. McHugh,
Global Software Development Handbook and Osama M. Eljabiri
Raghvinder Sangwan, Matthew Bass, Neel Mullick, Daniel J. Paulish, A Practical Guide to Information 0-8493-3939-1
Systems Strategic Planning,
and Juergen Kazmeier
Second Edition Successful Packaged Software
978-0-8493-9384-6
Anita Cassidy Implementation
0-8493-5073-5 Christine B. Tayntor
Software Engineering Quality Practices
0-8493-3410-1
Ronald Kirk Kandt Process-Based Software Project
978-0-8493-4633-0 Management
F. Alan Goodman
0-8493-9845-2
Software
and Systems
Architecture
in Action
Raghvinder S. Sangwan
CRC Press
Taylor & Francis Group
6000 Broken Sound Parkway NW, Suite 300
Boca Raton, FL 33487-2742
© 2015 by Taylor & Francis Group, LLC
CRC Press is an imprint of Taylor & Francis Group, an Informa business
No claim to original U.S. Government works
Version Date: 20140418
International Standard Book Number-13: 978-1-4398-4917-0 (eBook - PDF)
This book contains information obtained from authentic and highly regarded sources. Reasonable efforts
have been made to publish reliable data and information, but the author and publisher cannot assume
responsibility for the validity of all materials or the consequences of their use. The authors and publishers
have attempted to trace the copyright holders of all material reproduced in this publication and apologize to
copyright holders if permission to publish in this form has not been obtained. If any copyright material has
not been acknowledged please write and let us know so we may rectify in any future reprint.
Except as permitted under U.S. Copyright Law, no part of this book may be reprinted, reproduced, transmit-
ted, or utilized in any form by any electronic, mechanical, or other means, now known or hereafter invented,
including photocopying, microfilming, and recording, or in any information storage or retrieval system,
without written permission from the publishers.
For permission to photocopy or use material electronically from this work, please access www.copyright.
com (http://www.copyright.com/) or contact the Copyright Clearance Center, Inc. (CCC), 222 Rosewood
Drive, Danvers, MA 01923, 978-750-8400. CCC is a not-for-profit organization that provides licenses and
registration for a variety of users. For organizations that have been granted a photocopy license by the CCC,
a separate system of payment has been arranged.
Trademark Notice: Product or corporate names may be trademarks or registered trademarks, and are used
only for identification and explanation without intent to infringe.
Visit the Taylor & Francis Web site at
http://www.taylorandfrancis.com
and the CRC Press Web site at
http://www.crcpress.com
Contents
Preface .......................................................................... xi
About the Author ..........................................................xv
1 Architecture and Its Significance ............................1
1.1 Introduction ................................................................1
1.2 Rising Complexity ......................................................2
1.3 Constant Change ........................................................7
1.4 Distributed Development ...........................................9
1.5 Practice for Architecture-Centric Engineering ..........12
1.6 Summary ....................................................................16
1.7 Questions ...................................................................17
References ..........................................................................17
2 Stakeholders and Their Business Goals ................19
2.1 Introduction ...............................................................19
2.2 Influence of Business Goals on the Architecture ....20
2.3 Representing Business Goals ....................................23
2.4 Refining Business Goals ............................................26
2.5 Translating Engineering Objectives into
Architectural Requirements .......................................27
2.6 Prioritizing Architectural Requirements ....................33
2.7 Summary ....................................................................34
2.8 Questions ...................................................................36
References ..........................................................................37
3 Establishing Broad Functional Understanding ......39
3.1 Introduction ...............................................................39
vii
viii ◾ Contents
3.2 System Context ..........................................................40
3.3 System Use Cases ......................................................41
3.4 Domain Model ...........................................................45
3.5 An End-to-End Operational View .............................47
3.6 Constraints .................................................................52
3.7 Summary ....................................................................54
3.8 Questions ...................................................................55
References ..........................................................................55
4 Getting Ready for Designing the Architecture ......57
4.1 Introduction ...............................................................57
4.2 Architectural Drivers .................................................59
4.3 Patterns ......................................................................61
4.3.1 Layered View .................................................64
4.3.2 Data Flow View ..............................................67
4.3.3 Data-Centered View .......................................69
4.3.4 Adaptation View .............................................71
4.3.5 Language Extension View ..............................72
4.3.6 User Interaction View .....................................75
4.3.7 Component Interaction View ........................77
4.3.8 Distribution View............................................79
4.4 What Is a Tactic? ........................................................81
4.4.1 Tactics for Availability .....................................82
4.4.2 Tactics for Interoperability .............................85
4.4.3 Tactics for Modifiability ..................................87
4.4.4 Tactics for Performance .................................90
4.4.5 Tactics for Security .........................................92
4.4.6 Tactics for Testability ......................................94
4.4.7 Tactics for Usability ........................................95
4.5 Summary ................................................................... 96
4.6 Questions ...................................................................97
References ......................................................................... 98
5 Creating the Architecture ....................................101
5.1 Introduction .............................................................101
5.2 Architecture of the Building Automation System ...103
5.2.1 Support for Adding New Field Devices .......106
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,