上海艾纵企业管理咨询有限公司 - 课程体系 - 专题课程 - 软件开发技术专题


您好!欢迎来到上海艾纵企业管理咨询有限公司!

加入收藏

登录注册

400-676-1955

专题课程

软件架构设计过程

我要报名

编辑日期 2018-06-11  阅读次数:1091 次


【课程大纲】

第1天

1. 架构设计文档视图

(1)软件架构的定义

(2)架构师能力模型与能力培养

(3)基于SEI 9种架构评估的方法论

(4)源代码目录结构与设计文档的关系

(5)架构视图、架构文档与架构刘生

(6)动手实践:基于UML模型的文档视图

(7)动手实践:使用UML工具对现有系统进行反向工程

2.“业务战略与IT战略”相得益彰

(1)业务战略关注点{整合资源、创造价值、以满足顾客}

(2)业务领先战略

(3)业务战略源于“业务研究与业务创新”

(4)波特价值链模型与五力模型

(5)企业信息化总体战略思维(软、硬、应用、组织)

(6)业务战略映射IT战略

(7)案例实践:如何分析与解读企业的业务战略

3. 业务架构规划与设计

(1)企业业务流程梳理与分析

(2)业务流程优化与再造(效率、质量、风险与成本)

(3)业务流程组件化

(4)CBM模型-基于矩阵的方式组织“业务组件”

(5)基于CBM模型的热区分析

(6)业务组件集成-SOA与CBM模型

(7)案例实践:基于TOC模型的BPR

4. 应用架构设计

(1)从业务流程中提取业务领域模型

(2)业务领域模型与应用划分

(3)业务组件与业务应用的映射

(4)基于业务流程的业务应用集成

(5)遗留业务应用系统的集成策略

(6)业务变化对应用体系的影响

(7)案例实践:应用集成策略实践

第2天

5. 需求分析与系统分析

(1)需求分析的层次:理解需求、分析需求与挖掘需求

(2)满足上下游的需求:产品需求与开发需求

(3)已知功能需求分析的方法:IDEF0、Use Case、ATDD与BDD

(4)非功能性需求分析的方法:QFD与质量效用树

(5)需求分析的可视化方法:UML需求建模

(6)如何全面、完整、无二义性的描述需求?

(7)站在系统工程视角的需求分析

(8)业务功能结构抽象分析

(9)动手实践:业务功能需求深度分析动手实践,评选典型实践成果

(10)案例分析:开源软件ERP5业务抽象设计

6. 架构决策与选型

(1)透视技术平台、框架与类库的内涵

(2)评估技术平台、框架与类库的方法

(3)产品与产品线架构决策的差异性

(4)以往架构决策经验的复用

(5)基于骨架代码的架构决策

(6)基于Delphi法的架构决策

(7)基于SEI的9种架构评估方法论

(8)案例研究:丰田的DFSS-Design For Six Sigma

(9)动手实践:移动应用的架构方案决策实践,评选典型实践成果

7. 细化架构与切割

(1)技术切割范式:针对所有业务功能进行技术切割方法论

(2)技术元素的分层组织

(3)技术元素的分包组织

(4)技术元素的相似性与重叠性分析

(5)技术元素的变化性设计

(6)技术元素的性能、可靠、稳定与安全设计

(7)技术元素并行开发与开发管理组织

(8)技术元素难度复杂度与开发者能力关系

(9)动手实践:面向对象与面向方面的技术切割实践,评选典型实践成果

8. 接口设计与解耦

(1)接口设计的基本原则

(2)接口的变化性与稳定性

(3)定义技术元素间相互调用的接口

(4)定义系统外部访问集成的接口

(5)定义框架管理的接口

(6)注入变化观察技术元素的波及面-耦合性分析

(7)技术元素职责单一性与松耦合

(8)案例分析:google的MapReduce的接口设计

(9)动手实践:类库接口设计实践,评选典型实践成果

第3天

9. 数据库结构设计与大数据

(1)数据库设计的基本原则:适度使用范式原则

(2)实现数据库结构的弹性设计8种方案

(3)大数据设计:权衡SQL与NoSQL

(4)数据切割:分库、分区与分布

(5)数据存储文件系统的弹性设计:MySQL与淘宝TFS

(6)数据性能设计方案:对比MemCached、OceanBase与Spark

(7)数据中的知识与决策

(8)动手实践:分组实现数据库弹性设计,评选典型实践成果

10. 公共组件设计

(1)公共组件结构切割

(2)公共组件接口设计

(3)公共组件的弹性设计

(4)公共组件与功能组件的动态耦合设计

(5)动手实践:Cache组件设计

(6)动手实践:现有系统反向工程的公共组件合理性分析

11. 框架平台设计

(1)UI框架设计

(2)功能逻辑组件集成管理框架设计

(3)数据访问框架设计

(4)数据存储框架设计

(5)案例分析:HADOOP框架剖析

(6)动手实践:现有系统反向工程的自定义框架的合理性分析

 

12. 非功能性设计

(1)各种质量属性设计的战术策略

(2)掌控“相互冲突的质量属性”设计的平衡点

(3)软件变化分析与预测

(4)软件变化设计策略

(5)基于设计模式的变化设计

(6)基于key-value的变化设计

(7)基于逻辑判断的变化设计

(8)高可靠性设计

(9)案例分析:SAP自我维护设计策略分析

(10)动手实践:现有系统反向工程的质量设计的合理性分析

第4天

13. 部署运行维护设计

(1)规划系统开发的配置库结构

(2)规划系统的编译方案

(3)规划系统源代码的版本方案

(4)规划系统物理文件的安装方案

(5)规划系统中各个技术元素部署方案

(6)系统集成构建方案

(7)注入敏捷思想-持续集成构建

(8)案例分析:微软的每日构建

(9)标注软件结构中的“运维点”

(10)制定“运维点”的运行维护策略

(11)软件结构中内置免疫系统

(12)动手实践:产品源代码结构、编译计划、版本计划与部署方案,评选典型实践成果

14. 架构关键点与工程

(1)架构设计与开发效率:简化开发

(2)架构设计指导详细设计与代码编写

(3)注入敏捷的开发实践方法:TDD

(4)融合ITIL与DevOps的架构设计

(5)软件架构与人力组织结构映射

(6)基于“软件工厂”的开发模式

(7)建立企业级知识库

(8)软件动态运行维护规划

(9)动手实践:现有系统反向工程的运维设计的合理性分析

15. 架构模式与设计模式

(1)模式的场景、角色、职责

(2)模式应用误区与风险

(3)设计重构中模式应用

(4)把握模式的使用尺度-过度使用模式与适度使用模式

16. 软件设计模式的应用(Design Patterns)

(1)建筑模式与设计模式

(2)过度使用设计模式的问题

(3)设计模式如何适应变化和封装

(4)GRASP设计原则

(5)关于功能与逻辑的分离

(6)设计模式的组合应用方式

(7)Framework设计中设计模式

(8)结合案例进行分析,应用设计模式之前和应用之后的对比

(9)动手实践:学员依据案例进行设计模式实践