架构师
其他
推荐课程
average > 0 ? $model->average . '分' : '10.0分' ?>

UML系统分析与架构设计实战

K. Kang

开发部总监

北京航空航天大学,硕士。
毕业后即进入北大方正进行软件开发,先后在北大方正技术研究院、方正电子、方正电子政务科技有限公司、方正国际、明博教育科技有限公司工作,担任高级程序员、高级系统分析员、系统架构师、开发部总监等职务;拥有10多项国家发明专利。5年培训经验,主要从事企业IT软件设计培训及咨询。在安博教育等机构任特聘讲师,信产部计算机技术培训中心高级技术顾问,案例丰富,来源于实践,从实际项目出发,擅长用直白的语言说明复杂的原理。
一直在软件的一线工作,在软件设计及编码上有丰富的经验,善于从实际出发,将各种理论上的规范和技巧落地,变成实际项目开发中,易于接受和使用的原则和方式。在其带领过的研发团队中,都以形成了良好的软件风格和高质量的代码而著称。康老师在对系统进行划分、子系统和类设计方面有丰富的经验,善于规划系统职责,在系统分析、架构设计、模块设计,模块职责分配等方面进行合理的划分及平衡有着深厚的功底和丰富的实践经验。
项目经历
具有15年从事IT行业的软件开发、系统架构设计与分析经验,熟悉中国企业的需求,经历过多种文化氛围与组织形态,对大型项目、系统工程管理有着深入的实践与体会。且一直工作在大型软件开发、系统架构设计实际项目的第一线,主持过政府、金税工程、中国军队(总参、总后、二炮)等机构的复杂信息化项目设计,在实际工作中积累了丰富的项目实际经验和系统架构设计分析经验。主持过的项目包括奥运首都机场奥运福娃机器人项目;优课数字化教学应用系统;美国外包项目、国税总局金税工程信息化项目;方正奥思多媒体创作工具;网络雷达数据采集分析系统;分布式电子图书管理系统等。
近期授课经历

先后为IBM、洛基亚(8次)、艾默生、梅特勒.托利多、阿里软件、京东、中国联通、中国电信、用友软件、中石油天然气管道公司、中国移动、恒生电子、西南电信、三五互联、中金在线、浪潮集团、海关总署、中国科学院计算机网络信息中心、中国航天研究院、上海盛大网络、上海证券研究所、上海携程计算机、雅马哈信息系统有限公司、厦门航空、通化钢铁集团、总参、21世纪、南京大汉网络、等近百家企事业单位。

北京航空航天大学,硕士。 毕业后即进入北大方正进行软件开发,先后在北大方正技术研究院、方正电子、方正电子政务科技有限公司、方正国际、明博教育科技有限公司工作,担任高级程序员、高级系统分析员、系统架构师、开发部总监等职务;拥有10多项国家发明专利。5年培训经验,主要从事企业IT软件设计培训及咨询。在安博教育等机构任特聘讲师,信产部计算机技术培训中心高级技术顾问,案例丰富,来源于实践,从实际项目出发,擅长用直白的语言说明复杂的原理。 一直在软件的一线工作,在软件设计及编码上有丰富的经验,善于从实际出发,将各种理论上的规范和技巧落地,变成实际项目开发中,易于接受和使用的原则和方式。在其带领过的研发团队中,都以形成了良好的软件风格和高质量的代码而著称。康老师在对系统进行划分、子系统和类设计方面有丰富的经验,善于规划系统职责,在系统分析、架构设计、模块设计,模块职责分配等方面进行合理的划分及平衡有着深厚的功底和丰富的实践经验。 项目经历 具有15年从事IT行业的软件开发、系统架构设计与分析经验,熟悉中国企业的需求,经历过多种文化氛围与组织形态,对大型项目、系统工程管理有着深入的实践与体会。且一直工作在大型软件开发、系统架构设计实际项目的第一线,主持过政府、金税工程、中国军队(总参、总后、二炮)等机构的复杂信息化项目设计,在实际工作中积累了丰富的项目实际经验和系统架构设计分析经验。主持过的项目包括奥运首都机场奥运福娃机器人项目;优课数字化教学应用系统;美国外包项目、国税总局金税工程信息化项目;方正奥思多媒体创作工具;网络雷达数据采集分析系统;分布式电子图书管理系统等。 近期授课经历 先后为IBM、洛基亚(8次)、艾默生、梅特勒.托利多、阿里软件、京东、中国联通、中国电信、用友软件、中石油天然气管道公司、中国移动、恒生电子、西南电信、三五互联、中金在线、浪潮集团、海关总署、中国科学院计算机网络信息中心、中国航天研究院、上海盛大网络、上海证券研究所、上海携程计算机、雅马哈信息系统有限公司、厦门航空、通化钢铁集团、总参、21世纪、南京大汉网络、等近百家企事业单位。

课程费用

5800.00 /人

课程时长

2

成为教练

课程简介

目前,在软件开发领域,各种框架、模型以及设计模式充斥着整个IT行业,纵观现在的各种软件开发技术培训,我们发现几乎所有的培训中都会出现UML知识的培训。毋庸置疑,UML已经成为了现在的软件开发技术的基础。但是如何透彻理解UML,迅速掌握UML的精髓却是所有技术人员一直以来困惑的地方。

目标收益

1、了解UML的正确应用方法与原理;
2、学员将了解如何把UML应用到面向对象分析和设计乃至整个软件过程中,包括使用UML建立业务模型、需求模型、分析模型、设计模型、实现模型等;
3、重点讲解UML在具体的真实项目中的使用和应用过程指南,如何应用UML处理需求的变更,分析、设计出强壮的架构,建立充分的实现模型。强调具体项目的过程。
4、运用系统分析模式进行本质分析;
5、了解如何设计稳健并易于扩展的架构;
6、通过实际的案例,掌握需求、分析设计的关键技巧;
7、看到好的和差的实际案例,反思自我,提高实际工作能力;
8、深入了解如何解决实际开发问题;
9、理解UM

培训对象

课程大纲

第一单元:
UML概念(一般介绍)
UML的构成
视图、模型元素、图(用例、类、对象、序列、协作、状态、活动、构件、部署)
公共机制(规约、修饰符、扩展机制)

结构模型视图
数据类型、多重性、类、类与对象;关联(自关联、关联的多重性、角色名、关联的具体化);属性和操作。

行为模型视图
序列图(对象生命线、交互的描述、时间约束的表示、条件分支的表示、重复执行的表示、递归调用的表示、对象的创建和撤销)
协作图、状态图、活动图

实现模型视图
包;子系统;模型;构件图
第二单元:
UML中的常见疑难问题辨析
(重点)
用例图
参与者建模中的常见问题。
用例建模中的常见问题。
UaseCase的本质讨论。

类设计
UML中关系的辨析:
依赖关系、关联关系辨析;聚合,组合辨析。

类设计中的常见问题:
一些常见但易混淆的类关系图;
熟悉类的自关联形式
一些易混淆的重数表示方法
建模为对象与建模为属性的辨析
建模为方法与建模为对象的辨析
使用关联类

其它辨析
包与组件。
扩展基类与覆盖基类等。
自关联、关联多重性、关联角色名辨析。
消除多重继承的常用手段。
第三单元:
UML面向对象分析及设计
用GRASP模式指导系统分析
GRASP模式:
信息专家、创建者、高内聚、低耦合、控制者、多态、间接、纯虚构、保护变化
领域模型介绍:
充血模型、贫血模型、失血模型。

面向对象的设计原则
类设计原则
单一职责原则、开-闭原则、里氏代换原则、依赖倒转原则、接口隔离原则
包内聚原则:
发布与复用等价原则、共同封闭原则、共同复用原则
包耦合原则:
无循环的依赖原则、稳定的依赖原则、稳定的抽象

应用UML建模过程
概述,设计模型的内容与演进
全局分析:
选用架构模式;识别关键抽象;标识分析机制;常见的分析机制
局部分析:
提取分析类:
分析类的类型划分:边界类、实体类、控制类,分析类在模型中的位置,边界类的复用,控制类的变通。
分析需求场景:
消息与责任;事件序列在边界、实体及控制类间的原则;控制类在交互图中的表现特征;交互图的正确性。
整理分析类:
分析类的责任和关联关系;动态与静态的关系;确定类的责任;设计类和子系统接口。

工程中常见的架构模式
系统软件:
分层(Layer)
管道和过滤器(Pipes and Filters)
黑板(Blackboard)
分布式软件:
经纪人(Broker)
客户/服务器(Client/Server)
点对点(Peer to Peer)
交互软件:
模型-视图-控制器(Model-View-Controller)
显示-抽象-控制(PAC)

软件设计中常见模式介绍
模板方式模式、适配器模式、工厂方式模式、抽象工厂模式、策略模式、桥接模式、观察者模式、命令模式、装饰模式等。

典型案例分析:
下载系统、投递系统、提交搜索系统。
第四单元:
用UML进行程序设计实践
静态设计:
按层+高内聚低耦合的原则进行模块划分
高内聚原则;按功能分解;按业务进行分解;以数据转换为中心分解;实际运用中的折中。
划分层次
将模块划入对应的层;分层与分区;逻辑模块与实体组件的对应关系。

为模块进行职责分配
隔离关注面:低耦合原则;适当采用设计模式;
用设计模式优化核心结构:经典模式运用:
用桥接模式作为中心骨架。
用桥接模式作为中心骨架。
用工厂模式进行组装。
用命令模式处理事务。

模块结构的常见形式
容器模块 + 控制者 + 功能模块 + 临时构建的小类;单例模式;命令模式。

核心模块的接口设计。
外观模式;适配器模式;代理模式;中介者模式。

其它形式的的模块结构:变换型模块结构;事务型模块结构。
模块间的通信及耦合设计
组件式编程。
通讯机制:
观察者模式;本地SDK;轮训。
解耦:
针对接口编程;增加间接模块;依赖注入。
设计数据层
数据结构选用的设计;数据访问层的设计

动态设计
抽象与统一不同的因素
根据业务寻找关键因素;统一到复杂的情况。
常用的流程抽象手段:
依赖注入 / 控制反转;表格法;配置文件。
逻辑控制:
控制者模式;信息专家模式。
消息通知机制
MVC模式;观察者模式;责任链模式;中介者模式。

模块调整:
调整模块等级。
适当封装;把属性提升为类;将类降为属性;将类提升为组件。
用设计模式优化设计
在主体的框架上进行调整:访问者模式;装饰模式。
编码时构建适当的动态临时类。
命令模式;事务处理类型。
效率的优化
效率与结构的折中:优化效率的3步骤。
第五单元:
建模实践及案例分析
领域分析及建模:数据投递系统
收集需求
技术调研
第一次迭代
需求分析;获取总体包图;分析初步流程;流程细化:修改与调整;子系统选型;获得第一次迭代的:主要用例、主流程图。
第二次迭代
细化/增加需求;关于数据库选型;初步确定一些模块/包;主成功场景(或投递流程);讨论并调整;主用例场景与子用例场景;分层,考虑架构模式;获得细化的协作图、领域分析类图、活动图。
第三次迭代
细化领域分析中的类图;细化子模块、考虑设计模式。

系统设计及重构:数据采集系统:
收集需求
技术调研
需求分析功能性需求分析。
非功能性需求分析。

领域分析与系统初步设计
划分子系统,考虑架构模式。
对子系统分层,画出包图。
对每个子系统、画出领域分析类图。
分析初步流程、画出初步的活动图。

细化设计
细化子系统、划出子系统的包图、主要类图、活动图。
设计模块间的接口。
子系统分层。

细化设计
细化子模块、考虑设计模式。
细化模块间的接口及数据交换格式。
综合性能瓶颈分析,决策改进措施。
细化流程,列出影响因素,借助分析矩阵抽象出统一的流程,画出活动图。

实现
细化类图,指导编码。
得出原型系统。

迭代
根据原型系统,分析不足。
根据原型系统,分析系统的效率瓶颈。
重构及优化架构。
适当前瞻,改进架构。
第六单元:
其它案例分析
典型案例分析
领域分析及建模:POS收款系统
分析及设计:WDL解析系统
分析及设计:XSO文件系统
第一单元:
UML概念(一般介绍)
UML的构成
视图、模型元素、图(用例、类、对象、序列、协作、状态、活动、构件、部署)
公共机制(规约、修饰符、扩展机制)

结构模型视图
数据类型、多重性、类、类与对象;关联(自关联、关联的多重性、角色名、关联的具体化);属性和操作。

行为模型视图
序列图(对象生命线、交互的描述、时间约束的表示、条件分支的表示、重复执行的表示、递归调用的表示、对象的创建和撤销)
协作图、状态图、活动图

实现模型视图
包;子系统;模型;构件图
第二单元:
UML中的常见疑难问题辨析
(重点)
用例图
参与者建模中的常见问题。
用例建模中的常见问题。
UaseCase的本质讨论。

类设计
UML中关系的辨析:
依赖关系、关联关系辨析;聚合,组合辨析。

类设计中的常见问题:
一些常见但易混淆的类关系图;
熟悉类的自关联形式
一些易混淆的重数表示方法
建模为对象与建模为属性的辨析
建模为方法与建模为对象的辨析
使用关联类

其它辨析
包与组件。
扩展基类与覆盖基类等。
自关联、关联多重性、关联角色名辨析。
消除多重继承的常用手段。
第三单元:
UML面向对象分析及设计
用GRASP模式指导系统分析
GRASP模式:
信息专家、创建者、高内聚、低耦合、控制者、多态、间接、纯虚构、保护变化
领域模型介绍:
充血模型、贫血模型、失血模型。

面向对象的设计原则
类设计原则
单一职责原则、开-闭原则、里氏代换原则、依赖倒转原则、接口隔离原则
包内聚原则:
发布与复用等价原则、共同封闭原则、共同复用原则
包耦合原则:
无循环的依赖原则、稳定的依赖原则、稳定的抽象

应用UML建模过程
概述,设计模型的内容与演进
全局分析:
选用架构模式;识别关键抽象;标识分析机制;常见的分析机制
局部分析:
提取分析类:
分析类的类型划分:边界类、实体类、控制类,分析类在模型中的位置,边界类的复用,控制类的变通。
分析需求场景:
消息与责任;事件序列在边界、实体及控制类间的原则;控制类在交互图中的表现特征;交互图的正确性。
整理分析类:
分析类的责任和关联关系;动态与静态的关系;确定类的责任;设计类和子系统接口。

工程中常见的架构模式
系统软件:
分层(Layer)
管道和过滤器(Pipes and Filters)
黑板(Blackboard)
分布式软件:
经纪人(Broker)
客户/服务器(Client/Server)
点对点(Peer to Peer)
交互软件:
模型-视图-控制器(Model-View-Controller)
显示-抽象-控制(PAC)

软件设计中常见模式介绍
模板方式模式、适配器模式、工厂方式模式、抽象工厂模式、策略模式、桥接模式、观察者模式、命令模式、装饰模式等。

典型案例分析:
下载系统、投递系统、提交搜索系统。
第四单元:
用UML进行程序设计实践
静态设计:
按层+高内聚低耦合的原则进行模块划分
高内聚原则;按功能分解;按业务进行分解;以数据转换为中心分解;实际运用中的折中。
划分层次
将模块划入对应的层;分层与分区;逻辑模块与实体组件的对应关系。

为模块进行职责分配
隔离关注面:低耦合原则;适当采用设计模式;
用设计模式优化核心结构:经典模式运用:
用桥接模式作为中心骨架。
用桥接模式作为中心骨架。
用工厂模式进行组装。
用命令模式处理事务。

模块结构的常见形式
容器模块 + 控制者 + 功能模块 + 临时构建的小类;单例模式;命令模式。

核心模块的接口设计。
外观模式;适配器模式;代理模式;中介者模式。

其它形式的的模块结构:变换型模块结构;事务型模块结构。
模块间的通信及耦合设计
组件式编程。
通讯机制:
观察者模式;本地SDK;轮训。
解耦:
针对接口编程;增加间接模块;依赖注入。
设计数据层
数据结构选用的设计;数据访问层的设计

动态设计
抽象与统一不同的因素
根据业务寻找关键因素;统一到复杂的情况。
常用的流程抽象手段:
依赖注入 / 控制反转;表格法;配置文件。
逻辑控制:
控制者模式;信息专家模式。
消息通知机制
MVC模式;观察者模式;责任链模式;中介者模式。

模块调整:
调整模块等级。
适当封装;把属性提升为类;将类降为属性;将类提升为组件。
用设计模式优化设计
在主体的框架上进行调整:访问者模式;装饰模式。
编码时构建适当的动态临时类。
命令模式;事务处理类型。
效率的优化
效率与结构的折中:优化效率的3步骤。
第五单元:
建模实践及案例分析
领域分析及建模:数据投递系统
收集需求
技术调研
第一次迭代
需求分析;获取总体包图;分析初步流程;流程细化:修改与调整;子系统选型;获得第一次迭代的:主要用例、主流程图。
第二次迭代
细化/增加需求;关于数据库选型;初步确定一些模块/包;主成功场景(或投递流程);讨论并调整;主用例场景与子用例场景;分层,考虑架构模式;获得细化的协作图、领域分析类图、活动图。
第三次迭代
细化领域分析中的类图;细化子模块、考虑设计模式。

系统设计及重构:数据采集系统:
收集需求
技术调研
需求分析功能性需求分析。
非功能性需求分析。

领域分析与系统初步设计
划分子系统,考虑架构模式。
对子系统分层,画出包图。
对每个子系统、画出领域分析类图。
分析初步流程、画出初步的活动图。

细化设计
细化子系统、划出子系统的包图、主要类图、活动图。
设计模块间的接口。
子系统分层。

细化设计
细化子模块、考虑设计模式。
细化模块间的接口及数据交换格式。
综合性能瓶颈分析,决策改进措施。
细化流程,列出影响因素,借助分析矩阵抽象出统一的流程,画出活动图。

实现
细化类图,指导编码。
得出原型系统。

迭代
根据原型系统,分析不足。
根据原型系统,分析系统的效率瓶颈。
重构及优化架构。
适当前瞻,改进架构。
第六单元:
其它案例分析
典型案例分析
领域分析及建模:POS收款系统
分析及设计:WDL解析系统
分析及设计:XSO文件系统

活动详情

提交需求