课程简介
本课程的目标在于为敏捷与精益开发环境中的软件架构设计提供指导。正如Martin Fowler在《Is Design Dead?》一文中所描述的,实施敏捷方法的团队很容易陷入对软件架构和软件设计的困惑。但是,有效的软件架构方法不仅能大幅降低设计风险,而且在敏捷环境下更容易发挥其应有的价值。课程讲师在软件架构领域和敏捷软件开发领域工作多年,能够深入软件架构的本质以及敏捷和精益的核心思想,引导学员掌握软件架构设计的基本工具及核心思想,从而做出有效的软件架构设计。
目标收益
通过培训学员可以掌握软件架构的核心思想和基本方法,开始运用敏捷建模方法进行软件架构设计和验证。软件开发团队可以逐步导入架构设计工作坊等开发实践,更好地发挥软件架构在产品开发中的价值。
培训对象
本课程的培训对象是已经使用或拟导入敏捷与精益方法软件团队的技术负责人、架构师和软件开发人员。
课程大纲
软件架构的 本质 |
内容一:常识与谬误:关于软件架构的基本观点 1. 常见的软件架构认知误区 2. 软件架构到底是什么——基本概念解析 3. 软件架构的核心目标 4. 软件架构的涉众分析和关键成功要素 |
软件架构和 敏捷过程 |
内容二:让软件架构在敏捷和精益方法下有效 1. 价值与风险导向的架构设计(WHY) 2. 面向沟通的架构设计与敏捷建模(WHAT) 3. 演进式设计与架构的相对稳定冲突吗?(HOW) 4. 谁是架构师?(WHO) |
架构建模和 视图 |
内容三:模型和视图——架构师的标准语言 1. 模型和视图的关键概念 2. Kruchten 4+1、SEI和Rational 视图集标准 3. 架构建模工具介绍 4. 软件架构逆向工程 5. 练习:为既有设计进行架构描述 |
软件架构设计方法 |
内容四:基于质量属性非功能性需求进行软件架构设计 1. 非功能性需求:架构设计的驱动因素 2. 质量属性场景与效用树 3. 练习:发现关键质量属性 内容五:软件架构模式 4. 风格、模式和框架 5. 深入理解软件架构模式 6. 练习:软件架构模式分析 7. 软件架构模式和质量属性场景 内容六:领域驱动设计和软件架构 8. 领域概念的发现 9. 合理地进行职责分配和接口设计 10. 何时对软件架构进行演进? |
软件架构的验证与评估 |
内容七:架构评估——低成本的软件架构验证方法 1. 敏捷和精益方法下的软件架构验证 2. 基于折中的架构评估方法 3. 构造架构原型 |
软件架构工作坊 |
内容八:有效的组织软件架构设计和实施 1. 为什么需要软件架构工作坊 2. 如何有效组织 3. 练习:软件架构工作坊 4. 优秀软件架构案例剖析 |
软件架构的 本质 内容一:常识与谬误:关于软件架构的基本观点 1. 常见的软件架构认知误区 2. 软件架构到底是什么——基本概念解析 3. 软件架构的核心目标 4. 软件架构的涉众分析和关键成功要素 |
软件架构和 敏捷过程 内容二:让软件架构在敏捷和精益方法下有效 1. 价值与风险导向的架构设计(WHY) 2. 面向沟通的架构设计与敏捷建模(WHAT) 3. 演进式设计与架构的相对稳定冲突吗?(HOW) 4. 谁是架构师?(WHO) |
架构建模和 视图 内容三:模型和视图——架构师的标准语言 1. 模型和视图的关键概念 2. Kruchten 4+1、SEI和Rational 视图集标准 3. 架构建模工具介绍 4. 软件架构逆向工程 5. 练习:为既有设计进行架构描述 |
软件架构设计方法 内容四:基于质量属性非功能性需求进行软件架构设计 1. 非功能性需求:架构设计的驱动因素 2. 质量属性场景与效用树 3. 练习:发现关键质量属性 内容五:软件架构模式 4. 风格、模式和框架 5. 深入理解软件架构模式 6. 练习:软件架构模式分析 7. 软件架构模式和质量属性场景 内容六:领域驱动设计和软件架构 8. 领域概念的发现 9. 合理地进行职责分配和接口设计 10. 何时对软件架构进行演进? |
软件架构的验证与评估 内容七:架构评估——低成本的软件架构验证方法 1. 敏捷和精益方法下的软件架构验证 2. 基于折中的架构评估方法 3. 构造架构原型 |
软件架构工作坊 内容八:有效的组织软件架构设计和实施 1. 为什么需要软件架构工作坊 2. 如何有效组织 3. 练习:软件架构工作坊 4. 优秀软件架构案例剖析 |