序言

UML意义

  1. 软件需求分析,更流畅且标准化的沟通形式。<br /> 过往也使用过UML类的图,但是没有进行学习过,使用上并不规范,单独和客户或者研发去沟通讲解没有问题,但是大范围的使用的话,不规范的问题就会极大的增加沟通成本,而且一些过往的不规范用法的使用含义自己也容易忘记。

UML的分类

结构型图:类图对象图、构件图、部署图、包图
行为型图:活动图状态机图顺序图(时序图)、通信图、用例图、时序图(时间图)

UML需要的能力

  1. 书面表达能力
  2. 归纳总结能力
  3. “面向对象”的思维能力和抽象能力

UML在需求分析中的助力

UML学习笔记——序言、类图和活动图 - 图2
image.png

image.png类图

什么是类图

image.png
矩形放开,最上为类的名字,中间是属性,下面是操作。
表示一个类时,可只显示雷鸣,也可只显示“类名+属性”或“类名+操作”。
属性和操作前“+”表示为public公共类型,“-”表示private私有类型,“#” 表示protected受保护类型,一般需求分析时全部标位+即可。
冒号后是属性类型,如int、string等,需求分析初始阶段可省略。

类的关系

image.png
image.png

直线关系

表示两个类之间有关联关系
image.png
image.png
线段两侧下方添加数字表示数量对应关系,如1对1,1对多(*表示),区间表示(0..3表示0到3个,注意是两个小数点)
角色关系
image.png
导航关系表示从A可以找到B,例如
image.png
直线可以为做图便利,使用折线表示。

包含关系

image.png
弱包含:聚合—部门不存在时,员工可继续存在,可多对多
强包含:组合—部门不存在时,员工也不存在,不可多对多
*注意绘图时的箭头方向

继承关系

image.png
泛化,学生和讲师都“继承”了员工,具备员工的属性,而且他们也有各自特有的属性。

依赖关系

image.png
A需要B来协助完成某项业务,而并非A离开B不能存在。

递归关系

image.png
自包含,文件夹可以包含文件和子文件夹
image.png

三角关系

image.png
image.png

活动图

行为建模工具,与流程图类似。

活动图实践流程

  1. 明确该流程要达到怎样的业务目的。
  2. 该流程有什么角色参与?哪些是主要角色?
  3. 排除异常情况,画出正常情况下的流程,这就是流程的主干,通常是线性的流程。线性的流程是指一条线从头走到尾的流程,中间没有分支。
  4. 明确流程主干中的活动涉及到的角色。
  5. 逐步增加分支流程,关键的分支流程都应该表达出来,但要注意并不需要画出所有异常情况,必要时通过注释或者文字说明。
  6. 适当控制活动的粒度。
  7. 先画出反映当前情况的流程,再画出优化后的流程。使用泳道可以方便的区分角色,交互多的角色泳道相邻可使图绘制简化。
  8. 对照前后的差异,整理出业务需要调整的地方,与客户确认。
  9. 活动图最适合用来描述企业的本质工作流。在绘制活动图时千万不要去研究活动的细节,活动图所要捕捉的是整体业务流程的“大方向”。有关细节的相关描述应该是在讨论“用例”时才需要捕捉。

活动图语法

开始状态(Initial State)

image.png

结束状态(Final State)

image.png

活动(Activity) 动作(Action)

活动可以再细分为多个子活动或动作
动作不可再细分,一般不需要用到。
image.png

判断(Decision)

image.png

合并(Merge)

image.png

监护(Guard)

判断分支的条件语句

泳道(Swimlane)

image.png
image.png

连接件(Connector)

用于活动图过于庞大时连接多个图表
image.png

对象(Object)

工作产品,文字内容为名词或名词短语。
image.png

活动图范例

image.png