Table Of ContentS S
OFTWARE YSTEMS
A
RCHITECTURE
This page intentionally left blank
S S
OFTWARE YSTEMS
A
RCHITECTURE
Working with Stakeholders Using
Viewpoints and Perspectives
NICK ROZANSKI
EOIN WOODS
Upper Saddle River, NJ (cid:2) Boston (cid:2) Indianapolis (cid:2) San Francisco
New York (cid:2) Toronto (cid:2) Montreal (cid:2) London (cid:2) Munich (cid:2) Paris (cid:2) Madrid
Capetown (cid:2) Sydney (cid:2) Tokyo (cid:2) Singapore (cid:2) Mexico City
Many of the designations used by manufacturers and sellers to distinguish their products are
claimed as trademarks. Where those designations appear in this book, and the publisher was aware
of a trademark claim, the designations have been printed with initial capital letters or in all capitals.
The authors and publisher have taken care in the preparation of this book, but make no expressed
or implied warranty of any kind and assume no responsibility for errors or omissions. No liability
is assumed for incidental or consequential damages in connection with or arising out of the use of
the information or programs contained herein.
The publisher offers excellent discounts on this book when ordered in quantity for bulk purchases
or special sales, which may include electronic versions and/or custom covers and content particu-
lar to your business, training goals, marketing focus, and branding interests. For more informa-
tion, please contact:
U. S. Corporate and Government Sales
(800) 382-3419
corpsales@pearsontechgroup.com
For sales outside the U. S., please contact:
International Sales
international@pearsoned.com
Visit us on the Web: www.awprofessional.com
Library of Congress Cataloging-in-Publication Data
Rozanski, Nick.
Software systems architecture : working with stakeholders using viewpoints and
perspectives / Nick Rozanski, Eoin Woods.
p. cm.
Includes bibliographical references and index.
ISBN 0-321-11229-6 (hardcover : alk. paper)
1. Computer software—Development. 2. Computer architecture. I. Woods, Eoin. II. Title.
QA76.76.D47R696 2005
005.3—dc22 2005004600
Copyright © 2005 Pearson Education, Inc.
All rights reserved. Printed in the United States of America. This publication is protected by copy-
right, and permission must be obtained from the publisher prior to any prohibited reproduction,
storage in a retrieval system, or transmission in any form or by any means, electronic, mechani-
cal, photocopying, recording, or likewise. For information regarding permissions, write to:
Pearson Education, Inc.
Rights and Contracts Department
One Lake Street
Upper Saddle River, NJ 07458
ISBN 0-321-11229-6
Text printed in the United States on recycled paper at RR Donnelley Crawfordsville in Crawfordsville, Indiana.
4th Printing May 2008
To my family: Isabel, Sophie, Alex, and Luci
—NR
To my wife, Lynda
—EW
This page intentionally left blank
C
ONTENTS
PREFACE XV
Acknowledgments xviii
ABOUT THE AUTHORS XIX
Nick Rozanski xix
Eoin Woods xix
CHAPTER 1 INTRODUCTION 1
Stakeholders, Viewpoints, and Perspectives 1
The Structure of This Book 7
Who Should Read This Book 7
Conventions Used 8
PART I ARCHITECTURE FUNDAMENTALS 9
CHAPTER 2 SOFTWARE ARCHITECTURE CONCEPTS 11
Software Architecture 11
Architectural Elements 18
Stakeholders 19
Architectural Descriptions 22
Interrelationships between the Core Concepts 24
Summary 24
Further Reading 25
CHAPTER 3 VIEWPOINTS AND VIEWS 27
Architectural Views 30
Viewpoints 31
Interrelationships between the Core Concepts 32
The Benefits of Using Viewpoints and Views 32
vii
viii CONTENTS
Viewpoint Pitfalls 34
Our Viewpoint Catalog 35
Summary 37
Further Reading 37
CHAPTER 4 ARCHITECTURAL PERSPECTIVES 39
Quality Properties 39
Architectural Perspectives 41
Applying Perspectives to Views 44
Consequences of Applying a Perspective 47
Interrelationships between the Core Concepts 49
The Benefits of Using Perspectives 50
Perspective Pitfalls 50
Our Perspective Catalog 51
Summary 52
Further Reading 53
CHAPTER 5 THE ROLE OF THE SOFTWARE ARCHITECT 55
The Architecture Definition Process 56
The Role of the Architect 60
Interrelationships between the Core Concepts 62
Architectural Specializations 63
The Organizational Context 64
The Architect’s Skills 66
The Architect’s Responsibilities 67
Summary 67
Further Reading 68
PART II THE PROCESS OF SOFTWARE ARCHITECTURE 69
CHAPTER 6 INTRODUCTION TO THE SOFTWARE ARCHITECTURE PROCESS 71
CHAPTER 7 THE ARCHITECTURE DEFINITION PROCESS 73
Guiding Principles 73
Process Outcomes 74
The Process Context 75
Supporting Activities 77
Architecture Definition Activities 80
Process Exit Criteria 85
Architecture Definition in the Software Development Lifecycle 86
Summary 89
Further Reading 90
CONTENTS ix
CHAPTER 8 SCOPE, CONCERNS, PRINCIPLES, AND CONSTRAINTS 91
Business Goals and Drivers 93
Architectural Scope 93
Architectural Concerns 96
Architectural Principles 100
Other Architectural Constraints 105
Checklist 107
Summary 107
Further Reading 108
CHAPTER 9 IDENTIFYING AND ENGAGING STAKEHOLDERS 109
Selection of Stakeholders 109
Classes of Stakeholders 111
Examples 115
Proxy Stakeholders 117
Stakeholder Groups 118
Stakeholders’ Responsibilities 118
Checklist 119
Summary 119
Further Reading 120
CHAPTER 10 IDENTIFYING AND USING SCENARIOS 121
Types of Scenarios 122
Uses for Scenarios 122
Identifying and Prioritizing Scenarios 123
Capturing Scenarios 125
Applying Scenarios 128
Effective Use of Scenarios 131
Checklist 132
Summary 133
Further Reading 133
CHAPTER 11 USING STYLES AND PATTERNS 135
Software Patterns 135
Styles, Patterns, and Idioms 137
An Example of an Architectural Style 140
The Benefits of Using Architectural Styles 142
Styles and the Architectural Description 144
Common Architectural Styles 145
Design Patterns and Language Idioms in Architecture 152
Checklist 153
Summary 154
Further Reading 154