您好,欢迎来到聚文网。 登录 免费注册
软件架构实践(英文版·原书第4版)

软件架构实践(英文版·原书第4版)

  • 出版社: 机械工业
  • 作者: [美]伦·巴斯(Len Bass),[美]保罗·克莱门茨(Paul Clements),[美]瑞克·凯兹曼(Rick Kazman)
  • 商品条码: 9787111699156
  • 版次: 1
  • 开本: 16开
  • 页数: 413
  • 出版年份: 2022
  • 印次: 1
定价:¥139 销售价:登录后查看价格  ¥{{selectedSku?.salePrice}} 
库存: {{selectedSku?.stock}} 库存充足
{{item.title}}:
{{its.name}}
精选
内容简介
三位著名的软件架构师的新版著作,阐述了软件架构师如何管理和优化现有体系结构,转换它们以解决新问题,并构建可重用的体系结构,使之成为战略业务资产。更新了移动,云,能源管理,DevOps,量子计算等新内容<br><br>
目录
第一部分 入门介绍<br/>第1章 什么是软件架构 1<br/>1.1 什么是软件架构,什么不是软件架构 2<br/>1.2 架构结构与视图 5<br/>1.3 什么是“好的”架构 19<br/>1.4 总结 21<br/>1.5 进一步阅读 21<br/>1.6 问题讨论 22<br/>第2章 软件架构的重要性 25<br/>2.1 抑制或支持系统的质量属性 26<br/>2.2 关于变更的推理和管理 27<br/>2.3 预测系统质量 28<br/>2.4 利益相关者之间的沟通 28<br/>2.5 早期设计决策 31<br/>2.6 实现约束 31<br/>2.7 对组织结构的影响 32<br/>2.8 赋能增量开发 33<br/>2.9 成本和进度估算 33<br/>2.10 可转移、可重用模型 34<br/>2.11 架构允许合并独立开发的元素 34<br/>2.12 限制设计方案的术语 35<br/>2.13 培训的基础 36<br/>2.14 总结 36<br/>2.15 进一步阅读 37<br/>2.16 问题讨论 37<br/>第二部分 质量属性<br/>第3章 理解质量属性 39<br/>3.1 功能性 40<br/>3.2 质量属性注意事项 41<br/>3.3 明确质量属性需求:质量属性场景 42<br/>3.4 通过架构模式和战术实现质量属性 45<br/>3.5 用战术设计 46<br/>3.6 分析质量属性的设计决策:基于战术的调查问卷 48<br/>3.7 总结 49<br/>3.8 进一步阅读 49<br/>3.9 问题讨论 50<br/>第4章 可用性 51<br/>4.1 可用性通用场景 53<br/>4.2 可用性战术 55<br/>4.3 基于战术的可用性调查问卷 62<br/>4.4 可用性模式 66<br/>4.5 进一步阅读 68<br/>4.6 问题讨论 69<br/>第5章 可部署性 71<br/>5.1 持续部署 72<br/>5.2 可部署性 75<br/>5.3 可部署性通用场景 76<br/>5.4 可部署性战术 78<br/>5.5 基于战术的可部署性调查问卷 80<br/>5.6 可部署性模式 81<br/>5.7 进一步阅读 87<br/>5.8 问题讨论 87<br/>第6章 能源效率 89<br/>6.1 能源效率通用场景 90<br/>6.2 能源效率战术 92<br/>6.3 基于战术的能源效率调查问卷 95<br/>6.4 模式 97<br/>6.5 进一步阅读 98<br/>6.6 问题讨论 99<br/>第7章 可集成性 101<br/>7.1 评估架构的可集成性 102<br/>7.2 可集成性通用场景 104<br/>7.3 可集成性战术 105<br/>7.4 基于战术的可集成性调查问卷 110<br/>7.5 模式 112<br/>7.6 进一步阅读 114<br/>7.7 问题讨论 115<br/>第8章 可修改性 117<br/>8.1 可修改性通用场景 120<br/>8.2 可修改性战术 121<br/>8.3 基于战术的可修改性调查问卷 125<br/>8.4 模式 126<br/>8.5 进一步阅读 130<br/>8.6 问题讨论 131<br/>第9章 性能 133<br/>9.1 性能通用场景 134<br/>9.2 性能战术 137<br/>9.3 基于战术的性能调查问卷 145<br/>9.4 性能模式 146<br/>9.5 进一步阅读 149<br/>9.6 问题讨论 150<br/>第10章 安全性 151<br/>10.1 安全性通用场景 154<br/>10.2 安全性战术 156<br/>10.3 基于战术的安全性调查问卷 160<br/>10.4 安全性模式 163<br/>10.5 进一步阅读 165<br/>10.6 问题讨论 166<br/>第11章 防护性 169<br/>11.1 防护性通用场景 170<br/>11.2 防护性战术 172<br/>11.3 基于战术的防护性调查问卷 176<br/>11.4 防护性模式 179<br/>11.5 进一步阅读 180<br/>11.6 问题讨论 180<br/>第12章 可测试性 183<br/>12.1 可测试性通用场景 186<br/>12.2 可测试性战术 187<br/>12.3 基于战术的可测试性调查问卷 192<br/>12.4 可测试性模式 192<br/>12.5 进一步阅读 194<br/>12.6 问题讨论 195<br/>第13章 易用性 197<br/>13.1 易用性通用场景 198<br/>13.2 易用性战术 200<br/>13.3 基于战术的易用性调查问卷 202<br/>13.4 易用性模式 203<br/>13.5 进一步阅读 205<br/>13.6 问题讨论 205<br/>第14章 使用其他质量属性 207<br/>14.1 其他质量属性 207<br/>14.2 是否使用标准质量属性清单 209<br/>14.3 处理“X能力”:引入新的QA 212<br/>14.4 进一步阅读 215<br/>14.5 问题讨论 215<br/>第三部分 架构解决方案<br/>第15章 软件接口 217<br/>15.1 接口的概念 218<br/>15.2 设计一个接口 222<br/>15.3 接口文档编制 228<br/>15.4 总结 230<br/>15.5 进一步阅读 230<br/>15.6 问题讨论 231<br/>第16章 虚拟化 233<br/>16.1 共享资源 234<br/>16.2 虚拟机 235<br/>16.3 虚拟机映像 238<br/>16.4 容器 239<br/>16.5 容器和虚拟机 241<br/>16.6 容器可移植性 242<br/>16.7 Pod 242<br/>16.8 无服务器架构 243<br/>16.9 总结 244<br/>16.10 进一步阅读 245<br/>16.11 问题讨论 245<br/>第17章 云和分布式计算 247<br/>17.1 云基础 248<br/>17.2 云中失效 251<br/>17.3 使用多个实例提高性能和可用性 253<br/>17.4 总结 261<br/>17.5 进一步阅读 262<br/>17.6 问题讨论 262<br/>第18章 移动系统 263<br/>18.1 能源 264<br/>18.2 网络连通性 266<br/>18.3 传感器和执行器 267<br/>18.4 资源 268<br/>18.5 生命周期 270<br/>18.6 总结 273<br/>18.7 进一步阅读 274<br/>18.8 问题讨论 275<br/>第四部分 可扩展架构实践<br/>第19章 架构上的重要需求 277<br/>19.1 从需求文档中收集ASR 278<br/>19.2 通过访谈利益相关者收集ASR 279<br/>19.3 通过理解业务目标收集ASR 282<br/>19.4 在工具树中捕获ASR 284<br/>19.5 发生了变化 286<br/>19.6 总结 286<br/>19.7 进一步阅读 287<br/>19.8 问题讨论 287<br/>第20章 设计架构 289<br/>20.1 属性驱动的设计 289<br/>20.2 ADD步骤 292<br/>20.3 ADD步骤4的进一步说明:选择一个或多个设计概念 295<br/>20.4 ADD步骤5的进一步说明:生成结构 298<br/>20.5 ADD步骤6的进一步说明:在设计过程中创建初步文档 301<br/>20.6 ADD步骤7的进一步说明:对当前设计进行分析并审查迭代目标和设计目的实现情况 304<br/>20.7 总结 306<br/>20.8 进一步阅读 306<br/>20.9 问题讨论 307<br/>第21章 架构评估 309<br/>21.1 评估作为一项降低风险的活动 309<br/>21.2 主要的评估活动 310<br/>21.3 谁能执行评估 311<br/>21.4 环境因素 312<br/>21.5 架构权衡分析方法 313<br/>21.6 轻量级架构评估 324<br/>21.7 总结 326<br/>21.8 进一步阅读 327<br/>21.9 问题讨论 327<br/>第22章 记录一个架构 329<br/>22.1 架构文档的用途和受众 330<br/>22.2 符号 331<br/>22.3 视图 332<br/>22.4 合并视图 339<br/>22.5 记录的行为 340<br/>22.6 视图以外 345<b/>22.7 记录基本原理 346<br/>22.8 架构利益相关者 347<br/>22.9 实际问题 350<br/>22.10 总结 353<br/>22.11 进一步阅读 353<br/>22.12 问题讨论 354<br/>第23章 管理架构债 355<br/>23.1 确定是否存在架构债问题 356<br/>23.2 发现热点 358<br/>23.3 示例 362<br/>23.4 自动化 363<br/>23.5 总结 364<br/>23.6 进一步阅读 364<br/>23.7 问题讨论 365<br/>第五部分 架构和组织<br/>第24章 架构师在项目中的角色 367<br/>24.1 架构师和项目经理 367<br/>24.2 增量架构和利益相关者 369<br/>24.3 架构和敏捷开发 370<br/>24.4 架构和分布式开发 373<br/>24.5 总结 376<br/>24.6 进一步阅读 376<br/>24.7 问题讨论 377<br/>第25章 架构能力 379<br/>25.1 个人能力:架构师的职责、技能和知识 379<br/>25.2 软件架构组织的能力 386<br/>25.3 成为更好的架构师 387<br/>25.4 总结 388<br/>25.5 进一步阅读 388<br/>25.6 问题讨论 389<br/>第六部分 结论<br/>第26章 展望未来:量子计算 391<br/>26.1 单量子位 392<br/>26.2 量子隐形传态 394<br/>26.3 量子计算和加密 394<br/>26.4 其他算法 395<br/>26.5 潜在应用 396<br/>26.6 最后的想法 397<br/>26.7 进一步阅读 398<br/>参考资料 399<br/><br/>Contents <br/>PART I INTRODUCTION 1 <br/>CHAPTER 1 What Is Software Architecture? 1 <br/>1.1 What Software Architecture Is and What It Isn’t 2 <br/>1.2 Architectural Structures and Views 5 <br/>1.3 What Makes a “Good” Architecture? 19 <br/>1.4 Summary 21 <br/>1.5 For Further Reading 21 <br/>1.6 Discussion Questions 22 <br/>CHAPTER 2 Why Is Software Architecture Important? 25 <br/>2.1 Inhibiting or Enabling a System’s Quality Attributes 26 <br/>2.2 Reasoning about and Managing Change 27 <br/>2.3 Predicting System Qualities 28 <br/>2.4 Communication among Stakeholders 28 <br/>2.5 Early Design Decisions 31 <br/>2.6 Constraints on Implementation 31 <br/>2.7 Influences on Organizational Structure 32 <br/>2.8 Enabling Incremental Development 33 <br/>2.9 Cost and Schedule Estimates 33 <br/>2.10 Transferable, Reusable Model 34 <br/>2.11 Architecture Allows Incorporation of Independently Developed Elements 34 <br/>2.12 Restricting the Vocabulary of Design Alternatives 35 <br/>2.13 A Basis for Training 36 <br/>2.14 Summary 36 <br/>2.15 For Further Reading 37 <br/>2.16 Discussion Questions 37 <br/>PART II QUALITY ATTRIBUTES 39 <br/>CHAPTER 3 Understanding Quality Attributes 39 <br/>3.1 Functionality 40 <br/>3.2 Quality Attribute Considerations 41 <br/>3.3 Specifying Quality Attribute Requirements: Quality Attribute Scenarios 42 <br/>3.4 Achieving Quality Attributes through Architectural Patterns and Tactics 45 <br/>3.5 Designing with Tactics 46 <br/>3.6 Analyzing Quality Attribute Design Decisions: Tactics-Based Questionnaires 48 <br/>3.7 Summary 49 <br/>3.8 For Further Reading 49 <br/>3.9 Discussion Questions 50 <br/>CHAPTER 4 Availability 51 <br/>4.1 Availability General Scenario 53 <br/>4.2 Tactics for Availability 55 <br/>4.3 Tactics-Based Questionnaire for Availability 62 <br/>4.4 Patterns for Availability 66 <br/>4.5 For Further Reading 68 <br/>4.6 Discussion Questions 69 <br/>CHAPTER 5 Deployability 71 <br/>5.1 Continuous Deployment 72 <br/>5.2 Deployability 75 <br/>5.3 Deployability General Scenario 76 <br/>5.4 Tactics for Deployability 78 <br/>5.5 Tactics-Based Questionnaire for Deployability 80 <br/>5.6 Patterns for Deployability 81 <br/>5.7 For Further Reading 87 <br/>5.8 Discussion Questions 87 <br/>CHAPTER 6 Energy Efficiency 89 <br/>6.1 Energy Efficiency General Scenario 90 <br/>6.2 Tactics for Energy Efficiency 92 <br/>6.3 Tactics-Based Questionnaire for Energy Efficiency 95 <br/>6.4 Patterns 97 <br/>6.5 For Further Reading 98 <br/>6.6 Discussion Questions 99 <br/>CHAPTER 7 Integrability 101 <br/>7.1 Evaluating the Integrability of an Architecture 102 <br/>7.2 General Scenario for Integrability 104 <br/>7.3 Integrability Tactics 105 <br/>7.4 Tactics-Based Questionnaire for Integrability 110 <br/>7.5 Patterns 112 <br/>7.6 For Further Reading 114 <br/>7.7 Discussion Questions 115 <br/>CHAPTER 8 Modifiability 117 <br/>8.1 Modifiability General Scenario 120 <br/>8.2 Tactics for Modifiability 121 <br/>8.3 Tactics-Based Questionnaire for Modifiability 125 <br/>8.4 Patterns 126 <br/>8.5 For Further Reading 130 <br/>8.6 Discussion Questions 131 <br/>CHAPTER 9 Performance 133 <br/>9.1 Performance General Scenario 134 <br/>9.2 Tactics for Performance 137 <br/>9.3 Tactics-Based Questionnaire for Performance 145 <br/>9.4 Patterns for Performance 146 <br/>9.5 For Further Reading 149 <br/>9.6 Discussion Questions 150 <br/>CHAPTER 10 Safety 151 <br/>10.1 Safety General Scenario 154 <br/>10.2 Tactics for Safety 156 <br/>10.3 Tactics-Based Questionnaire for Safety 160 <br/>10.4 Patterns for Safety 163 <br/>10.5 For Further Reading 165 <br/>10.6 Discussion Questions 166 <br/>CHAPTER 11 Security 169 <br/>11.1 Security General Scenario 170 <br/>11.2 Tactics for Security 172 <br/>11.3 Tactics-Based Questionnaire for Security 176 <br/>11.4 Patterns for Security 179 <br/>11.5 For Further Reading 180 <br/>11.6 Discussion Questions 180 <br/>CHAPTER 12 Testability 183 <br/>12.1 Testability General Scenario 186 <br/>12.2 Tactics for Testability 187 <br/>12.3 Tactics-Based Questionnaire for Testability 192 <br/>12.4 Patterns for Testability 192 <br/>12.5 For Further Reading 194 <br/>12.6 Discussion Questions 195 <br/>CHAPTER 13 Usability 197 <br/>13.1 Usability General Scenario 198 <br/>13.2 Tactics for Usability 200 <br/>13.3 Tactics-Based Questionnaire for Usability 202 <br/>13.4 Patterns for Usability 203 <br/>13.5 For Further Reading 205 <br/>13.6 Discussion Questions 205 <br/>CHAPTER 14 Working with Other Quality Attributes 207 <br/>14.1 Other Kinds of Quality Attributes 207 <br/>14.2 Using Standard Lists of Quality Attributes—Or Not 209 <br/>14.3 Dealing with “X-Ability”: Bringing a New QA into the Fold 212 <br/>14.4 For Further Reading 215 <br/>14.5 Discussion Questions 215 <br/>PART III ARCHITECTURAL SOLUTIONS 217 <br/>CHAPTER 15 Software Interfaces 217 <br/>15.1 Interface Concepts 218 <br/>15.2 Designing an Interface 222 <br/>15.3 Documenting the Interface 228 <br/>15.4 Summary 230 <br/>15.5 For Further Reading 230 <br/>15.6 Discussion Questions 231 <br/>CHAPTER 16 Virtualization 233 <br/>16.1 Shared Resources 234 <br/>16.2 Virtual Machines 235 <br/>16.3 VM Images 238 <br/>16.4 Containers 239 <br/>16.5 Containers and VMs 241 <br/>16.6 Container Portability 242 <br/>16.7 Pods 242 <br/>16.8 Serverless Architecture 243 <br/>16.9 Summary 244 <br/>16.10 For Further Reading 245 <br/>16.11 Discussion Questions 245 <br/>CHAPTER 17 The Cloud and Distributed Computing 247 <br/>17.1 Cloud Basics 248 <br/>17.2 Failure in the Cloud 251 <br/>17.3 Using Multiple Instances to Improve Performance and Availability 253 <br/>17.4 Summary 261 <br/>17.5 For Further Reading 262 <br/>17.6 Discussion Questions 262 <br/>CHAPTER 18 Mobile Systems 263 <br/>18.1 Energy 264 <br/>18.2 Network Connectivity 266 <br/>18.3 Sensors and Actuators 267 <br/>18.4 Resources 268 <br/>18.5 Life Cycle 270 <br/>18.6 Summary 273 <br/>18.7 For Further Reading 274 <br/>18.8 Discussion Questions 275 <br/>PART IV SCALABLE ARCHITECTURE PRACTICES 277 <br/>CHAPTER 19 Architecturally Significant Requirements 277 <br/>19.1 Gathering ASRs from Requirements Documents 278 <br/>19.2 Gathering ASRs by Interviewing Stakeholders 279 <br/>19.3 Gathering ASRs by Understanding the Business Goals 282 <br/>19.4 Capturing ASRs in a Utility Tree 284 <br/>19.5 Change Happens 286 <br/>19.6 Summary 286 <br/>19.7 For Further Reading 287 <br/>19.8 Discussion Questions 287 <br/>CHAPTER 20 Designing an Architecture 289 <br/>20.1 Attribute-Driven Design 289 <br/>20.2 The Steps of ADD 292 <br/>20.3 More on ADD Step 4: Choose One or More Design Concepts 295 <br/>20.4 More on ADD Step 5: Producing Structures 298 <br/>20.5 More on ADD Step 6: Creating Preliminary Documentation during the Design 301 <br/>20.6 More on ADD Step 7: Perform Analysis of the Current Design and Review the Iteration Goal and Achievement of the Design Purpose 304 <br/>20.7 Summary 306 <br/>20.8 For Further Reading 306 <br/>20.9 Discussion Questions 307 <br/>CHAPTER 21 Evaluating an Architecture 309 <br/>21.1 Evaluation as a Risk Reduction Activity 309 <br/>21.2 What Are the Key Evaluation Activities? 310 <br/>21.3 Who Can Perform the Evaluation? 311 <br/>21.4 Contextual Factors 312 <br/>21.5 The Architecture Tradeoff Analysis Method 313 <br/>21.6 Lightweight Architecture Evaluation 324 <br/>21.7 Summary 326 <br/>21.8 For Further Reading 327 <br/>21.9 Discussion Questions 327 <br/>CHAPTER 22 Documenting an Architecture 329 <br/>22.1 Uses and Audiences for Architecture Documentation 330 <br/>22.2 Notations 331 <br/>22.3 Views 332 <br/>22.4 Combining Views 339 <br/>22.5 Documenting Behavior 340 <br/>22.6 Beyond Views 345 <br/>22.7 Documenting the Rationale 346 <br/>22.8 Architecture Stakeholders 347 <br/>22.9 Practical Considerations 350 <br/>22.10 Summary 353 <br/>22.11 For Further Reading 353 <br/>22.12 Discussion Questions 354 <br/>CHAPTER 23 Managing Architecture Debt 355 <br/>23.1 Determining Whether You Have an Architecture Debt Problem 356 <br/>23.2 Discovering Hotspots 358 <br/>23.3 Example 362 <br/>23.4 Automation 363 <br/>23.5 Summary 364 <br/>23.6 For Further Reading 364 <br/>23.7 Discussion Questions 365 <br/>PART V ARCHITECTURE AND THE ORGANIZATION 367 <br/>CHAPTER 24 The Role of Architects in Projects 367 <br/>24.1 The Architect and the Project Manager 367 <br/>24.2 Incremental Architecture and Stakeholders 369 <br/>24.3 Architecture and Agile Development 370 <br/>24.4 Architecture and Distributed Development 373 <br/>24.5 Summary 376 <br/>24.6 For Further Reading 376 <br/>24.7 Discussion Questions 377 <br/>CHAPTER 25 Architecture Competence 379 <br/>25.1 Competence of Individuals: Duties, Skills, and Knowledge of Architects 379 <br/>25.2 Competence of a Software Architecture Organization 386 <br/>25.3 Become a Better Architect 387 <br/>25.4 Summary 388 <br/>25.5 For Further Reading 388 <br/>25.6 Discussion Questions 389 <br/>PART VI CONCLUSIONS 391 <br/>CHAPTER 26 A Glimpse of the Future: Quantum Computing 391 <br/>26.1 Single Qubit 392 <br/>26.2 Quantum Teleportation 394 <br/>26.3 Quantum Computing and Encryption 394 <br/>26.4 Other Algorithms 395 <br/>26.5 Potential Applications 396 <br/>26.6 Final Thoughts 397 <br/>26.7 For Further Reading 398 <br/>References 399

蜀ICP备2024047804号

Copyright 版权所有 © jvwen.com 聚文网