致力于提升研发企业的持续创新能力

结盟众多企业“教练”, 共同设计、开发及提供人才培养解决方案,通过新颖多样的学习方式,针对性的定制化内容,助力企业全面提升竞争优势。

课程分类列表

架构设计技能:胜任力与实战
课程类别:软件架构

架构设计

课程讲师:

温昱

课程周期:

3天

课程费用:

6000元/人

课程简述:

课程目标

架构仅仅是一个系统的草图吗?

绝对不是。

架构的内容不是一两张草图能涵盖的,它涉及结构、接口、数据、技术等方面的重要设计决策,对满足功能、支撑质量、支持团队协同开发起着决定性作用。

本课致力于提高一线设计、开发人员的研发胜任力和实战快捷度。这一目标,沿着架构设计的过程,被分解为六个细化目标,并与15个进阶修炼项对应:

目标细化

技能胜任力

变被动理解需求,为主动分析需求

【1】文档理解力

如何快速分析《需求规格说明书》?

【2】需求大局观

需求=功能+质量+约束。 质量=场景+定量

【3】重点识别力

领域特点、技术难题,往往决定设计走向

高层架构,重在选型合理、长期稳定

【4】架构选型

抓三方面:逻辑分层/物理分布/前后台划分

【5】技术选型

如何做到开发技术、运行环境选型合理

细化架构,是并行开发的基础

【6】静态设计维

模块化的代码模块划分结构设计

【7】动态设计维

如何运用消息循环、多任务等技术,为前端系统、后台系统设计合理的控制结构

设计松耦合、可扩展的接口

【8】前端与后台接口设计

【9】外部集成接口设计

表结构设计好

(信息系统最常见的性能瓶颈)

【10】为功能扩展而设计表结构

【11】为高性能而设计表结构

架构关键点设计好

(能提升开发效率、避免重复返工)

【12】UI层/业务层/数据层,层间接口设计

【13】DAL层设计,缓存及回写设计

【14】外部接口层,如何适配多种外部系统

【15】硬件控制层,如何封装细节?

目标学员

n  各类软件企业的设计人员、初级架构师、资深程序员

n  2年以上开发经验,经历过完整项目开发的程序员

n  希望通过强化架构、设计环节提高研发效率的团队

n  必须使用C/C++、Java或C# 2年以上

课程内容

内容上,紧扣上面“右列”所列的15项“技能修炼”。


形式上,采用案例贯穿方式,讲解、实战、体会与反思三条线索三箭齐发。本课要求每位学员带笔记本电脑、和U盘。随着一个个实际案例的展开,学员们组成的虚拟团队将和老师一起,领命在手、分析权衡、领会方法、实践技巧、验证结果。

学员们践行架构设计之旅的途中,将领略设计思路、设计技巧、设计结果之“美”。不仅如此,大多数“进阶修炼”环节,也有识别设计之“丑”的反例案例分析。

也欢迎学员带着实际问题前来参训!

【模块一】 Big Picture(大局观)

架构设计,如何干?

ü  架构选型阶段:粗线条架构 + 技术选型

ü  架构细化阶段:划分模块 + 定义接口

ü  关键点的详设:……

案例分析

ü  通过PM Suite案例的分析,说明设计节奏

架构设计,何时停呢?

ü  标准一:覆盖了功能 + 应对了质量 + 支持了分头开发

ü  标准二:粗粒度设计要多视角,细粒度设计要少而精

案例分析

ü  案例 PM Suite--示范多视角设计的好处 :子系统、C/S、B/S……

ü  案例 物流系统—示范关键点详设:OLTP、OLAP? ORM、JDBC?

【模块二】 立足设计,分析需求

需求大局观

ü  需求 = 功能 + 质量 + 约束

ü  质量 = 场景 + 定量

ü  功能 = 系统边界 + 系统功能 + 操作流程

文档理解力

ü  《需求规格书》案例

ü  《需求规格书》结构

功能需求 及 变更规律

ü  上下文图 & 功能树&功能框图 & 用例图

ü  系统能力列表 & 用户故事 & 用例规约

ü  功能分解 & 步骤分解 & 情境构想思维

案例分析

ü  案例1:CRM (偏管理)

ü  案例2:音乐下载门户(Web)

ü  案例3:电梯监控(偏控制)

ü  重点1:识别功能变化和进化点

ü  重点2:如何定义质量需求

ü  重点3:识别领域特点、需求重点

实战演练

ü  贯穿案例设计推进……

ü  《需求文档》分析

 分析结束时:

*  了解了领域特点

*  掌握了功能范围

*  识别了重点需求

 注:重点需求影响设计走向

【模块三】 架构选型

架构定型

ü  逻辑分层设计

ü  物理分布设计

ü  前后台划分

ü  角度:层、子系统、物理部署

技术选型

ü  开发技术选型

ü  系统运行环境

ü  思维:技术选型的依据、脉络

案例分析

ü  例子:电力测控系统

ü  例子:医院管理系统

ü  示范三个视角的高层架构

ü  示范开发、运行两类技术选型

实战演练

ü  贯穿案例设计推进……

ü  任务1:架构定型

ü  任务2:技术选型

设计合理性 and 正反例分析 【1】

ü  案例:组织级项目管理系统

ü  重点:对大系统三视角缺一不可

ü  总结à只切功能子系统,问题?

ü  总结àC/S、B/S都不定,问题?

设计合理性 and 正反例分析 【2】

ü  90年代沿用至今的设计方式

ü  总结à和本课方法的对比

ü  总结à加深对方法原理的领悟

 设计产物:

*  逻辑分层

*  物理分布

*  前后台划分

*  技术选型

【模块四】 细化架构

方法要点

ü  代码模块划分【静】

ü  控制结构设计【动】

ü  从动、静两方面设计的好处

案例分析

ü  案例:电力测控后台 + 管理前端

步1à明确前端、后台的开发技术

步2à入口思维,消息、多任务等模式
      及入口代码模块识别

步3à封装思维,提炼五种通用模块

步4à分解思维,分解出功能模块

实战演练

ü  贯穿案例设计推进……

ü  任务1:前端结构设计

ü  任务2:后台结构设计

设计合理性 and 正反例分析

ü  案例:代码模块结构糟糕例

ü  案例:代码模块结构优秀例

ü  总结à合理的源码划分原则

 设计产物:

*  代码模块结构

*  前端控制结构:
从入口点到消息循环

*  后台控制结构:
从入口点到多线程

 【模块五】 设计松耦合、可扩展的接口

接口设计

ü  接口是松耦合的关键

ü  步1à交互机制设计
      同步 or 异步 or 回调……

ü  步2à接口技术选择
      报文 or Remoting or Json等

ü  步3à接口格式定义
      确定操作名、参数格式

案例分析

ü  联通公司,某接口规范分析

实战演练

ü  贯穿案例设计推进……

ü  任务1:前端与后台接口设计

ü  任务2:外部集成接口设计

设计合理性 and 正反例分析 【1】

ü  案例:数据项同步接口设计

ü  重点:提高接口的可扩展性

ü  总结à接口可扩展的技术策略

ü  总结àXML格式 or 带元信息的二进制格式

设计合理性 and 正反例分析 【2】

ü  案例:基于GPS的前端与后台接口设计

ü  重点:提高接口的抽象程度

ü  总结à基于原始信息模型通信?

ü  总结à基于抽象应用模型通信?

 设计产物:

*  前端、后台间接口

*  与外部系统的接口

【模块六】 表结构,为功能、性能与扩展性而设计

表结构设计

ü  Table操作的开销特点

ü  合并法设计Table模型

ü  质疑法设计Table模型

案例分析

ü  例子:有、无索引下的IO开销

ü  例子:SQL引起全表扫描的优化

ü  例子:并发SQL查询的性能表现

实战演练

ü  贯穿案例设计推进……

ü  任务:表结构设计

设计合理性 and 正反例分析 【1】

ü  案例:电商系统Table设计

ü  案例:储蓄系统Table设计

ü  案例:HR管理系统Table设计

ü  重点:表结构影响功能扩展性

ü  总结à从分析功能,到设计Table?

ü  总结à

【模块七】 架构关键点的详细设计

分层架构成功的设计关键点

ü  管理类系统
  界面层-业务层-实体层-数据层

ü  控制类系统
  界面层-控制层-数据层-接口层

ü  后台服务系统
  接口层-调度层-服务层-数据层

关键点的详细设计

ü  UI层/业务层——消息与接口设计

ü  DAL层设计——缓存及回写设计

ü  外部接口层——如何适配多种外部系统

ü  硬件控制层——如何封装细节

ü  案例分析……

实战演练

ü  贯穿案例设计推进……

设计合理性 and 正反例分析 【1】

ü  案例:当ORM遇上报表

ü  案例:大量SQL语句的 IS 系统

ü  重点:常见问题与解决

ü  总结à分层架构的DB访问设计

设计合理性 and 正反例分析 【2】

ü  案例:两级观察者模式应用

ü  案例:内部接口基于XML好吗

ü  案例:轮询 与 回调

ü  重点:常见问题与解决

ü  总结à分层架构的接口设计

 设计产物:

*  架构关键点的设计

收官:

*  形成《架构文档》

 

 

找到所需课程了吗?即刻 填写申请表格 与我们联络吧