S 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 [email protected] For sales outside the U. S., please contact: International Sales [email protected] 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