HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
This eBook includes the following formats, accessible from your Account page after purchase:
EPUB The open industry format known for its reflowable content and usability on supported mobile devices.
PDF The popular standard, used most often with the free Acrobat® Reader® software.
This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
Also available in other formats.
Register your product to gain access to bonus material or receive a coupon.
Software Systems Architecture, Second Edition is a highly regarded, practitioner-oriented guide to designing and implementing effective architectures for information systems. It is both a readily accessible introduction to software architecture and an invaluable handbook of well-established best practices.
With this book you will learn how to
Reflecting new standards and developments in the field, this new edition extends and updates much of the content, and
Whether you are an aspiring or practicing software architect, you will find yourself referring repeatedly to the practical advice in this book throughout the lifecycle of your projects. A supporting Web site containing further information can be found at www.viewpoints-and-perspectives.info.
Preface to the Second Edition xv
Acknowledgments for the Second Edition xvi
Preface to the First Edition xvii
Acknowledgments xx
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 20
Stakeholders 21
Architectural Descriptions 24
Relationships between the Core Concepts 26
Summary 27
Further Reading 28
Chapter 3: Viewpoints and Views 31
Architectural Views 34
Viewpoints 36
Relationships between the Core Concepts 37
The Benefits of Using Viewpoints and Views 38
Viewpoint Pitfalls 39
Our Viewpoint Catalog 39
Summary 43
Further Reading 43
Chapter 4: Architectural Perspectives 45
Quality Properties 45
Architectural Perspectives 47
Applying Perspectives to Views 51
Consequences of Applying a Perspective 54
Relationships between the Core Concepts 56
The Benefits of Using Perspectives 56
Perspective Pitfalls 58
Comparing Perspectives to Viewpoints 58
Our Perspective Catalog 60
Summary 61
Further Reading 62
Chapter 5: The Role Of The Software Architect 63
The Architecture Definition Process 64
The Role of the Architect 68
Interrelationships between the Core Concepts 71
Architectural Specializations 72
The Organizational Context 73
The Architect’s Skills 76
The Architect’s Responsibilities 77
Summary 78
Further Reading 79
Part II: The Process of Software Architecture 81
Chapter 6: Introduction to the Software Architecture Process 83
Chapter 7: The Architecture Definition Process 85
Guiding Principles 85
Process Outcomes 86
The Process Context 87
Supporting Activities 89
Architecture Definition Activities 92
Process Exit Criteria 97
Architecture Definition in the Software Development Lifecycle 98
Summary 102
Further Reading 103
Chapter 8: Concerns, Principles, and Decisions 105
Problem-Focused Concerns 108
Solution-Focused Concerns 111
Other Real-World Constraints 114
What Makes a Good Concern 116
Architectural Principles 117
Architectural Decisions 122
Using Principles to Link Concerns and Decisions 125
Checklist 128
Summary 128
Further Reading 129
Chapter 9: Identifying and Engaging Stakeholders 131
Selection of Stakeholders 131
Classes of Stakeholders 133
Examples 138
Proxy Stakeholders 140
Stakeholder Groups 141
Stakeholders’ Responsibilities 141
Checklist 142
Summary 142
Further Reading 143
Chapter 10: Identifying and Using Scenarios 145
Types of Scenarios 146
Uses for Scenarios 147
Identifying and Prioritizing Scenarios 148
Capturing Scenarios 149
What Makes a Good Scenario? 153
Applying Scenarios 154
Effective Use of Scenarios 157
Checklist 159
Summary 159
Further Reading 160
Chapter 11: Using Styles and Patterns 161
Introducing Design Patterns 161
Styles, Patterns, and Idioms 164
Patterns and Architectural Tactics 166
An Example of an Architectural Style 167
The Benefits of Using Architectural Styles 170
Styles and the Architectural Description 172
Applying Design Patterns and Language Idioms 172
Checklist 174
Summary 174
Further Reading 175
Chapter 12: Producing Architectural Models 177
Why Models Are Important 178
Types of Models 181
Modeling Languages 184
Guidelines for Creating Effective Models 187
Modeling with Agile Teams 193
Checklist 194
Summary 195
Further Reading 196
Chapter 13: Creating the Architectural Description 197
Properties of an Effective Architectural Description 198
Glossaries 206
The ISO Standard 206
Contents of the Architectural Description 207
Presenting the Architectural Description 213
Checklist 215
Summary 216
Further Reading 216
Chapter 14: Evaluating the Architecture 217
Why Evaluate the Architecture? 218
Evaluation Techniques 219
Scenario-Based Evaluation Methods 226
Evaluation during the Software Lifecycle 230
Validating the Architecture of an Existing System 233
Recording the Results of Evaluation 236
Choosing an Evaluation Approach 237
Checklist 238
Summary 238
Further Reading 239
Part III: A Viewpoint Catalog 241
Chapter 15: Introduction to the Viewpoint Catalog 243
Chapter 16: The Context Viewpoint 247
Concerns 248
Models 255
Problems and Pitfalls 261
Checklist 265
Further Reading 266
Chapter 17: The Functional Viewpoint 267
Concerns 268
Models 271
Problems and Pitfalls 285
Checklist 291
Further Reading 292
Chapter 18: The Information Viewpoint 293
Concerns 294
Models 311
Problems and Pitfalls 322
Checklist 330
Further Reading 330
Chapter 19: The Concurrency Viewpoint 333
Concerns 335
Models 340
Problems and Pitfalls 351
Checklist 355
Further Reading 355
Chapter 20: The Development Viewpoint 357
Concerns 358
Models 360
Problems and Pitfalls 367
Checklist 370
Further Reading 371
Chapter 21: The Deployment Viewpoint 373
Concerns 374
Models 378
Problems and Pitfalls 387
Checklist 391
Further Reading 392
Chapter 22: The Operational Viewpoint 393
Concerns 394
Models 402
Problems and Pitfalls 419
Checklist 423
Further Reading 424
Chapter 23: Achieving Consistency Across Views 425
Relationships between Views 426
Context and Functional View Consistency 427
Context and Information View Consistency 427
Context and Deployment View Consistency 428
Functional and Information View Consistency 428
Functional and Concurrency View Consistency 429
Functional and Development View Consistency 430
Functional and Deployment View Consistency 430
Functional and Operational View Consistency 431
Information and Concurrency View Consistency 431
Information and Development View Consistency 432
Information and Deployment View Consistency 432
Information and Operational View Consistency 432
Concurrency and Development View Consistency 433
Concurrency and Deployment View Consistency 433
Deployment and Operational View Consistency 434
Part IV: The Perspective Catalog 435
Chapter 24: Introduction to the Perspective Catalog 437
Chapter 25: The Security Perspective 439
Applicability to Views 441
Concerns 442
Activities: Applying the Security Perspective 446
Architectural Tactics 456
Problems and Pitfalls 465
Checklists 473
Further Reading 474
Chapter 26: The Performance and Scalability Perspective 475
Applicability to Views 476
Concerns 476
Activities: Applying the Performance and Scalability Perspective 482
Architectural Tactics 491
Problems and Pitfalls 502
Checklists 509
Further Reading 510
Chapter 27: The Availability and Resilience Perspective 511
Applicability to Views 512
Concerns 512
Activities: Applying the Availability and Resilience Perspective 516
Architectural Tactics 526
Problems and Pitfalls 533
Checklists 539
Further Reading 541
Chapter 28: The Evolution Perspective 543
Applicability to Views 544
Concerns 545
Activities: Applying the Evolution Perspective 549
Architectural Tactics 552
Problems and Pitfalls 560
Checklists 564
Further Reading 565
Chapter 29: Other Perspectives 567
The Accessibility Perspective 568
The Development Resource Perspective 573
The Internationalization Perspective 579
The Location Perspective 585
The Regulation Perspective 591
The Usability Perspective 595
Part V: Putting It All Together 603
Chapter 30: Working As A Software Architect 605
Architecture in the Project Lifecycle 605
Supporting Different Types of Projects 615
Appendix: Other Viewpoint Sets 621
Kruchten “4+1” 621
RM-ODP 623
Siemens (Hofmeister, Nord, and Soni) 623
SEI “Views and Beyond” Views 624
Garland and Anthony 626
IAF 627
Enterprise Architecture Frameworks 627
Other Enterprise Architecture Frameworks 629
Bibliography 631
About the Authors 643
Index 645