Home > Store

Software Architecture in Practice, 3rd Edition

Register your product to gain access to bonus material or receive a coupon.

Software Architecture in Practice, 3rd Edition

Book

  • Sorry, this book is no longer in print.
Not for Sale

About

Features

  • The core book in Software Engineering Institute's (SEI) influential software architecture curriculum: the field's best-seller (14,000+ copies sold)
  • Helps software practitioners and managers resolve crucial questions that enable the development of clear and effective architecture
  • Now accompanied by slides, exercises, and exercise answers, making it even easier to teach and learn from
  • Description

    • Copyright 2013
    • Dimensions: 6-1/4" x 9-1/4"
    • Pages: 624
    • Edition: 3rd
    • Book
    • ISBN-10: 0-321-81573-4
    • ISBN-13: 978-0-321-81573-6

    The award-winning and highly influential Software Architecture in Practice, Third Edition, has been substantially revised to reflect the latest developments in the field. In a real-world setting, the book once again introduces the concepts and best practices of software architecture—how a software system is structured and how that system’s elements are meant to interact. Distinct from the details of implementation, algorithm, and data representation, an architecture holds the key to achieving system quality, is a reusable asset that can be applied to subsequent systems, and is crucial to a software organization’s business strategy.

    The authors have structured this edition around the concept of architecture influence cycles. Each cycle shows how architecture influences, and is influenced by, a particular context in which architecture plays a critical role. Contexts include technical environment, the life cycle of a project, an organization’s business profile, and the architect’s professional practices. The authors also have greatly expanded their treatment of quality attributes, which remain central to their architecture philosophy—with an entire chapter devoted to each attribute—and broadened their treatment of architectural patterns.

    If you design, develop, or manage large software systems (or plan to do so), you will find this book to be a valuable resource for getting up to speed on the state of the art.

    Totally new material covers  

    • Contexts of software architecture: technical, project, business, and professional
    • Architecture competence: what this means both for individuals and organizations
    • The origins of business goals and how this affects architecture
    • Architecturally significant requirements, and how to determine them
    • Architecture in the life cycle, including generate-and-test as a design philosophy; architecture conformance during implementation; architecture and testing; and architecture and agile development
    • Architecture and current technologies, such as the cloud, social networks, and end-user devices

    Sample Content

    Online Sample Chapter

    Understanding Quality Attributes in Software Architecture

    Sample Pages

    Download the sample pages (includes Chapter 4 and Index)

    Table of 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.3 Architectural Patterns 18

    1.4 What Makes a “Good” Architecture? 19

    1.5 Summary 21

    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

    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.14 Summary 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.5 Stakeholders 52

    3.6 How Is Architecture Influenced? 56

    3.7 What Do Architectures Influence? 57

    3.8 Summary 59

    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.2 Functionality 65

    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

    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.4 Summary 98

    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.4 Summary 115

    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.4 Summary 128

    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.4 Summary 145

    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

    9.3 A Design Checklist for Security 154

    9.4 Summary 156

    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.4 Summary 172

    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.4 Summary 183

    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.3 Software Quality Attributes and System Quality Attributes 190

    12.4 Using Standard Lists of Quality Attributes–or Not 193

    12.5 Dealing with “X-ability”: Bringing a New Quality Attribute into the Fold 196

    12.6 For Further Reading 200

    12.7 Discussion Questions 201

    Chapter 13: Architectural Tactics and Patterns 203

    13.1 Architectural Patterns 204

    13.2 Overview of the Patterns Catalog 205

    13.3 Relationships between Tactics and Patterns 238

    13.4 Using Tactics Together 242

    13.5 Summary 247

    13.6 For Further Reading 248

    13.7 Discussion Questions 249

    Chapter 14: Quality Attribute Modeling and Analysis 251

    14.1 Modeling Architectures to Enable Quality Attribute Analysis 252

    14.2 Quality Attribute Checklists 260

    14.3 Thought Experiments and Back-of-the-Envelope Analysis 262

    14.4 Experiments, Simulations, and Prototypes 264

    14.5 Analysis at Different Stages of the Life Cycle 265

    14.6 Summary 266

    14.7 For Further Reading 267

    14.8 Discussion Questions 269

    Part Three: Architecture in the Life Cycle 271

     

    Chapter 15: Architecture in Agile Projects 275

    15.1 How Much Architecture? 277

    15.2 Agility and Architecture Methods 281

    15.3 A Brief Example of Agile Architecting 283

    15.4 Guidelines for the Agile Architect 286

    15.5 Summary 287

    15.6 For Further Reading 288

    15.7 Discussion Questions 289

    Chapter 16: Architecture and Requirements 291

    16.1 Gathering ASRs from Requirements Documents 292

    16.2 Gathering ASRs by Interviewing Stakeholders 294

    16.3 Gathering ASRs by Understanding the Business Goals 296

    16.4 Capturing ASRs in a Utility Tree 304

    16.5 Tying the Methods Together 308

    16.6 Summary 308

    16.7 For Further Reading 309

    16.8 Discussion Questions 309

    Chapter 17: Designing an Architecture 311

    17.1 Design Strategy 311

    17.2 The Attribute-Driven Design Method 316

    17.3 The Steps of ADD 318

    17.4 Summary 325

    17.5 For Further Reading 325

    17.6 Discussion Questions 326

    Chapter 18: Documenting Software Architectures 327

    18.1 Uses and Audiences for Architecture Documentation 328

    18.2 Notations for Architecture Documentation 329

    18.3 Views 331

    18.4 Choosing the Views 341

    18.5 Combining Views 343

    18.6 Building the Documentation Package 345

    18.7 Documenting Behavior 351

    18.8 Architecture Documentation and Quality Attributes 354

    18.9 Documenting Architectures That Change Faster Than You Can Document Them 355

    18.10 Documenting Architecture in an Agile Development Project 356

    18.11 Summary 359

    18.12 For Further Reading 360

    18.13 Discussion Questions 360

    Chapter 19: Architecture, Implementation, and Testing 363

    19.1 Architecture and Implementation 363

    19.2 Architecture and Testing 370

    19.3 Summary 376

    19.4 For Further Reading 376

    19.5 Discussion Questions 377

    Chapter 20: Architecture Reconstruction and Conformance 379

    20.1 Architecture Reconstruction Process 381

    20.2 Raw View Extraction 382

    20.3 Database Construction 386

    20.4 View Fusion 388

    20.5 Architecture Analysis: Finding Violations 389

    20.6 Guidelines 392

    20.7 Summary 393

    20.8 For Further Reading 394

    20.9 Discussion Questions 395

    Chapter 21: Architecture Evaluation 397

    21.1 Evaluation Factors 397

    21.2 The Architecture Tradeoff Analysis Method 400

    21.3 Lightweight Architecture Evaluation 415

    21.4 Summary 417

    21.5 For Further Reading 417

    21.6 Discussion Questions 418

    Chapter 22: Management and Governance 419

    22.1 Planning 420

    22.2 Organizing 422

    22.3 Implementing 427

    22.4 Measuring 429

    22.5 Governance 430

    22.6 Summary 432

    22.7 For Further Reading 432

    22.8 Discussion Questions 433

    Part Four: Architecture and Business 435

     

    Chapter 23: Economic Analysis of Architectures 437

    23.1 Decision-Making Context 438

    23.2 The Basis for the Economic Analyses 439

    23.3 Putting Theory into Practice: The CBAM 442

    23.4 Case Study: The NASA ECS Project 450

    23.5 Summary 457

    23.6 For Further Reading 458

    23.7 Discussion Questions 458

    Chapter 24: Architecture Competence 459

    24.1 Competence of Individuals: Duties, Skills, and Knowledge of Architects 460

    24.2 Competence of a Software Architecture Organization 467

    24.3 Summary 475

    24.4 For Further Reading 475

    24.5 Discussion Questions 477

    Chapter 25: Architecture and Software Product Lines 479

    25.1 An Example of Product Line Variability 482

    25.2 What Makes a Software Product Line Work? 483

    25.3 Product Line Scope 486

    25.4 The Quality Attribute of Variability 488

    25.5 The Role of a Product Line Architecture 488

    25.6 Variation Mechanisms 490

    25.7 Evaluating a Product Line Architecture 493

    25.8 Key Software Product Line Issues 494

    25.9 Summary 497

    25.10 For Further Reading 498

    25.11 Discussion Questions 498

    Part Five: The Brave New World 501

     

    Chapter 26: Architecture in the Cloud 503

    26.1 Basic Cloud Definitions 504

    26.2 Service Models and Deployment Options 505

    26.3 Economic Justification 506

    26.4 Base Mechanisms 509

    26.5 Sample Technologies 514

    26.6 Architecting in a Cloud Environment 520

    26.7 Summary 524

    26.8 For Further Reading 524

    26.9 Discussion Questions 525

    Chapter 27: Architectures for the Edge 527

    27.1 The Ecosystem of Edge-Dominant Systems 528

    27.2 Changes to the Software Development Life Cycle 530

    27.3 Implications for Architecture 531

    27.4 Implications of the Metropolis Model 533

    27.5 Summary 537

    27.6 For Further Reading 538

    27.7 Discussion Questions 538

    Chapter 28: Epilogue 541

     

    References 547

    About the Authors 561

    Index 563

    Updates

    Submit Errata

    More Information

    InformIT Promotional Mailings & Special Offers

    I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.

    Overview


    Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

    This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

    Collection and Use of Information


    To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

    Questions and Inquiries

    For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

    Online Store

    For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.

    Surveys

    Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

    Contests and Drawings

    Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.

    Newsletters

    If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

    Service Announcements

    On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

    Customer Service

    We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

    Other Collection and Use of Information


    Application and System Logs

    Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

    Web Analytics

    Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

    Cookies and Related Technologies

    This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

    Do Not Track

    This site currently does not respond to Do Not Track signals.

    Security


    Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.

    Children


    This site is not directed to children under the age of 13.

    Marketing


    Pearson may send or direct marketing communications to users, provided that

    • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
    • Such marketing is consistent with applicable law and Pearson's legal obligations.
    • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
    • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

    Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

    Correcting/Updating Personal Information


    If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.

    Choice/Opt-out


    Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

    Sale of Personal Information


    Pearson does not rent or sell personal information in exchange for any payment of money.

    While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

    Supplemental Privacy Statement for California Residents


    California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

    Sharing and Disclosure


    Pearson may disclose personal information, as follows:

    • As required by law.
    • With the consent of the individual (or their parent, if the individual is a minor)
    • In response to a subpoena, court order or legal process, to the extent permitted or required by law
    • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
    • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
    • To investigate or address actual or suspected fraud or other illegal activities
    • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
    • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
    • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.

    Links


    This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

    Requests and Contact


    Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

    Changes to this Privacy Notice


    We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

    Last Update: November 17, 2020