架构实战——软件架构设计的过程课件.pptx
架构实战软件架构设计的过程,演讲人,2025-11-11,2020,架构实战软件架构设计的过程演讲人2025-11-1120,01,对本书的赞誉,01对本书的赞誉,对本书的赞誉,附属站点,02,本书是为谁准备的,01,对本书的赞誉附属站点02本书是为谁准备的01,02,1 导言,021 导言,1 导言,01,1.1 流程应用,1.2 流程概述,02,1.3 范围,03,1.4 总结,04,1 导言011.1 流程应用1.2 流程概述021.3 范围,03,2 架构、架构师和架构设计,032 架构、架构师和架构设计,2 架构、架构师和架构设计,D,2.4 架构设计的优点,E,2.5 总结,A,2.1 架构,B,2.2 架构师,C,2.3 架构设计,2 架构、架构师和架构设计D2.4 架构设计的优点E2.5,2.1 架构,2 架构、架构师和架构设计,2.1.2 架构定义行为,2.1.4 架构平衡利益相关者的需要,2.1.6 架构会遵循一种架构风格,2.1.1 架构定义结构,2.1.3 架构关注重要的元素,2.1.5 架构基于合理证据使决策具体化,2.1 架构2 架构、架构师和架构设计2.1.2 架构定义行,2 架构、架构师和架构设计,2.1 架构,01,2.1.7 架构受它的环境影响,02,2.1.8 架构影响开发团队的结构,03,2.1.9 所有系统都存在架构,04,2.1.10 架构有特定的范围,2 架构、架构师和架构设计2.1 架构012.1.7 架构受,2 架构、架构师和架构设计,2.2 架构师,01,2.2.1 架构师是技术领导,02,2.2.2 架构师的角色可能由一个团队来履行,03,2.2.3 架构师理解软件开发流程,04,2.2.4 架构师掌握业务领域的知识,05,2.2.5 架构师掌握技术知识,06,2.2.6 架构师掌握设计技能,2 架构、架构师和架构设计2.2 架构师012.2.1 架构,2 架构、架构师和架构设计,2.2 架构师,01,2.2.7 架构师具备编程技能,03,2.2.9 架构师进行决策,05,2.2.11 架构师是谈判专家,02,2.2.8 架构师是优秀的沟通人员,04,2.2.10 架构师知道组织政策,2 架构、架构师和架构设计2.2 架构师012.2.7 架构,2.3 架构设计,2 架构、架构师和架构设计,A,E,D,F,B,C,2.3.2 架构设计是一门艺术,2.3.3 架构设计跨越很多方面,2.3.5 架构设计受许多利益相关者驱动,2.3.4 架构设计是一个渐进的活动,2.3.6 架构设计经常包括折中,2.3.1 架构设计是一门科学,2.3 架构设计2 架构、架构师和架构设计AEDFBC2.3,2 架构、架构师和架构设计,2.3 架构设计,A,B,2.3.8 架构设计既由上而下也由下而上,2.3.7 架构设计承认经验,2 架构、架构师和架构设计2.3 架构设计AB2.3.8 架,2.4 架构设计的优点,2 架构、架构师和架构设计,2.4.2 架构设计促进达成共识,2.4.4 架构设计促进架构的完整性,2.4.6 架构设计为重用提供基础,2.4.1 架构设计解决系统的质量问题,2.4.3 架构设计支持计划编制流程,2.4.5 架构设计有助于管理复杂性,2.4 架构设计的优点2 架构、架构师和架构设计2.4.2,2 架构、架构师和架构设计,2.4 架构设计的优点,2.4.7 架构设计降低维护成本,2.4.8 架构设计支持影响分析,2 架构、架构师和架构设计2.4 架构设计的优点2.4.7,04,3 方法基本原理,043 方法基本原理,3 方法基本原理,01,3.1 关键概念,3.2 方法内容,02,3.3 流程,03,3.4 总结,04,3 方法基本原理013.1 关键概念3.2 方法内容023.,3 方法基本原理,3.2 方法内容,3.2.1 角色,3.2.2 工作产品,3.2.3 活动,3.2.4 任务,3 方法基本原理3.2 方法内容3.2.1 角色3.2.2,3 方法基本原理,3.3 流程,3.3.1 瀑布流程,3.3.2 迭代流程,3.3.3 敏捷流程,3 方法基本原理3.3 流程3.3.1 瀑布流程3.3.2,05,4 编写软件架构文档,054 编写软件架构文档,4 编写软件架构文档,01,02,03,04,05,06,4.1 最终的结局,4.2 关键概念,4.3 视点和视图,4.4 模型,4.5 架构描述框架的特征,4.6 一个架构描述框架,4 编写软件架构文档0102030405064.1 最终的结,4 编写软件架构文档,4.8 总结,02,4.7 软件架构文档,01,4 编写软件架构文档4.8 总结024.7 软件架构文档01,4 编写软件架构文档,4.3 视点和视图,1,2,3,4,4.3.1 基础视点,4.3.2 交叉视点,4.3.3 视图及图表,4.3.4 视点及视图的优点,4 编写软件架构文档4.3 视点和视图12344.3.1 基,4 编写软件架构文档,4.4 模型,4.4.1 实现的层级,1,4.4.2 模型的优点,2,4 编写软件架构文档4.4 模型4.4.1 实现的层级14.,4.5 架构描述框架的特征,4 编写软件架构文档,C,B,A,4.5.1 软件架构的4+1视图模型,4.5.2 Zachman框架,4.5.3 Rozanski和Woods框架,4.5 架构描述框架的特征4 编写软件架构文档CBA4.5.,4 编写软件架构文档,4.6 一个架构描述框架,4.6.1 视点,4.6.2 工作产品,4.6.3 实现的层级,4.6.4 视图一致,4 编写软件架构文档4.6 一个架构描述框架4.6.1 视点,06,5 可重用架构资源,065 可重用架构资源,5 可重用架构资源,5.1 架构的来源,5.2 架构资源元模型,5.3 资源类型,5.6 总结,5.5 重用的其他考虑因素,5.4 架构资源的属性,5 可重用架构资源5.1 架构的来源5.2 架构资源元模型5,5 可重用架构资源,5.2 架构资源元模型,5.2.1 开发期资源,1,5.2.2 运行期资源,2,5 可重用架构资源5.2 架构资源元模型5.2.1 开发期资,5 可重用架构资源,5.3 资源类型,5.3.1 参考架构,5.3.2 开发方法,5.3.3 视点目录,5.3.4 架构风格,5.3.5 架构机制,5.3.6 模式,5 可重用架构资源5.3 资源类型5.3.1 参考架构5.3,5.3 资源类型,5 可重用架构资源,5.3.7 参考模型,5.3.8 架构决策,5.3.9 现有的应用程序,5.3.12 组件库/组件,5.3.11 应用框架,5.3.10 封装的应用程序,5.3 资源类型5 可重用架构资源5.3.7 参考模型5.3,07,6 案例介绍,076 案例介绍,6 案例介绍,D,6.4 YourTour的愿景,E,6.5 总结,A,6.1 流程应用,B,6.2 案例研究范围,C,6.3 应用简介,6 案例介绍D6.4 YourTour的愿景E6.5 总结A,6 案例介绍,6.2 案例研究范围,6.2.1 项目团队,1,6.2.2 外部影响因素,2,6 案例介绍6.2 案例研究范围6.2.1 项目团队16.2,6.4 YourTour的愿景,6 案例介绍,D,6.4.4 系统的质量,E,6.4.5 约束,A,6.4.1 问题声明,B,6.4.2 利益相关者,C,6.4.3 系统功能,6.4 YourTour的愿景6 案例介绍D6.4.4 系统,08,7 定义需求,087 定义需求,7 定义需求,01,7.1 关联需求和架构,02,7.2 功能性需求和非功能性需求,03,7.3 编写需求文档的技术,04,7.4 流程应用,05,7.5 理解任务描述,06,7.6 定义需求:活动概览,7 定义需求017.1 关联需求和架构027.2 功能性需求,7 定义需求,7.7 总结,7 定义需求7.7 总结,09,8 创建逻辑架构,098 创建逻辑架构,8 创建逻辑架构,8.4 创建逻辑架构:活动概览,8.3 流程应用,8.2 逻辑架构的价值,8.1 从需求走向解决方案,8.2.1 使逻辑架构最小化8.2.2 把逻辑架构作为一项投资8.2.3 可追溯性的重要性,8.5 总结,8 创建逻辑架构8.4 创建逻辑架构:活动概览8.3 流程应,10,9 创建物理架构,109 创建物理架构,9 创建物理架构,9.2 流程应用,9.4 任务:调查架构资源,9.6 任务:编写架构决策文档,9.1 从逻辑架构到物理架构,9.3 创建物理架构:活动概览,9.5 任务:定义架构概览,9 创建物理架构9.2 流程应用9.4 任务:调查架构资源9,9 创建物理架构,9.12 任务:细化部署元素,9.11 任务:细化功能性元素,9.10 任务:构建架构概念证明,9.9 任务:检验架构,9.8 任务:概述部署元素,9.7 任务:概述功能性元素,9 创建物理架构9.12 任务:细化部署元素9.11 任务:,9 创建物理架构,9.13 任务:确认架构,9.14 任务:更新软件架构文档,9.15 任务:和利益相关者复审架构,9.16 总结,D,C,A,B,9 创建物理架构9.13 任务:确认架构9.14 任务:更新,9 创建物理架构,9.7 任务:概述功能性元素,标题,01,9.7.1 将逻辑功能元素映射到物理功能元素,02,9.7.2 确认物理功能元素,04,9.7.4 适应特定技术的模式,03,9.7.3 采购产品,9 创建物理架构9.7 任务:概述功能性元素标题019.7.,9.8 任务:概述部署元素,9 创建物理架构,9.8.2 确认物理部署元素,9.8.1 映射逻辑部署元素到物理部署元素,9.8.3 采购硬件,9.8 任务:概述部署元素9 创建物理架构9.8.2 确认物,11,10 进阶,1110 进阶,10 进阶,10.1 架构师和项目团队,10.2 架构师和外界影响,10.3 复杂系统的架构设计,10.4 总结,D,C,A,B,10 进阶10.1 架构师和项目团队10.2 架构师和外界影,10.1 架构师和项目团队,10 进阶,01,10.1.1 架构师和需求,02,10.1.2 架构师和开发,03,10.1.3 架构师和测试,04,10.1.4 架构师和项目管理,05,10.1.5 架构师和配置管理,06,10.1.6 架构师和变更管理,10.1 架构师和项目团队10 进阶0110.1.1 架构师,10 进阶,10.1 架构师和项目团队,10.1.7 架构师和开发环境,10.1.8 架构师和业务分析,10 进阶10.1 架构师和项目团队10.1.7 架构师和开,10.2 架构师和外界影响,10 进阶,01,02,03,04,10.2.1 企业架构,10.2.2 设计权威,10.2.3 基础设施提供者,10.2.4 系统维护者,10.2 架构师和外界影响10 进阶0102030410.2,10 进阶,10.3 复杂系统的架构设计,10.3.1 许多独特的功能正在开发,01,10.3.2 许多人员参与开发,02,10.3.3 系统是高度分布式的,03,10.3.4 开发团队是分布式的,04,10.3.5 运行质量非常有挑战性,05,10.3.6 存在系统之系统,06,10 进阶10.3 复杂系统的架构设计10.3.1 许多独特,12,附录A 软件架构元模型,12附录A 软件架构元模型,附录A 软件架构元模型,元模型术语的定义,附录A 软件架构元模型元模型术语的定义,13,附录B 视点目录,13附录B 视点目录,附录B 视点目录,01,利益相关者概述,基础视点,02,交叉视点,03,视图对应,04,附录B 视点目录01利益相关者概述基础视点02交叉视点03视,附录B 视点目录,基础视点,需求视点,01,部署视点,03,功能视点,02,验证视点,04,附录B 视点目录基础视点需求视点01部署视点03功能视点02,交叉视点,附录B 视点目录,应用视点,01,基础结构视点,02,系统管理视点,03,可用性视点,04,性能视点,05,安全视点,06,交叉视点附录B 视点目录应用视点01基础结构视点02系统管理,14,附录C 方法概述,14附录C 方法概述,附录C 方法概述,P4,P3,P2,P1,角色,工作产品,活动,任务,P5,阶段,附录C 方法概述P4P3P2P1角色工作产品活动任务P5阶段,附录C 方法概述,任务,活动:创建逻辑架构,1,3,2,活动:定义需求,活动:创建物理架构,附录C 方法概述任务活动:创建逻辑架构132活动:定义需求活,附录C 方法概述,阶段,1,起始,2,细化,3,构造,4,移交,附录C 方法概述阶段1起始2细化3构造4移交,15,附录D 架构需求检查列表,15附录D 架构需求检查列表,附录D 架构需求检查列表,功能性需求,可用性需求,可靠性需求,性能需求,支持性需求,业务约束架构约束开发约束物理约束,约束,附录D 架构需求检查列表 功能性需求 可用性需求 可靠性需求,16,术语表,16术语表,术语表,术语表,感谢聆听,感谢聆听,