课程大纲
模块 | 内容 | 案例实践与练习 |
综述
从“做项目” 向 “做产品” 转型要点
(适合相关领导 参与学习) | 通过V公司从“做项目”向“做产品”转型过程中遇到的问题及应对措施(真实案例),介绍向产品转型过程中的五大转型要点: 1. 构建产品市场管理和需求管理框架 2. 明确公司资源在产品组合上的分配原则和方法 3. 形成公共产品平台和技术规划体系 4. 选择、建立和优化两类产品的管理流程 5. 建立与产品匹配的产品管理组织结构 架构是其中比较关键的一个要点。 | 客户问题诊断与研讨: 近年来,很多企业的To B/To G项目都遇到了以下问题: 1. 需求方面:同一类项目,不同的客户会提出大量五花八门的定制化需求,定制开发成本高; 2. 开发方面:随着各类定制版本的增多,项目代码迅速膨胀,代码混乱,越来越难维护; 3. 管理方面:销售只管卖,不考虑成本;研发只管开发,不考虑用户;研发和销售脱节; 4. 产品方面:产品缺乏规划,只顾满足用户维护性需求,没有资源和精力考虑产品长远发展; |
第一部分
从需求到设计 实操演练
(适合需求人员 参与学习) | 1. 五维三级需求法应用要点和评审方法 2. 业务级需求评审与业务建模 3. 软件级需求评审与功能建模 4. 非功能需求对架构的影响 5. 质量属性描述与Planguage法表示 6. 架构关注点:关键功能、质量场景、约束条件 | 案例练习:改变传统以功能实现和新技术为驱动的策略,从关键功能、质量属性场景、约束条件等方面选择架构关注点。 沙盘演练实战: Ø 《用户需求分析说明书》评审 Ø 《需求规格说明书》评审 Ø 从架构角度(关键功能、质量属性场景、约束条件)评估软件需求文档 |
第二部分
架构设计思想与原理
(适合设计人员学习) | 1. 什么是架构设计?企业架构、软件架构、系统架构、业务架构、数据架构,等等,这些架构的概念层出不穷,到底有什么区别? 2. 如何根据不同的软件过程(瀑布、敏捷;新建、重构),选择不同的架构模式; 3. 软件架构设计流程规范与应用实践要点 4. 架构设计方法与常见误区 5. 三类架构(企业架构、大型系统、中小型系统)设计的方法、产物要点与最佳实践 6. 架构师的主要职责和发展路径 7. 软件架构文档结构。通过多个项目,分析不同类型系统架构文档包含的内容差异。 | 案例练习:6~8人一组成立项目小组,分别扮演项目经理、需求师、架构师、程序员、测试员等多个角色,体会架构师与各个角色的交互要点。
案例剖析与实战: 软件架构视图案例剖析与实战:逻辑视图、开发视图、部署视图、运行视图、场景视图,数据视图 ,实现视图 如何绘制软件架构视图 ,以及UML建模工具在架构视图的应用 |
第三部分
概要设计 案例剖析与实战演练
| 1. 逻辑架构视图设计边干边学 Ø 大型软件系统的划分子系统原则 Ø 子系统功能模块的分解 2. 物理架构视图设计边干边学 3. 运行架构视图设计边干边学 4. 数据视图设计边干边学 5. 非功能需求对架构的影响 6. 架构设计的文档编写与ATAM评审法 | 概要设计文档编写与实践研讨: Ø 软件系统边界和外部系统接口如何定义 Ø 子系统间的通信接口如何设计 Ø 如何应对系统内部紧耦合、高内聚 Ø 软件架构各层的架构策略(针对企业应用分层,每层的架构策略) Ø 数据架构(数据模型/数据分布/数据存取,以及核心数据流) |
第四部分
详细设计 案例剖析与实战演练
| 1. 平台/框架技术的概念与区别 2. 业内常见分布式框架及选择要点 3. 基于单位已有框架的设计和开发 4. 软件通用服务组件的设计与复用管理 5. 详细设计的静态模型——领域模型 (1)领域模型架构策略 (2)领域模型建模(关联,属性) (3)公共数据模型(CDM) 6. 详细设计的动态模型——时序图、状态图 (1) 时序模型架构策略 (2) 子系统、外部系统接口设计 (3) 实体状态的变化与表示 | 案例练习:通过一个中小型项目案例(业务处理类系统),从业内寻找成熟的框架,在框架基础上进行架构设计(重点是详细设计),在全过程演练中体会架构师与各个角色的交互要点,以及架构设计在项目各阶段的目标、工作和产出工件; 沙盘演练实战: Ø 各类业内成熟框架剖析 Ø 产品框架/平台选型实战演练 Ø 案例项目的详细(基础)设计——静态模型、动态模型实战 Ø 领域模型中的常见问题案例剖析 |
第五部分
其他各类系统架构设计案例剖析
| 1. 电商平台架构设计变迁与性能调优思路案例 2. 微服务架构设计模型、流程与方法 3. 数据、服务中台架构设计案例 4. 公共平台框架(从项目向产品转型)架构设计 5. Docker、Android、REST架构剖析 6. 车联网通讯系统架构要点 7. 手机APP应用框架剖析与启示 8. 案例小结与架构模式思维 | 实战演练: Ø 框架的开发过程和开发技术(通用点vs.扩展点) Ø 软件架构通用机制的分析(如何处理基础设施扩展和具体有什么方法做基础设施扩展, 掌握如何分离这些基础设施用例) Ø 学员单位框架设计分析与咨询 |