软技能之UML图

软技能之UML图

工欲善其事必先利其器,程序员建模过程中需要用到的建模工具UML。

UML:Unified Modeling Language 统一建模语言。目标是以对象图的方式来描述任何类型的系统。

UML可分为两类:结构型(描述某种结构)、行为型(描述某种行为)

  • 结构性的UML有:类图、对象图、构件图、部署图、包图。

  • 行为型的UML有: 活动图、状态机图、顺序图、通信图、用例图、时间图。

软件开发的各个阶段

需求分析阶段:

  • 用例图:由参与者、用例、边界及它们之间的关系构成描述系统功能的视图。

  • 流程图:面向过程,描述处理过程。

概要设计阶段:

  • 类图:模型的静态结构,类之间的关系。

  • 对象图:作为系统在某一个时刻的快照,是类图中的各个类在某一个时刻点上的实例及其关系的静态写照。用于描述某一时刻的一组对象及它们之间的关系。

详细设计阶段:

  • 时序图:描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。

  • 状态图:描述一个实体基于事件反应的动态行为。侧重从行为的结果来描述。

  • 活动图:阐明业务用例的工作流程。侧重从行为的结果来描述,面向对象,着重表现系统行为。

  • 顺序图:将交互关系表示为一个二维图。

  • 通信图:表现对象交互关系的图。

部署阶段:

  • 部署图。

常用的几种图

类图

类图是描述业务概念的一种图。

类之间关系主要分为六种:

  • 继承:子类继承父类。

  • 实现:实现类与接口。

  • 关联:类对象与另一类对象有联系。(组合、聚合也属于关联关系)

  • 依赖:某个类方法使用另一个类对象作为参数。(单向)

  • 组合:类之间整体与部分的关系,整体与部分有一致的生命周期。

  • 聚合:类之间整体与部分的关系,但成员对象可以脱离整体对象独立存在。

各关系从强到弱:继承->实现->组合->聚合->关联->依赖。(DDD中的聚合和UML中的组合关系是一致的)

类图属性表示法:

+ public
- private
# protected
~ default
抽象类或抽象方法用斜体表示
静态类或静态方法加下划线
如果是接口在类上加<<>>

UML图中画一个类使用分割线的矩阵表示:

  • 最上面为类名。

  • 中间为类属性。

  • 下面为类方法。

完整类图例子:

部署图

部署图用来描述系统如何部署,以及系统之间的关系的一种图。

18年画了一张,后面分享出来了。

流程图

流程图:面向过程,描述处理过程的一种图。

常用的基本符号:

  • 开始/结束:表示流程的开始或结束符号。一个流程图只有一个开始,可能有多个结束。

  • 过程:流程中要处理的一个步骤。

  • 数据:表示数据的输入或者输出。

  • 判定:用来表示过程中的一项判定。

  • 文档:表示属于该过程的书面信息。

  • 流向:箭头表示一个过程的流程方向。

本人之前画的ForkjoinPool执行流程图,最左侧ForkJoinWorkerThread#run 其实是由main方法启动后续执行的,为了方便理解,画了两个开始。

 

活动图和流程图对比:

  • 活动图更侧重某一体系中各个对象之间的行为联系,活动顺序。而流程图可以指某一算法的具体实现步骤,侧重处理过程。

  • 活动图可以并发执行,而流程图是依次执行,有时间顺序。

  • 活动图是面向对象的,流程图是面向过程的。

时序图

组成元素:

  1. 角色 Actor:系统角色,可以是人或者其它系统和子系统。

  2. 对象 Object:对象代表时序图中的对象在交互中所扮演的角色。

  3. 生命线 Lifeline:生命线代表时序图中的对象在一段时期内的存在。

  4. 控制焦点 Activation:代表时序图中的对象执行一项操作的时期。

  5. 消息 Message:定义交互和协作中交换信息的类。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值