UML建模与架构设计模式培训课

UML建模与架构设计模式培训课
    马上咨询


    康老师  具有(yǒu)15年的从事IT行业的软件开发、系统架构设计分(fēn)析经验

    熟悉中國(guó)企业的需求管理(lǐ),经历过多(duō)种文(wén)化氛围与组织形态,对大型项目、系统工程管理(lǐ)有(yǒu)着深入的实践与體(tǐ)会。最难能(néng)可(kě)贵的是康老师现在一直工作在实际项目的大型软件开发、系统架构设计的一線(xiàn),拥有(yǒu)几十项专利技术。

    康老师在國(guó)内外曾主持过各级政府、教育部、中國(guó)石化、美國(guó)外包项目、國(guó)税总局金税工程、中國(guó)军队(总参)信息化、金融信息化项目、2008年北京奥运会首都机场奥运福娃机器人项目、某分(fēn)布式電(diàn)子图书系统等很(hěn)多(duō)大型复杂信息化项目的架构设计,在实际项目工作中积累了丰富的项目实际工作经验和丰富的系统架构设计分(fēn)析经验。

    主要客户包括:阿里软件、京东、IBM、洛基亚(多(duō)次)、艾默生、梅特勒.托利多(duō)、Autodesk、中國(guó)工商(shāng)、雅马哈、银行、中國(guó)农业银行、國(guó)家开发银行、交通银行、中國(guó)铁通、中國(guó)電(diàn)信、中電(diàn)集团、中石油、中石化、西南電(diàn)信、海关总署、中國(guó)科(kē)學(xué)院计算机网络信息中心、中國(guó)航天研究院、上海盛大网络、上海证券研究所等百余家公司/单位。


    课程一:UML建模及软件设计实战

    课程简介

    课程以实战训练方式让大家迅速理(lǐ)解和掌握如何利用(yòng)UML贯穿于整个软件的OO设计与分(fēn)析。课程没有(yǒu)枯燥的理(lǐ)论,在课程实战练习中,从UML疑难辨析开始一直到软件體(tǐ)系的架构模式与设计模式,透彻了解UML的精髓。

    培训特色

    作為(wèi)一个UML设计的高级课程,如果只拘泥于UML语法,则不免会失去UML的实用(yòng)性。因此如何在掌握了UML基本语法的基础上,将之运用(yòng)到实际的软件设计中,是本课程的一个重点。同时,只介绍理(lǐ)论会使人昏昏欲睡,本课程通过大量或大或小(xiǎo)的实际案例,或讲师介绍、剖析,或學(xué)员动手实践,突出“实战”的效果,是學(xué)员从从中获得真实的技能(néng),并能(néng)运用(yòng)到实际工作的软件设计、建模中。

    目标收益

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

    培训对象
    本课程主要面向开发团队中的设计人员、系统分(fēn)析人员、开发经理(lǐ)、项目经理(lǐ)、产品设计、UE设计人员,以及或有(yǒu)志(zhì)成長(cháng)為(wèi)高级软件设计者的技术人员。
    學(xué)员基础
    课程主要针对软件设计人员、程序员,因此學(xué)员要有(yǒu)一定的软件设计经验,或有(yǒu)一定的编程基础。

    课程大纲

    课程内容

    UML简介

    UML4+1视图的意义

    逻辑视图、开发视图、物(wù)理(lǐ)视图、运行视图、场景视图、数据视图、功能(néng)视图

    UML图概览—应用(yòng)时机、建模方法

    UML在开发过程中得使用(yòng)解析(需求分(fēn)析阶段、系统分(fēn)析阶段、架构设计阶段、详细设计阶段)

    UML建模案例分(fēn)析

    UML建模工具在架构视图的应用(yòng)

    UML模型视图详解

    UML的构成
     视图、模型元素、图(用(yòng)例、类、对象、序列、协作、状态、活动、构件、部署)公共机制(规约、修饰符、扩展机制)

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

    行為(wèi)模型视图
     序列图(对象生命線(xiàn)、交互的描述、时间约束的表示、条件分(fēn)支的表示、重复执行的表示、递归调用(yòng)的表示、对象的创建和撤销)
     协作图、状态图、活动图

    实现模型视图
     包;子系统;模型;构件图

    数据采集系统等介绍

    UML中的常见疑难问题辨析

    用(yòng)例图

    Ÿ参与者建模中的常见问题。

    Ÿ用(yòng)例建模中的常见问题。

    ŸUaseCase的本质讨论。

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

    类设计中的常见问题:

    Ÿ一些常见但易混淆的类关系图

    Ÿ熟悉类的自关联形式

    Ÿ一些易混淆的重数表示方法

    Ÿ建模為(wèi)对象、属性、方法的辨析

    Ÿ使用(yòng)关联类

    其它辨析:包与组件、扩展基类与覆盖基类等、自关联、关联多(duō)重性、关联角色名辨析

    消除多(duō)重继承的常用(yòng)手段

    RUP的UML建模与分(fēn)析

    设计模型的内容与演进。

    全局分(fēn)析:选用(yòng)架构模式;识别关键抽象;标识分(fēn)析机制;常见的分(fēn)析机制

    局部分(fēn)析:提取分(fēn)析类:析类的类型划分(fēn):边界类、实體(tǐ)类、控制类,分(fēn)析类在模型中的位置,边界类的复用(yòng),控制类的变通。

    分(fēn)析需求场景:消息与责任;事件序列在边界、实體(tǐ)及控制类间的原则;控制类在交互图中的表现特征;交互图的正确性。

    整理(lǐ)分(fēn)析类:分(fēn)析类的责任和关联关系;动态与静态的关系;确定类的责任;设计类和子系统接口。

    超市收款系统、图形绘制系统

    软件设计的基本原则及其UML表达

    软件设计中,如何划分(fēn)模块,如何分(fēn)配模块的职责是重要的内容。本节结合多(duō)个案例,讨论

    如何进行架构设计,什么是好的架构,怎么验证架构的合理(lǐ)性。

    如何进行组件(模块化)化设计,在架构基础上保证组件及框架的复用(yòng)。


    内容一  模块及组件的职责分(fēn)配设计

    分(fēn)层与分(fēn)區(qū)的考虑

    基于面向对象的组件职责分(fēn)配


    内容二 组件创建及装载设计

    组件创建者的选择原则

    有(yǒu)状态及无状态系统的讨论


    内容三 设计出高内聚低耦合的系统

    不同类型的模块及其复用(yòng)方式

    用(yòng)单一职责原理(lǐ)指导架构设计


    内容四  软件设计中如何有(yǒu)效地组织多(duō)个模块

    设计控制器模块

    控制模块与其它模块的交互

    设计不同类型的模块在系统中的交互机制

    典型案例分(fēn)析:某文(wén)档验证系统设计,阐述对系统的整體(tǐ)把握能(néng)力


    内容五 设计出灵活性及高可(kě)扩展性高的架构

    多(duō)态在组件设计中的使用(yòng)

    间接模式在架构设计中的价值及其使用(yòng)


    内容六 软件设计中的其他(tā)原则

    隔离不同的关注面

    如何封装组件设计中的变化

    组件设计中的开-闭原则

    包内聚原则及其运用(yòng)

    包耦合原则及其运用(yòng)

    UML建模过程

    业務(wù)建模:业務(wù)UseCase图、系统UseCase图、业務(wù)Actor与系统Actor的區(qū)别、Actor建模中得注意事项、UseCase建模中的注意事项

    需求建模:include,extend和泛化。

    领域分(fēn)析:UI类、控制类,实體(tǐ)类、边界类;类间的关系;流程图。

    面向对象设计:划分(fēn)子系统、分(fēn)层、设计类和包

    超市收银系统等

    练习:某系统分(fēn)析及建模

    设计模式及UML表达

    内容一 常见的设计模式及其运用(yòng)

    使用(yòng)GOF设计模式,借鉴前人的经验。

    分(fēn)析创建型模式:单例模式(Singleton)、工厂模式、抽象工厂模式(Abstractfactory)

    分(fēn)析结构型模式:桥梁模式(Bridge)、装饰模式(Decorator)、适配器模式(Adapter)、代理(lǐ)模式(Proxy)、组合模式(Composite)

    分(fēn)析行為(wèi)型模式:命令模式(Command )、观察者模式(Observer)、状态模式(State)、策略模式(Strategy)、模板方法模式(Template Method)、访问者模式(Template Method)

    典型案例分(fēn)析:分(fēn)析薪酬管理(lǐ)等案例,展示设计模式在架构设计中的实际应用(yòng)


    内容二 设计模式的本质探讨

    指出什么是优秀设计和丑陋设计

    总结自己的模式-神似而非型似

    探讨相似模式的本质

    “间接类”模式的推演及演化

    “流程类”模式的推演及演化

    避免模式的误用(yòng),讨论模式的陷阱:在看似典型的场景,但不宜使用(yòng)模式的场合。


    内容三 练习- 通用(yòng)文(wén)件处理(lǐ)器

    简单背景介绍

    使用(yòng)模式的第一反应,及陷入陷阱的思索

    具體(tǐ)场景使用(yòng)模式的本质讨论

    多(duō)态的本质

    讨论并介绍表驱动法

    Template Method、DIP原则Strategy模式的的灵活使用(yòng)——获得优雅的设计

    案例分(fēn)析

    某在線(xiàn)學(xué)习系统的设计及演化


    课程二、UML系统分(fēn)析与架构设计实战

    课程简介

    目前,在软件开发领域,各种框架、模型以及设计模式充斥着整个IT行业,纵观现在的各种软件开发技术培训,我们发现几乎所有(yǒu)的培训中都会出现UML知识的培训。毋庸置疑,UML已经成為(wèi)了现在的软件开发技术的基础。但是如何透彻理(lǐ)解UML,迅速掌握UML的精髓却是所有(yǒu)技术人员一直以来困惑的地方。
    培训特色
    目前,在软件开发领域,各种框架、模型以及设计模式充斥着整个IT行业,纵观现在的各种软件开发技术培训,我们发现几乎所有(yǒu)的培训中都会出现UML知识的培训。毋庸置疑,UML已经成為(wèi)了现在的软件开发技术的基础。但是如何透彻理(lǐ)解UML,迅速掌握UML的精髓却是所有(yǒu)技术人员一直以来困惑的地方。
     本次培训,特别邀请了長(cháng)期从事软件开发的國(guó)内著名架构师,以实战训练方式让大家迅速理(lǐ)解和掌握如何利用(yòng)UML贯穿于整个软件的OO设计与分(fēn)析。课程没有(yǒu)枯燥的理(lǐ)论,在课程实战练习中,从UML疑难辨析开始一直到软件體(tǐ)系的架构模式与设计模式,透彻了解UML的精髓。鉴于此,本中心联合國(guó)内知名IT厂商(shāng),总结了几十个项目案例的经验
    目标收益

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

    课程大纲

    课程纲要

    第一单元: UML概念(一般介绍

    UML的构成
     视图、模型元素、图(用(yòng)例、类、对象、序列、协作、状态、活动、构件、部署)
     公共机制(规约、修饰符、扩展机制)
     
     结构模型视图
     数据类型、多(duō)重性、类、类与对象;关联(自关联、关联的多(duō)重性、角色名、关联的具體(tǐ)化);属性和操作。
     
     行為(wèi)模型视图
     序列图(对象生命線(xiàn)、交互的描述、时间约束的表示、条件分(fēn)支的表示、重复执行的表示、递归调用(yòng)的表示、对象的创建和撤销)
     协作图、状态图、活动图
     
     实现模型视图
     包;子系统;模型;构件图

    第二单元: UML中的常见疑难问题辨析 (重点)

    用(yòng)例图
     参与者建模中的常见问题。
     用(yòng)例建模中的常见问题。
     UaseCase的本质讨论。
     
     类设计
     UML中关系的辨析:
     依赖关系、关联关系辨析;聚合,组合辨析。
     
     类设计中的常见问题:
     一些常见但易混淆的类关系图;
     熟悉类的自关联形式
     一些易混淆的重数表示方法
     建模為(wèi)对象与建模為(wèi)属性的辨析
     建模為(wèi)方法与建模為(wèi)对象的辨析
     使用(yòng)关联类
     
     其它辨析
     包与组件。
     扩展基类与覆盖基类等。
     自关联、关联多(duō)重性、关联角色名辨析。
     消除多(duō)重继承的常用(yòng)手段。

    第三单元: UML面向对象分(fēn)析及设计

    用(yòng)GRASP模式指导系统分(fēn)析
     GRASP模式:
     信息专家、创建者、高内聚、低耦合、控制者、多(duō)态、间接、纯虚构、保护变化
     领域模型介绍:
     充血模型、贫血模型、失血模型。
     
     面向对象的设计原则
     类设计原则
     单一职责原则、开-闭原则、里氏代换原则、依赖倒转原则、接口隔离原则
     包内聚原则:
     发布与复用(yòng)等价原则、共同封闭原则、共同复用(yòng)原则
     包耦合原则:
     无循环的依赖原则、稳定的依赖原则、稳定的抽象
     
     应用(yòng)UML建模过程
     概述,设计模型的内容与演进
     全局分(fēn)析:
     选用(yòng)架构模式;识别关键抽象;标识分(fēn)析机制;常见的分(fēn)析机制
     局部分(fēn)析:
     提取分(fēn)析类:
     分(fēn)析类的类型划分(fēn):边界类、实體(tǐ)类、控制类,分(fēn)析类在模型中的位置,边界类的复用(yòng),控制类的变通。
     分(fēn)析需求场景:
     消息与责任;事件序列在边界、实體(tǐ)及控制类间的原则;控制类在交互图中的表现特征;交互图的正确性。
     整理(lǐ)分(fēn)析类:
     分(fēn)析类的责任和关联关系;动态与静态的关系;确定类的责任;设计类和子系统接口。
     
     工程中常见的架构模式
     系统软件:
     分(fēn)层(Layer)
     管道和过滤器(Pipes and Filters)
     黑板(Blackboard)
     分(fēn)布式软件:
     经纪人(Broker)
     客户/服務(wù)器(Client/Server)
     点对点(Peer to Peer)
     交互软件:
     模型-视图-控制器(Model-View-Controller)
     显示-抽象-控制(PAC)
     
     软件设计中常见模式介绍
     模板方式模式、适配器模式、工厂方式模式、抽象工厂模式、策略模式、桥接模式、观察者模式、命令模式、装饰模式等。
     
     典型案例分(fēn)析:
     下载系统、投递系统、提交搜索系统。

    第四单元: 用(yòng)UML进行程序设计实践

    静态设计:
     按层+高内聚低耦合的原则进行模块划分(fēn)
     高内聚原则;按功能(néng)分(fēn)解;按业務(wù)进行分(fēn)解;以数据转换為(wèi)中心分(fēn)解;实际运用(yòng)中的折中。
     划分(fēn)层次
     将模块划入对应的层;分(fēn)层与分(fēn)區(qū);逻辑模块与实體(tǐ)组件的对应关系。
     
     為(wèi)模块进行职责分(fēn)配
     隔离关注面:低耦合原则;适当采用(yòng)设计模式;
     用(yòng)设计模式优化核心结构:经典模式运用(yòng):
     用(yòng)桥接模式作為(wèi)中心骨架。
     用(yòng)桥接模式作為(wèi)中心骨架。
     用(yòng)工厂模式进行组装。
     用(yòng)命令模式处理(lǐ)事務(wù)。
     
     模块结构的常见形式
     容器模块 + 控制者 + 功能(néng)模块 + 临时构建的小(xiǎo)类;单例模式;命令模式。
     
     核心模块的接口设计。
     外观模式;适配器模式;代理(lǐ)模式;中介者模式。
     
     其它形式的的模块结构:变换型模块结构;事務(wù)型模块结构。
     模块间的通信及耦合设计
     组件式编程。
     通讯机制:
     观察者模式;本地SDK;轮训。
     解耦:
     针对接口编程;增加间接模块;依赖注入。
     设计数据层
     数据结构选用(yòng)的设计;数据访问层的设计
     
     动态设计
     抽象与统一不同的因素
     根据业務(wù)寻找关键因素;统一到复杂的情况。
     常用(yòng)的流程抽象手段:
     依赖注入 / 控制反转;表格法;配置文(wén)件。
     逻辑控制:
     控制者模式;信息专家模式。
     消息通知机制
     MVC模式;观察者模式;责任链模式;中介者模式。
     
     模块调整:
     调整模块等级。
     适当封装;把属性提升為(wèi)类;将类降為(wèi)属性;将类提升為(wèi)组件。
     用(yòng)设计模式优化设计
     在主體(tǐ)的框架上进行调整:访问者模式;装饰模式。
     编码时构建适当的动态临时类。
     命令模式;事務(wù)处理(lǐ)类型。
     效率的优化
     效率与结构的折中:优化效率的3步骤。

    第五单元: 建模实践及案例分(fēn)析

    领域分(fēn)析及建模:数据投递系统
     收集需求
     技术调研
     第一次迭代
     需求分(fēn)析;获取总體(tǐ)包图;分(fēn)析初步流程;流程细化:修改与调整;子系统选型;获得第一次迭代的:主要用(yòng)例、主流程图。
     第二次迭代
     细化/增加需求;关于数据库选型;初步确定一些模块/包;主成功场景(或投递流程);讨论并调整;主用(yòng)例场景与子用(yòng)例场景;分(fēn)层,考虑架构模式;获得细化的协作图、领域分(fēn)析类图、活动图。
     第三次迭代
     细化领域分(fēn)析中的类图;细化子模块、考虑设计模式。
     
     系统设计及重构:数据采集系统:
     收集需求
     技术调研
     需求分(fēn)析功能(néng)性需求分(fēn)析。
     非功能(néng)性需求分(fēn)析。
     
     领域分(fēn)析与系统初步设计
     划分(fēn)子系统,考虑架构模式。
     对子系统分(fēn)层,画出包图。
     对每个子系统、画出领域分(fēn)析类图。
     分(fēn)析初步流程、画出初步的活动图。
     
     细化设计
     细化子系统、划出子系统的包图、主要类图、活动图。
     设计模块间的接口。
     子系统分(fēn)层。
     
     细化设计
     细化子模块、考虑设计模式。
     细化模块间的接口及数据交换格式。
     综合性能(néng)瓶颈分(fēn)析,决策改进措施。
     细化流程,列出影响因素,借助分(fēn)析矩阵抽象出统一的流程,画出活动图。
     
     实现
     细化类图,指导编码。
     得出原型系统。
     
     迭代
     根据原型系统,分(fēn)析不足。
     根据原型系统,分(fēn)析系统的效率瓶颈。
     重构及优化架构。
     适当前瞻,改进架构。

    第六单元: 其它案例分(fēn)析

    典型案例分(fēn)析
     领域分(fēn)析及建模:POS收款系统
     分(fēn)析及设计:WDL解析系统
     分(fēn)析及设计:XSO文(wén)件系统