暂无商品咨询信息 [发表商品咨询]
在云原生、微服务、AI集成等技术浪潮下,架构设计已成为软件开发的核心竞争力,但许多开发者仍困于“决策无章法”“敏捷与规范难平衡”等难题。《软件架构设计:实用方法及实践(原书第2版)》以经典ADD方法为根基,结合前沿趋势,为架构师提供了一套“从理论到落地”的完整解决方案。
本书三大核心价值:
方法论升级:新增云原生架构、API优先设计、技术债务治理等章节,覆盖部署可观测性、敏捷实践等热点,适配高并发、分布式等复杂场景。
案例驱动:通过“酒店定价系统”“数字孪生平台”两大实战案例,拆解微服务拆分、AI集成等设计思路,提供20+可复用模板。
敏捷赋能:融合DevOps与持续交付,教你用“属性驱动”平衡业务增长与技术演进,避免架构腐化。
本书阐述了如何以一种系统的、可预测的、可重复的、节约成本的方式来设计各类软件架构。书中不仅介绍了一种实用的架构设计方法,还提供了由可重用的设计知识所支撑的结构化方法,也收录了丰富的案例研究,用于展示如何使用这一实用方法。利用现实案例,你将掌握已被验证过的属性驱动设计(ADD)的全新版本,比如伴随功能需求和架构问题出现的可修改性、可用性以及可靠性。Humberto Cervantes和Rick Kazman基于他们丰富的经验,指导你通过各具特色的实用设计来支持完整的软件周期,从需求到维护,再到演化。你将学习如何成功地将设计整合在组织背景中,以及如何使用敏捷方法设计软件系统。
目 录 Contents <br />译者序<br />前 言<br />致 谢<br />关于作者<br />第1章 引言1<br />1.1 动机1<br />1.2 软件架构2<br />1.2.1 软件架构的重要性2<br />1.2.2 生命周期活动3<br />1.3 架构师的角色5<br />1.4 ADD简史6<br />1.5 总结7<br />1.6 扩展阅读7<br />1.7 讨论问题8<br />第2章 架构设计9<br />2.1 通用设计9<br />2.2 软件架构中的设计10<br />2.2.1 架构设计11<br />2.2.2 元素交互设计12<br />2.2.3 元素内部设计12<br />2.2.4 决策和设计级别12<br />2.3 为什么架构设计如此重要13<br />2.4 架构驱动因素14<br />2.4.1 设计目标14<br />2.4.2 质量属性15<br />2.4.3 主要功能20<br />2.4.4 架构关注点21<br />2.4.5 约束条件22<br />2.5 总结22<br />2.6 扩展阅读22<br />2.7 讨论问题23<br />第3章 制定设计决策25<br />3.1 制定设计决策概述25<br />3.2 设计理念:创建软件结构的基石28<br />3.2.1 参考架构29<br />3.2.2 模式30<br />3.2.3 策略30<br />3.2.4 外部开发的组件32<br />3.3 支持性能的设计理念33<br />3.3.1 性能策略33<br />3.3.2 性能模式34<br />3.4 支持可用性的设计理念35<br />3.4.1 可用性策略35<br />3.4.2 可用性模式37<br />3.5 支持可修改性的设计概念39<br />3.5.1 可修改性策略40<br />3.5.2 可修改性模式41<br />3.6 支持安全性的设计理念42<br />3.6.1 安全策略42<br />3.6.2 安全模式44<br />3.7 支持可集成性的设计理念45<br />3.7.1 可集成性策略45<br />3.7.2 集成模式47<br />3.8 总结48<br />3.9 扩展阅读48<br />3.10 讨论问题49<br />第4章 架构设计过程50<br />4.1 对具备原则性的方法的需求50<br />4.2 属性驱动设计3.0版本51<br />4.2.1 步骤1:审查输入51<br />4.2.2 步骤2:通过选择驱动因素<br /> 建立迭代目标52<br />4.2.3 步骤3:选择系统元素进行细化53<br />4.2.4 步骤4:选择满足选定驱动<br /> 因素的设计概念53<br />4.2.5 步骤5:实例化架构元素、分配<br /> 职责并定义接口53<br />4.2.6 步骤6:绘制视图草图并记录<br /> 设计决策54<br />4.2.7 步骤7:执行当前设计分析,<br /> 并审查迭代目标和设计目标<br /> 的实现情况54<br />4.2.8 必要时进行迭代54<br />4.3 在不同的系统环境中应用属性<br /> 驱动设计55<br />4.3.1 面向成熟领域的全新系统设计55<br />4.3.2 面向新兴领域的全新系统设计57<br />4.3.3 面向现有系统的变更设计57<br />4.3.4 替换遗留应用程序的设计58<br />4.4 识别和选择设计概念58<br />4.4.1 设计概念的识别58<br />4.4.2 设计概念的选择59<br />4.5 生成结构61<br />4.5.1 实例化元素62<br />4.5.2 分配功能并识别属性63<br />4.5.3 建立元素间的关系63<br />4.6 定义接口63<br />4.6.1 外部接口63<br />4.6.2 内部接口63<br />4.7 在设计过程中创建初步文档67<br />4.7.1 记录视图草图67<br />4.7.2 记录设计决策69<br />4.8 跟踪设计进度70<br />4.8.1 使用架构待办事项列表70<br />4.8.2 设计看板的使用71<br />4.9 总结72<br />4.10 扩展阅读72<br />4.11 讨论问题73<br />第5章 以API为中心的设计74<br />5.1 业务敏捷性74<br />5.1.1 从项目转向产品75<br />5.1.2 业务敏捷性的驱动因素75<br />5.2 以API为中心的设计关注点76<br />5.2.1 API和可组合性76<br />5.2.2 API优先设计77<br />5.2.3 以API为中心的设计概念82<br />5.2.4 API管理85<br />5.3 以API为中心的设计和ADD87<br />5.3.1 ADD和API规范设计87<br />5.3.2 在以API为中心的设计的其他<br /> 领域使用ADD88<br />5.4 总结89<br />5.5 扩展阅读89<br />5.6 讨论问题90<br />第6章 可部署性设计91<br />6.1 可部署性原则和架构设计91<br />6.1.1 可部署性的定义91<br />6.1.2 持续集成、部署和交付93<br />6.1.3 可部署性设计的探讨94<br />6.2 支持可部署性的设计决策95<br />6.2.1 可部署性策略96<br />6.2.2 可部署性模式97<br />6.3 可部署性和ADD102<br />6.4 总结104<br />6.5 扩展阅读104<br />6.6 讨论问题105<br />第7章 设计基于云的解决方案106<br />7.1 云计算概述106<br />7.1.1 什么是云计算106<br />7.1.2 服务模型107<br />7.1.3 托管资源108<br />7.2 驱动因素和云108<br />7.2.1 质量属性108<br />7.2.2 约束条件109<br />7.3 基于云的设计概念111<br />7.3.1 外部开发组件:云功能111<br />7.3.2 策略114<br />7.3.3 模式115<br />7.4 云解决方案中的ADD117<br />7.5 总结118<br />7.6 扩展阅读118<br />7.7 讨论问题118<br />第8章 案例研究:酒店定价系统120<br />8.1 商业案例120<br />8.2 系统需求121<br />8.2.1 主要功能121<br />8.2.2 质量属性场景122<br />8.2.3 约束条件123<br />8.2.4 架构关注点123<br />8.3 开发和运营需求124<br />8.3.1 质量属性场景124<br />8.3.2 约束条件124<br />8.3.3 架构关注点125<br />8.4 软件设计过程125<br />8.4.1 ADD步骤1:审查输入125<br />8.4.2 迭代1:建立整体系统结构126<br />8.4.3 迭代2:识别支持主要功能的<br /> 结构131<br />8.4.4 迭代3:处理可靠性和可用性<br /> 质量属性142<br />8.4.5 迭代4:满足开发和运维需求146<br />8.5 总结149<br />8.6 扩展阅读150<br />8.7 讨论问题150<br />第9章 案例研究:数字孪生平台151<br />9.1 商业案例151<br />9.2 系统需求152<br />9.2.1 用例模型153<br />9.2.2 质量属性场景153<br />9.2.3 约束条件154<br />9.3 设计过程154<br />9.3.1 ADD步骤1:审查输入154<br />9.3.2 迭代1:参考架构和整体<br /> 系统结构155<br />9.3.3 迭代 2:工业物联网要素的<br /> 细化160<br />9.3.4 迭代3:大数据和AI元素的<br /> 细化166<br />9.4 总结174<br />9.5 扩展阅读175<br />9.6 讨论问题176<br />第10章 架构设计中的技术债务177<br />10.1 技术债务177<br />10.2 设计中技术债务的根源178<br />10.3 重构和重新设计181<br />10.4 技术债务和 ADD182<br />10.5 总结184<br />10.6 扩展阅读184<br />10.7 讨论问题185<br />第11章 设计过程中的分析186<br />11.1 分析和设计186<br />11.2 为什么要进行分析188<br />11.3 分析技术189<br />11.4 基于策略的分析190<br />11.5 反思问题191<br />11.6 基于场景的设计评审192<br />11.7 总结195<br />11.8 扩展阅读195<br />11.9 讨论问题196<br />第12章 组织中的架构设计流程197<br />12.1 架构设计与开发生命周期197<br />12.1.1 支持估算的设计197<br />12.1.2 支持敏捷开发的设计199<br />12.1.3 支持顺序开发的设计202<br />12.1.4 架构设计与测试策略203<br />12.2 架构设计与组织结构204<br />12.2.1 个人设计或团队设计204<br />12.2.2 架构师的多重角色205<br />12.2.3 组织的架构指南207<br />12.2.4 架构团队208<br />12.3 总结209<br />12.4 扩展阅读209<br />12.5 讨论问题210<br />第13章 结束语212<br />13.1 方法的必要性212<br />13.2 未来方向214<br />13.3 下一步214<br />13.4 扩展阅读215<br />13.5 讨论问题215<br />附录 基于策略的问卷调查216
基本信息 | |
---|---|
出版社 | 机械工业出版社 |
ISBN | 9787111780274 |
条码 | 9787111780274 |
编者 | [美]亨伯托·塞万提斯(Humberto Cervantes) [美]里克·卡兹曼(Rick Kazman) 著 |
译者 | |
出版年月 | 2025-07-01 00:00:00.0 |
开本 | 16开 |
装帧 | 平装 |
页数 | 224 |
字数 | 318 |
版次 | 1 |
印次 | 1 |
纸张 | 一般胶版纸 |
暂无商品评论信息 [发表商品评论]
暂无商品咨询信息 [发表商品咨询]