Software Architecture in Practice (Sei Series in Software Engineering) (3TH)

個数:

Software Architecture in Practice (Sei Series in Software Engineering) (3TH)

  • 提携先の海外書籍取次会社に在庫がございます。通常2週間で発送いたします。
    重要ご説明事項
    1. 納期遅延や、ご入手不能となる場合が若干ございます。
    2. 複数冊ご注文の場合、分割発送となる場合がございます。
    3. 美品のご指定は承りかねます。
  • 製本 Hardcover:ハードカバー版/ページ数 589 p.
  • 言語 ENG,ENG
  • 商品コード 9780321815736
  • DDC分類 005.1

Full Description


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

Table of Contents

Preface                                            xv
Reader's Guide xvii
Acknowledgments xix
PART ONE INTRODUCTION 1 (60)
Chapter 1 What Is Software Architecture? 3 (22)
1.1 What Software Architecture Is and 4 (5)
What It Isn't
1.2 Architectural Structures and Views 9 (9)
1.3 Architectural Patterns 18 (1)
1.4 What Makes a "Good" Architecture? 19 (2)
1.5 Summary 21 (1)
1.6 For Further Reading 22 (1)
1.7 Discussion Questions 23 (2)
Chapter 2 Why Is Software Architecture 25 (14)
Important?
2.1 Inhibiting or Enabling a System's 26 (1)
Quality Attributes
2.2 Reasoning About and Managing Change 27 (1)
2.3 Predicting System Qualities 28 (1)
2.4 Enhancing Communication among 29 (2)
Stakeholders
2.5 Carrying Early Design Decisions 31 (1)
2.6 Defining Constraints on an 32 (1)
Implementation
2.7 Influencing the Organizational 33 (1)
Structure
2.8 Enabling Evolutionary Prototyping 33 (1)
2.9 Improving Cost and Schedule Estimates 34 (1)
2.10 Supplying a Transferable, Reusable 35 (1)
Model
2.11 Allowing Incorporation of 35 (1)
Independently Developed Components
2.12 Restricting the Vocabulary of Design 36 (1)
Alternatives
2.13 Providing a Basis for Training 37 (1)
2.14 Summary 37 (1)
2.15 For Further Reading 38 (1)
2.16 Discussion Questions 38 (1)
Chapter 3 The Many Contexts of Software 39 (22)
Architecture
3.1 Architecture in a Technical Context 40 (4)
3.2 Architecture in a Project Life-Cycle 44 (5)
Context
3.3 Architecture in a Business Context 49 (2)
3.4 Architecture in a Professional Context 51 (1)
3.5 Stakeholders 52 (4)
3.6 How Is Architecture Influenced? 56 (1)
3.7 What Do Architectures Influence? 57 (2)
3.8 Summary 59 (1)
3.9 For Further Reading 59 (1)
3.10 Discussion Questions 60 (1)
PART TWO QUALITY ATTRIBUTES 61 (210)
Chapter 4 Understanding Quality Attributes 63 (16)
4.1 Architecture and Requirements 64 (1)
4.2 Functionality 65 (1)
4.3 Quality Attribute Considerations 65 (3)
4.4 Specifying Quality Attribute 68 (2)
Requirements
4.5 Achieving Quality Attributes through 70 (2)
Tactics
4.6 Guiding Quality Design Decisions 72 (4)
4.7 Summary 76 (1)
4.8 For Further Reading 77 (1)
4.9 Discussion Questions 77 (2)
Chapter 5 Availability 79 (24)
5.1 Availability General Scenario 85 (2)
5.2 Tactics for Availability 87 (9)
5.3 A Design Checklist for Availability 96 (2)
5.4 Summary 98 (1)
5.5 For Further Reading 99 (1)
5.6 Discussion Questions 100 (3)
Chapter 6 Interoperability 103 (14)
6.1 Interoperability General Scenario 107 (3)
6.2 Tactics for Interoperability 110 (4)
6.3 A Design Checklist for 114 (1)
Interoperability
6.4 Summary 115 (1)
6.5 For Further Reading 116 (1)
6.6 Discussion Questions 116 (1)
Chapter 7 Modifiability 117 (14)
7.1 Modifiability General Scenario 119 (2)
7.2 Tactics for Modifiability 121 (4)
7.3 A Design Checklist for Modifiability 125 (3)
7.4 Summary 128 (1)
7.5 For Further Reading 128 (1)
7.6 Discussion Questions 128 (3)
Chapter 8 Performance 131 (16)
8.1 Performance General Scenario 132 (3)
8.2 Tactics for Performance 135 (7)
8.3 A Design Checklist for Performance 142 (3)
8.4 Summary 145 (1)
8.5 For Further Reading 145 (1)
8.6 Discussion Questions 145 (2)
Chapter 9 Security 147 (12)
9.1 Security General Scenario 148 (2)
9.2 Tactics for Security 150 (4)
9.3 A Design Checklist for Security 154 (2)
9.4 Summary 156 (1)
9.5 For Further Reading 157 (1)
9.6 Discussion Questions 158 (1)
Chapter 10 Testability 159 (16)
10.1 Testability General Scenario 162 (2)
10.2 Tactics for Testability 164 (5)
10.3 A Design Checklist for Testability 169 (3)
10.4 Summary 172 (1)
10.5 For Further Reading 172 (1)
10.6 Discussion Questions 173 (2)
Chapter 11 Usability 175 (10)
11.1 Usability General Scenario 176 (1)
11.2 Tactics for Usability 177 (4)
11.3 A Design Checklist for Usability 181 (2)
11.4 Summary 183 (1)
11.5 For Further Reading 183 (1)
11.6 Discussion Questions 183 (2)
Chapter 12 Other Quality Attributes 185 (18)
12.1 Other Important Quality Attributes 185 (4)
12.2 Other Categories of Quality 189 (1)
Attributes
12.3 Software Quality Attributes and 190 (3)
System Quality Attributes
12.4 Using Standard Lists of Quality 193 (3)
Attributes---or Not
12.5 Dealing with "X-ability": Bringing a 196 (4)
New Quality Attribute into the Fold
12.6 For Further Reading 200 (1)
12.7 Discussion Questions 201 (2)
Chapter 13 Architectural Tactics and 203 (48)
Patterns
13.1 Architectural Patterns 204 (1)
13.2 Overview of the Patterns Catalog 205 (33)
13.3 Relationships between Tactics and 238 (4)
Patterns
13.4 Using Tactics Together 242 (5)
13.5 Summary 247 (1)
13.6 For Further Reading 248 (1)
13.7 Discussion Questions 249 (2)
Chapter 14 Quality Attribute Modeling and 251 (20)
Analysis
14.1 Modeling Architectures to Enable 252 (8)
Quality Attribute Analysis
14.2 Quality Attribute Checklists 260 (2)
14.3 Thought Experiments and 262 (2)
Back-of-the-Envelope Analysis
14.4 Experiments, Simulations, and 264 (1)
Prototypes
14.5 Analysis at Different Stages of the 265 (1)
Life Cycle
14.6 Summary 266 (1)
14.7 For Further Reading 267 (2)
14.8 Discussion Questions 269 (2)
PART THREE ARCHITECTURE IN THE LIFE CYCLE 271 (164)
Chapter 15 Architecture in Agile Projects 275 (16)
15.1 How Much Architecture? 277 (4)
15.2 Agility and Architecture Methods 281 (2)
15.3 A Brief Example of Agile Architecting 283 (3)
15.4 Guidelines for the Agile Architect 286 (1)
15.5 Summary 287 (1)
15.6 For Further Reading 288 (1)
15.7 Discussion Questions 289 (2)
Chapter 16 Architecture and Requirements 291 (20)
16.1 Gathering ASRs from Requirements 292 (2)
Documents
16.2 Gathering ASRs by Interviewing 294 (2)
Stakeholders
16.3 Gathering ASRs by Understanding the 296 (8)
Business Goals
16.4 Capturing ASRs in a Utility Tree 304 (4)
16.5 Tying the Methods Together 308 (1)
16.6 Summary 308 (1)
16.7 For Further Reading 309 (1)
16.8 Discussion Questions 309 (2)
Chapter 17 Designing an Architecture 311 (16)
17.1 Design Strategy 311 (5)
17.2 The Attribute-Driven Design Method 316 (2)
17.3 The Steps of ADD 318 (7)
17.4 Summary 325 (1)
17.5 For Further Reading 325 (1)
17.6 Discussion Questions 326 (1)
Chapter 18 Documenting Software 327 (36)
Architectures
18.1 Uses and Audiences for Architecture 328 (1)
Documentation
18.2 Notations for Architecture 329 (2)
Documentation
18.3 Views 331 (10)
18.4 Choosing the Views 341 (2)
18.5 Combining Views 343 (2)
18.6 Building the Documentation Package 345 (6)
18.7 Documenting Behavior 351 (3)
18.8 Architecture Documentation and 354 (1)
Quality Attributes
18.9 Documenting Architectures That 355 (1)
Change Faster Than You Can Document Them
18.10 Documenting Architecture in an 356 (3)
Agile Development Project
18.11 Summary 359 (1)
18.12 For Further Reading 360 (1)
18.13 Discussion Questions 360 (3)
Chapter 19 Architecture, Implementation, 363 (16)
and Testing
19.1 Architecture and Implementation 363 (7)
19.2 Architecture and Testing 370 (6)
19.3 Summary 376 (1)
19.4 For Further Reading 376 (1)
19.5 Discussion Questions 377 (2)
Chapter 20 Architecture Reconstruction and 379 (18)
Conformance
20.1 Architecture Reconstruction Process 381 (1)
20.2 Raw View Extraction 382 (4)
20.3 Database Construction 386 (2)
20.4 View Fusion 388 (1)
20.5 Architecture Analysis: Finding 389 (3)
Violations
20.6 Guidelines 392 (1)
20.7 Summary 393 (1)
20.8 For Further Reading 394 (1)
20.9 Discussion Questions 395 (2)
Chapter 21 Architecture Evaluation 397 (22)
21.1 Evaluation Factors 397 (3)
21.2 The Architecture Tradeoff Analysis 400 (15)
Method
21.3 Lightweight Architecture Evaluation 415 (2)
21.4 Summary 417 (1)
21.5 For Further Reading 417 (1)
21.6 Discussion Questions 418 (1)
Chapter 22 Management and Governance 419 (16)
22.1 Planning 420 (2)
22.2 Organizing 422 (5)
22.3 Implementing 427 (2)
22.4 Measuring 429 (1)
22.5 Governance 430 (2)
22.6 Summary 432 (1)
22.7 For Further Reading 432 (1)
22.8 Discussion Questions 433 (2)
PART FOUR ARCHITECTURE AND BUSINESS 435 (66)
Chapter 23 Economic Analysis of 437 (22)
Architectures
23.1 Decision-Making Context 438 (1)
23.2 The Basis for the Economic Analyses 439 (3)
23.3 Putting Theory into Practice: The 442 (8)
CBAM
23.4 Case Study: The NASA ECS Project 450 (7)
23.5 Summary 457 (1)
23.6 For Further Reading 458 (1)
23.7 Discussion Questions 458 (1)
Chapter 24 Architecture Competence 459 (20)
24.1 Competence of Individuals: Duties, 460 (7)
Skills, and Knowledge of Architects
24.2 Competence of a Software 467 (8)
Architecture Organization
24.3 Summary 475 (1)
24.4 For Further Reading 475 (2)
24.5 Discussion Questions 477 (2)
Chapter 25 Architecture and Software 479 (22)
Product Lines
25.1 An Example of Product Line 482 (1)
Variability
25.2 What Makes a Software Product Line 483 (3)
Work?
25.3 Product Line Scope 486 (2)
25.4 The Quality Attribute of Variability 488 (1)
25.5 The Role of a Product Line 488 (2)
Architecture
25.6 Variation Mechanisms 490 (3)
25.7 Evaluating a Product Line 493 (1)
Architecture
25.8 Key Software Product Line Issues 494 (3)
25.9 Summary 497 (1)
25.10 For Further Reading 498 (1)
25.11 Discussion Questions 498 (3)
PART FIVE THE BRAVE NEW WORLD 501 (46)
Chapter 26 Architecture in the Cloud 503 (24)
26.1 Basic Cloud Definitions 504 (1)
26.2 Service Models and Deployment Options 505 (1)
26.3 Economic Justification 506 (3)
26.4 Base Mechanisms 509 (5)
26.5 Sample Technologies 514 (6)
26.6 Architecting in a Cloud Environment 520 (4)
26.7 Summary 524 (1)
26.8 For Further Reading 524 (1)
26.9 Discussion Questions 525 (2)
Chapter 27 Architectures for the Edge 527 (14)
27.1 The Ecosystem of Edge-Dominant 528 (2)
Systems
27.2 Changes to the Software Development 530 (1)
Life Cycle
27.3 Implications for Architecture 531 (2)
27.4 Implications of the Metropolis Model 533 (4)
27.5 Summary 537 (1)
27.6 For Further Reading 538 (1)
27.7 Discussion Questions 538 (3)
Chapter 28 Epilogue 541 (6)
References 547 (14)
About the Authors 561 (2)
Index 563