
Software Architecture in Practice, 4th edition
BRAND: PEARSON
eBook edition. Monthly Subscription. Dành cho Cá nhân | Trường ĐH, Nhóm, Thư Viện: Gọi 0915920514 để báo giá Pearson, Vital Source eBook hoặc mua Sách In
Tổng quan sách
Hướng dẫn dứt khoát, thực tế, đã được chứng minh để kiến trúc phần mềm hiện đại--Được cập nhật đầy đủ với nội dung mới về tính di động, đám mây, quản lý năng lượng, DevOps, điện toán lượng tử, v.v.Được cập nhật với 11 chương mới, Kiến trúc phần mềm trong thực hành, Phiên bản thứ tư, giải thích cặn kẽ kiến trúc phần mềm là gì, tại sao nó quan trọng và cách thiết kế, khởi tạo, phân tích, phát triển và quản lý nó theo những cách có kỷ luật và hiệu quả.Ba kiến trúc sư phần mềm nổi tiếng phụ trách toàn bộ vòng đời, trình bày hướng dẫn thực tế, phương pháp chuyên môn và mô hình đã được thử nghiệm để sử dụng trong bất kỳ dự án nào, bất kể phức tạp đến đâu. Bạn sẽ học cách sử dụng kiến trúc để giải quyết việc tăng tốc độ tăng trưởng về yêu cầu, quy mô hệ thống và tính trừu tượng cũng như quản lý các thuộc tính chất lượng mới xuất hiện khi các hệ thống được kết hợp linh hoạt theo những cách mới.Với những hiểu biết sâu sắc về việc sử dụng kiến trúc để tối ưu hóa các thuộc tính chất lượng quan trọng--bao gồm hiệu suất, khả năng sửa đổi, bảo mật, tính khả dụng, khả năng tương tác, khả năng kiểm tra, khả năng sử dụng, khả năng triển khai, v.v.--hướng dẫn này giải thích cách quản lý và tinh chỉnh các kiến trúc hiện có, chuyển đổi chúng để giải quyết các vấn đề mới và xây dựng các kiến trúc có thể tái sử dụng để trở thành tài sản kinh doanh chiến lược.Khám phá cách kiến trúc ảnh hưởng (và bị ảnh hưởng bởi) môi trường kỹ thuật, vòng đời dự án, hồ sơ kinh doanh và hoạt động thực tiễn của riêng bạnTận dụng các mô hình, giao diện và thực tiễn đã được chứng minh để tối ưu hóa chất lượng thông qua kiến trúcKiến trúc sư cho tính di động, đám mây, học máy và điện toán lượng tửThiết kế cho các thuộc tính ngày càng quan trọng như hiệu quả năng lượng và an toànMở rộng quy mô hệ thống bằng cách khám phá những ảnh hưởng quan trọng về mặt kiến trúc, sử dụng DevOps và quy trình triển khai cũng như quản lý nợ kiến trúcHiểu vai trò của kiến trúc trong tổ chức để bạn có thể mang lại nhiều giá trị hơnĐăng ký sách của bạn để có quyền truy cập thuận tiện vào việc tải xuống, cập nhật và/hoặc chỉnh sửa khi chúng có sẵn. Xem sách bên trong để biết chi tiết.
- Preface xvAcknowledgments xviiPart I: Introduction 1
- Chapter 1: What Is Software Architecture? 11.1 What Software Architecture Is and What It Isn't 21.2 Architectural Structures and Views 51.3 What Makes a "Good" Architecture? 191.4 Summary 211.5 For Further Reading 211.6 Discussion Questions 22
- Chapter 2: Why Is Software Architecture Important? 252.1 Inhibiting or Enabling a System's Quality Attributes 262.2 Reasoning about and Managing Change 272.3 Predicting System Qualities 282.4 Communication among Stakeholders 282.5 Early Design Decisions 312.6 Constraints on Implementation 312.7 Influences on Organizational Structure 322.8 Enabling Incremental Development 332.9 Cost and Schedule Estimates 332.10 Transferable, Reusable Model 342.11 Architecture Allows Incorporation of Independently Developed Elements 342.12 Restricting the Vocabulary of Design Alternatives 352.13 A Basis for Training 362.14 Summary 362.15 For Further Reading 372.16 Discussion Questions 37Part II: Quality Attributes 39
- Chapter 3: Understanding Quality Attributes 393.1 Functionality 403.2 Quality Attribute Considerations 413.3 Specifying Quality Attribute Requirements: Quality Attribute Scenarios 423.4 Achieving Quality Attributes through Architectural Patterns and Tactics 453.5 Designing with Tactics 463.6 Analyzing Quality Attribute Design Decisions: Tactics-Based Questionnaires 483.7 Summary 493.8 For Further Reading 493.9 Discussion Questions 50
- Chapter 4: Availability 514.1 Availability General Scenario 534.2 Tactics for Availability 554.3 Tactics-Based Questionnaire for Availability 624.4 Patterns for Availability 664.5 For Further Reading 684.6 Discussion Questions 69
- Chapter 5: Deployability 715.1 Continuous Deployment 725.2 Deployability 755.3 Deployability General Scenario 765.4 Tactics for Deployability 785.5 Tactics-Based Questionnaire for Deployability 805.6 Patterns for Deployability 815.7 For Further Reading 875.8 Discussion Questions 87
- Chapter 6: Energy Efficiency 896.1 Energy Efficiency General Scenario 906.2 Tactics for Energy Efficiency 926.3 Tactics-Based Questionnaire for Energy Efficiency 956.4 Patterns 976.5 For Further Reading 986.6 Discussion Questions 99
- Chapter 7: Integrability 1017.1 Evaluating the Integrability of an Architecture 1027.2 General Scenario for Integrability 1047.3 Integrability Tactics 1057.4 Tactics-Based Questionnaire for Integrability 1107.5 Patterns 1127.6 For Further Reading 1147.7 Discussion Questions 115
- Chapter 8: Modifiability 1178.1 Modifiability General Scenario 1208.2 Tactics for Modifiability 1218.3 Tactics-Based Questionnaire for Modifiability 1258.4 Patterns 1268.5 For Further Reading 1308.6 Discussion Questions 131
- Chapter 9: Performance 1339.1 Performance General Scenario 1349.2 Tactics for Performance 1379.3 Tactics-Based Questionnaire for Performance 1459.4 Patterns for Performance 1469.5 For Further Reading 1499.6 Discussion Questions 150
- Chapter 10: Safety 15110.1 Safety General Scenario 15410.2 Tactics for Safety 15610.3 Tactics-Based Questionnaire for Safety 16010.4 Patterns for Safety 16310.5 For Further Reading 16510.6 Discussion Questions 166
- Chapter 11: Security 16911.1 Security General Scenario 17011.2 Tactics for Security 17211.3 Tactics-Based Questionnaire for Security 17611.4 Patterns for Security 17911.5 For Further Reading 18011.6 Discussion Questions 180
- Chapter 12: Testability 18312.1 Testability General Scenario 18612.2 Tactics for Testability 18712.3 Tactics-Based Questionnaire for Testability 19212.4 Patterns for Testability 19212.5 For Further Reading 19412.6 Discussion Questions 195
- Chapter 13: Usability 19713.1 Usability General Scenario 19813.2 Tactics for Usability 20013.3 Tactics-Based Questionnaire for Usability 20213.4 Patterns for Usability 20313.5 For Further Reading 20513.6 Discussion Questions 205
- Chapter 14: Working with Other Quality Attributes 20714.1 Other Kinds of Quality Attributes 20714.2 Using Standard Lists of Quality Attributes--Or Not 20914.3 Dealing with "X-Ability": Bringing a New QA into the Fold 21214.4 For Further Reading 21514.5 Discussion Questions 215Part III: Architectural Solutions 217
- Chapter 15: Software Interfaces 21715.1 Interface Concepts 21815.2 Designing an Interface 22215.3 Documenting the Interface 22815.4 Summary 23015.5 For Further Reading 23015.6 Discussion Questions 231
- Chapter 16: Virtualization 23316.1 Shared Resources 23416.2 Virtual Machines 23516.3 VM Images 23816.4 Containers 23916.5 Containers and VMs 24116.6 Container Portability 24216.7 Pods 24216.8 Serverless Architecture 24316.9 Summary 24416.10 For Further Reading 24516.11 Discussion Questions 245
- Chapter 17: The Cloud and Distributed Computing 24717.1 Cloud Basics 24817.2 Failure in the Cloud 25117.3 Using Multiple Instances to Improve Performance and Availability 25317.4 Summary 26117.5 For Further Reading 26217.6 Discussion Questions 262
- Chapter 18: Mobile Systems 26318.1 Energy 26418.2 Network Connectivity 26618.3 Sensors and Actuators 26718.4 Resources 26818.5 Life Cycle 27018.6 Summary 27318.7 For Further Reading 27418.8 Discussion Questions 275Part IV: Scalable Architecture Practices 277
- Chapter 19: Architecturally Significant Requirements 27719.1 Gathering ASRs from Requirements Documents 27819.2 Gathering ASRs by Interviewing Stakeholders 27919.3 Gathering ASRs by Understanding the Business Goals 28219.4 Capturing ASRs in a Utility Tree 28419.5 Change Happens 28619.6 Summary 28619.7 For Further Reading 28719.8 Discussion Questions 287
- Chapter 20: Designing an Architecture 28920.1 Attribute-Driven Design 28920.2 The Steps of ADD 29220.3 More on ADD Step 4: Choose One or More Design Concepts 29520.4 More on ADD Step 5: Producing Structures 29820.5 More on ADD Step 6: Creating Preliminary Documentation during the Design 30120.6 More on ADD Step 7: Perform Analysis of the Current Design and Review the Iteration Goal and Achievement of the Design Purpose 30420.7 Summary 30620.8 For Further Reading 30620.9 Discussion Questions 307
- Chapter 21: Evaluating an Architecture 30921.1 Evaluation as a Risk Reduction Activity 30921.2 What Are the Key Evaluation Activities? 31021.3 Who Can Perform the Evaluation? 31121.4 Contextual Factors 31221.5 The Architecture Tradeoff Analysis Method 31321.6 Lightweight Architecture Evaluation 32421.7 Summary 32621.8 For Further Reading 32721.9 Discussion Questions 327
- Chapter 22: Documenting an Architecture 32922.1 Uses and Audiences for Architecture Documentation 33022.2 Notations 33122.3 Views 33222.4 Combining Views 33922.5 Documenting Behavior 34022.6 Beyond Views 34522.7 Documenting the Rationale 34622.8 Architecture Stakeholders 34722.9 Practical Considerations 35022.10 Summary 35322.11 For Further Reading 35322.12 Discussion Questions 354
- Chapter 23: Managing Architecture Debt 35523.1 Determining Whether You Have an Architecture Debt Problem 35623.2 Discovering Hotspots 35823.3 Example 36223.4 Automation 36323.5 Summary 36423.6 For Further Reading 36423.7 Discussion Questions 365Part V: Architecture and the Organization 367
- Chapter 24: The Role of Architects in Projects 36724.1 The Architect and the Project Manager 36724.2 Incremental Architecture and Stakeholders 36924.3 Architecture and Agile Development 37024.4 Architecture and Distributed Development 37324.5 Summary 37624.6 For Further Reading 37624.7 Discussion Questions 377
- Chapter 25: Architecture Competence 37925.1 Competence of Individuals: Duties, Skills, and Knowledge of Architects 37925.2 Competence of a Software Architecture Organization 38625.3 Become a Better Architect 38725.4 Summary 38825.5 For Further Reading 38825.6 Discussion Questions 389Part VI: Conclusions 391
- Chapter 26: A Glimpse of the Future: Quantum Computing 39126.1 Single Qubit 39226.2 Quantum Teleportation 39426.3 Quantum Computing and Encryption 39426.4 Other Algorithms 39526.5 Potential Applications 39626.6 Final Thoughts 39726.7 For Further Reading 398References 399About the Authors 415Index 417