book Page i Thursday, March 20, 2003 7:21 PM Software Architecture in Practice Third Edition Second Edition i The SEI Series in Software Engineering Visit informit.com/sei for a complete list of available products. T he SEI Series in Software Engineering represents is a collaborative undertaking of the Carnegie Mellon Software Engineering Institute (SEI) and Addison-Wesley to develop and publish books on software engineering and related topics. The common goal of the SEI and Addison-Wesley is to provide the most current information on these topics in a form that is easily usable by practitioners and students. Books in the series describe frameworks, tools, methods, and technologies designed to help organizations, teams, and individuals improve their technical or management capabilities.
Some books describe processes and practices for developing higher-quality software, acquiring programs for complex systems, or delivering services more effectively. Other books focus on software and system architecture and product-line development. Still others, from the SEI’s CERT Program, describe technologies and practices needed to manage software and network security risk. These and all books in the series address critical problems in software engineering for which practical solutions are available.
Software Architecture in Practice Third Edition Len Bass Paul Clements Rick Kazman ▲ ▼▼ Addison-Wesley Upper Saddle River, NJ • Boston • Indianapolis • San Francisco New York • Toronto • Montreal • London • Munich • Paris • Madrid Capetown • Sydney • Tokyo • Singapore • Mexico City The The The SEI SEIinSeries SEI Series Series ininSoftware SoftwareEngineering Software Engineering Engineering Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those Many Many of of the designations the designations appeardesignations used in this book, and by used bymanufacturers the manufacturers publisher and was awareandsellers of to distinguish asellers claim, thetheir to distinguish trademark products their arebeen products designations have claimed are printed claimedwith ini- tialas trademarks. ascapital letters orWhere trademarks. Where those thosedesignations in all capitals.
designationsappear appearin in this book, this andand book, thethe publisher publisherwaswas aware of a of aware trade- a trade- mark CMM, claim, markCMMI, claim, the thedesignations designations Capability have havebeen Maturity Model, beenprinted printed Capability with with Maturityinitial capital initial Modeling, letters capital Carnegie or in letters orall Mellon, in capitals. all and CERT, capitals. CERT Coordination Center areCMM, registered in the Capability CMMI, U. Patent and Trademark Maturity Office Model, by Carnegie Capability Mellon University.
Maturity Modeling, Carnegie Mellon, CERT, CMM, CMMI, Capability Maturity Model, Capability Maturity Modeling, Carnegie Mellon, CERT, ATAM; and Architecture Tradeoff Analysis Method; CMM Integration; COTS Usage-Risk Evaluation;Office CURE;byEPIC; Evolutionary and CERT Process CERT Coordination CoordinationCenter forUniversity. Centerare areregistered registeredin in thethe U. andand Patent Trademark Trademark Office Carnegie by Carnegie Integrating COTS Based Systems; Framework for Software Product Line Practice; IDEAL; Interim Profile; OAR; Mellon MellonOperationally University. Critical Threat, Asset, and Vulnerability Evaluation; Options Analysis for Reengineering; Personal Soft- OCTAVE; ATAM; ATAM; ware Architecture Architecture Process; Tradeoff PLTP; ProductTradeoff Analysis Analysis Line Technical Method; Probe; Method; CMM PSP; SCAMPI;CMM Integration; COTS Integration; SCAMPI COTS Usage-Risk Lead Appraiser; Usage-Risk SCAMPI Evaluation; Lead Evaluation; Assessor; SCE; SEI; CURE; SEPG; TeamEPIC; Evolutionary Software Process; and Process TSP for Integrating are service COTS Mellon marks of Carnegie Based University.
Systems; Framework for Software CURE; EPIC; Evolutionary Process for Integrating COTS Based Systems; Framework for Software Product Special Line Practice; permission IDEAL; to reproduce Interim portions Profile; of CMMI OAR; OCTAVE; for Development Operationally Critical (CMU/SEI-2010-TR-035), Threat, Asset,Mellon Product Line Practice; IDEAL; Interim Profile; OAR; OCTAVE; Operationally ©Critical 2010 byThreat, Carnegie Asset, and Vulnerability University, has been Evaluation; granted by the OptionsEngineering Software Analysis for Reengineering; Personal Software Process; PLTP; Institute. and Vulnerability Evaluation; Options Analysis for Reengineering; Personal Software Process; PLTP; Product The authorsLine Technical and publisher Probe; have taken PSP; care inSCAMPI; the SCAMPI preparation of this Lead book, Appraiser; but make no SCAMPI expressed orLead Assessor; implied warranty of any Product SCE; Line Technical Probe; PSP; SCAMPI; SCAMPI Lead Appraiser; SCAMPI Lead Assessor; kind andSEI; SEPG; assume Team Software no responsibility Process; for errors and TSP or omissions. Noare service liability marks of is assumed forCarnegie incidentalMellon University. or consequential damages in SCE; SEI; SEPG; Team Software Process; and TSP are service marks of Carnegie Mellon University.
connection with or arising Special permission to out of the use reproduce of the information portions or programsbycontained of works copyright Carnegieherein. Mellon University, as listed Special on The permission page 588, publisher offers to reproduce is granted by excellent portions the Software discounts on ofwhen works this Engineering book copyright Institute. ordered by Carnegie in quantity Mellon University, for bulk purchases as which or special sales, listedmay on page include 588, is electronic granted versions by the and/or Software custom Engineering covers and Institute. content particular to your business, training goals, marketing focus, and Many of the designations used by manufacturers and sellers to distinguish their products are claimed branding interests.
For more information, please contact: Many as of the designations trademarks. Where thoseused by manufacturers designations and book, appear in this sellersand to the distinguish publishertheir was products aware of are claimed a trade- asU. mark Corporate and Government trademarks. claim, the Where designations Sales those have designations appear been printed withininitial this book, capitaland the publisher letters was aware of a trade- or in all capitals.
(800) 382-3419 mark 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 corpsales@pearsontechgroup.com Thesalesauthors implied For and warranty outside publisher of any the United have kind States, andtaken please carenoinresponsibility assume contact: the preparationforoferrors this book, but make or omissions. Nonoliability expressedis or implied assumed warranty Sales of any for incidental International kind and assume or consequential no responsibility damages in connection for witherrors or omissions. or arising out of the No use liability of the is assumed information fororincidental programs or international@pearsoned.com consequential contained herein.
damages in connection with or arising out of the use of the For information about buying this titleherein. information Visit us on the or Web: programs contained informit.com/aw in bulk quantities, or for special sales opportunities (which may include electronic The publisher Library of Congress versions; offers custom excellent cover discounts Cataloging-in-Publication designs; Data on and when this book contentordered particular to your for in quantity business, training or bulk purchases goals, marketing specialMary Chrissis, sales, focus, which Beth. mayorinclude branding interests), electronic please and/or versions contactcustom our corporate salescontent covers and department at corp- particular to your sales@pearsoned.com business, CMMI for development :or training goals, (800) guidelines382-3419. marketing focus, integration for process and branding interests.
For more information, please contact: and product improvement / Mary Beth Chrissis, Mike Konrad, Sandy Shrum. For government sales inquiries, please contact governmentsales@pearsoned. Corporate and Government Sales For Includes (800) questions 382-3419 about sales bibliographical outsideand references theindex., please contact international@pearsoned. ISBN us Visit corpsales@pearsontechgroup.com 978-0-321-71150-2 (hardcover : alk.
paper) on the Web: informit. Capability maturity model (Computer software) 2. Software For sales outside engineering. the United States, please contact: Library of3.Congress Production engineering.
Manufacturing Cataloging-in-Publication processes. Shrum,Sales Sandy.com Software architecture in practice / Len Bass, Paul Clements, Rick Kazman.us on the Web:series cm.com/aw in software engineering) 2010049515 Includes Copyright © 2011bibliographical references Pearson Education, Inc. Library ISBNof 978-0-321-81573-6 Congress Cataloging-in-Publication Data 1. System (hardcover : alk.
paper) All rights reserved. Printed in the United States of America. This publication is protected by copyright, and permission must be design. Clements, from Paul, the publisher 1955– prior to anyII.prohibited Kazman,reproduction, Rick.
storage in a retrieval system, or transmission in any form or by QA76.B37 any Software means, electronic, 2012 inphotocopying, architecture mechanical, practice / Len Bass, Paul recording, Clements, or likewise.—3rd For information ed. regarding permissions, write to: 005. Education, Pearson cm.series in software engineering) Includes Rights bibliographical and Contracts Department references and index. 2012023744 501 ISBN ©978-0-321-81573-6 Boylston Copyright Street,Pearson 2013 (hardcover Suite 900Education, Inc.
02116 Clements, Paul, 1955– All rights Fax: (617)reserved. 671-3447 Printed in the II. Kazman, United StatesRick.This publication is protected by copy- of America.B37 and permission 2012 must be obtained from the publisher prior to any prohibited reproduction, stor- ISBN-13:005.1—dc23 978-0-321-71150-2 age ISBN-10:in a retrieval system, 0-321-71150-5 or transmission in any form or by any means, electronic, mechanical, pho- tocopying, recording, or likewise. To obtain permission to use material from this work, 2012023744 please submit Text printed in the United States on recycled paper at Courier in Westford, Massachusetts.
aCopyright Firstwritten printing,request © 2013 March toPearson 2011PearsonEducation, Education,Inc., Permissions Department, 200 Old Tappan Road, Old Tappan, New Jersey 07657, or you may fax your request to (201) 236-3290. All rights reserved. Printed in the United States of America. This publication is protected by copy- ISBN-13: right, and 978-0-321-81573-6 permission must be obtained from the publisher prior to any prohibited reproduction, stor- ISBN-10: 0-321-81573-4 age in a retrieval system, or transmission in any form or by any means, electronic, mechanical, photo- copying, Text printedrecording, or likewise.
in the United Torecycled States on obtain permission to useinmaterial paper at Courier from Westford, this work, please submit a Massachusetts. written Fifth requestSeptember printing, to Pearson Education, Inc., Permissions Department, One Lake Street, Upper Saddle 2015 River, New Jersey 07458, or you may fax your request to (201) 236-3290. ISBN-13: 978-0-321-81573-6 ISBN-10: 0-321-81573-4 Text printed in the United States on recycled paper at Courier in Westford, Massachusetts. Second printing, May 2013 Contents Preface xv Reader’s Guide xvii Acknowledgments xix Part ONE Introduction 1 CHAPTER 1 What Is Software Architecture? 3 1.1 What Software Architecture Is and What It Isn’t 4 1.2 Architectural Structures and Views 9 1.4 What Makes a “Good” Architecture? 19 1.6 For Further Reading 22 1.7 Discussion Questions 23 CHAPTER 2 Why Is Software Architecture Important? 25 2.1 Inhibiting or Enabling a System’s Quality Attributes 26 2.2 Reasoning About and Managing Change 27 2.3 Predicting System Qualities 28 2.4 Enhancing Communication among Stakeholders 29 2.5 Carrying Early Design Decisions 31 2.6 Defining Constraints on an Implementation 32 2.7 Influencing the Organizational Structure 33 2.8 Enabling Evolutionary Prototyping 33 v vi Contents 2.9 Improving Cost and Schedule Estimates 34 2.10 Supplying a Transferable, Reusable Model 35 2.11 Allowing Incorporation of Independently Developed Components 35 2.12 Restricting the Vocabulary of Design Alternatives 36 2.13 Providing a Basis for Training 37 2.15 For Further Reading 38 2.16 Discussion Questions 38 CHAPTER 3 The Many Contexts of Software Architecture 39 3.1 Architecture in a Technical Context 40 3.2 Architecture in a Project Life-Cycle Context 44 3.3 Architecture in a Business Context 49 3.4 Architecture in a Professional Context 51 3.6 How Is Architecture Influenced? 56 3.7 What Do Architectures Influence? 57 3.9 For Further Reading 59 3.10 Discussion Questions 60 Part TWO Quality Attributes 61 CHAPTER 4 Understanding Quality Attributes 63 4.1 Architecture and Requirements 64 4.3 Quality Attribute Considerations 65 4.4 Specifying Quality Attribute Requirements 68 4.5 Achieving Quality Attributes through Tactics 70 4.6 Guiding Quality Design Decisions 72 4.7 Summary 76 Contents vii 4.8 For Further Reading 77 4.9 Discussion Questions 77 CHAPTER 5 Availability 79 5.1 Availability General Scenario 85 5.2 Tactics for Availability 87 5.3 A Design Checklist for Availability 96 5.5 For Further Reading 99 5.6 Discussion Questions 100 CHAPTER 6 Interoperability 103 6.1 Interoperability General Scenario 107 6.2 Tactics for Interoperability 110 6.3 A Design Checklist for Interoperability 114 6.5 For Further Reading 116 6.6 Discussion Questions 116 CHAPTER 7 Modifiability 117 7.1 Modifiability General Scenario 119 7.2 Tactics for Modifiability 121 7.3 A Design Checklist for Modifiability 125 7.5 For Further Reading 128 7.6 Discussion Questions 128 CHAPTER 8 Performance 131 8.1 Performance General Scenario 132 8.2 Tactics for Performance 135 8.3 A Design Checklist for Performance 142 8.5 For Further Reading 145 8.6 Discussion Questions 145 CHAPTER 9 Security 147 9.1 Security General Scenario 148 9.2 Tactics for Security 150 viii Contents 9.3 A Design Checklist for Security 154 9.5 For Further Reading 157 9.6 Discussion Questions 158 CHAPTER 10 Testability 159 10.1 Testability General Scenario 162 10.2 Tactics for Testability 164 10.3 A Design Checklist for Testability 169 10.5 For Further Reading 172 10.6 Discussion Questions 173 CHAPTER 11 Usability 175 11.1 Usability General Scenario 176 11.2 Tactics for Usability 177 11.3 A Design Checklist for Usability 181 11.5 For Further Reading 183 11.6 Discussion Questions 183 CHAPTER 12 Other Quality Attributes 185 12.1 Other Important Quality Attributes 185 12.2 Other Categories of Quality Attributes 189 12.