软件架构实践伦·巴斯,保罗·克莱门茨,瑞克·凯兹曼 pdf下载pdf下载

软件架构实践伦·巴斯,保罗·克莱门茨,瑞克·凯兹曼百度网盘pdf下载

作者:
简介:本篇提供书籍《软件架构实践伦·巴斯,保罗·克莱门茨,瑞克·凯兹曼》百度网盘pdf下载
出版社:博库网旗舰店
出版时间:2022-02
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

基本信息

  • 商品名称:软件架构实践(英文版·原书第4版)
  • 作者:[美]伦·巴斯(Len Bass),[美]保罗·克莱门茨(Paul Clements),[美]瑞克·凯兹曼(Rick Kazman)
  • 定价:139
  • 出版社:机械工业
  • 书号:9787111699156

其他参考信息(以实物为准)

  • 出版时间:2022-02-01
  • 印刷时间:2022-02-01
  • 版次:1
  • 印次:1
  • 开本:16开
  • 包装:平装
  • 页数:0

内容提要

三位 的软件架构师的新版著作,阐述了软件架构师如何管理和优化现有体系结构,转换它们以解决新问题,并构建可重用的体系结构,使之成为战略业务资产。 新了移动,云,能源管理,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/> 0章 安全性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/> 1章 防护性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/> 2章 可测试性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/> 3章 易用性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/> 4章 使用其他质量属性207<br/>14.1 其他质量属性207<br/>14.2 是否使用标准质量属性清单209<br/>14.3 处理“X能力”:引入新的QA212<br/>14.4 进一步阅读215<br/>14.5 问题讨论215<br/>第三部分 架构解决方案<br/> 5章 软件接口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/> 6章 虚拟化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 Pod242<br/>16.8 无服务器架构243<br/>16.9 总结244<br/>16.10 进一步阅读245<br/>16.11 问题讨论245<br/> 7章 云和分布式计算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/> 8章 移动系统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/> 9章 架构上的重要需求277<br/>19.1 从需求文档中收集ASR278<br/>19.2 通过访谈利益相关者收集ASR279<br/>19.3 通过理解业务目标收集ASR282<br/>19.4 在工具树中捕获ASR284<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