简单来说UML就是结构图,表示对象与类,类与类之间的联系。

UML主要包含以下框图:

  • 用例图 从用户角度描述系统功能,简单来说就是用户让系统干什么(也可以说是系统的输入)
  • 类框图 表示类与类之间的联系
  • 状态转换图 这是针对有不同状态的类。类如开关的开和关就是状态的转换
  • 时序图和协作图 时序图是在时间维度上描述用户的输入和类的使用。协作图则用箭头表示而不是通过时间轴表示

用例图

用例图的要素有

  • 用户 画成一个人型
  • 用例 系统的某一个功能,大多数时候就是某一个函数,用椭圆表示
  • 关系,用箭头表示

也可以用用例文档补充描述。

  • 前置条件,什么时候才可以输入
  • 主事件流,也就是这个用例干了什么事
  • 其它事件流, 比如错误了该干什么事
  • 后置条件 用例必须为真条件(个人理解是什么时候可以输出)

类框图

类框图是表示类与类之间的关系(静态)。这个意思就是这个关系使不变的,做了一个就要去做另一个。

要素: 用一个方框表示类,方框的上面是类名,下面是函数名。用箭头表示方框之间关系。

时序图与协作图

时序图有两个要素,

垂直上表示时间,水平上表示发送消息的过程。(用函数名和箭头表示)

协作图就用一个个箭头表示时间之间关系的。

状态转换图

要素:

  • 初始点 实心圆
  • 状态之间的转换 箭头
  • 状态 用圆点表示
  • 终止点 用一个圆里面再加一个实心圆表示

例:

类之间的关系

  • 关联 一个类和另一个类的实例有联系,例如老师和学生有联系。
  • 依赖 A类访问类B提供的服务。例如A调用B的函数
  • 聚集 A为整体类,B为局部类。A对象有B的对象组合而成(有个体组合成整体)。例如个人和人类。人类类中成员就是个人,人类类还有一些自己专属的方法。或者汽车和零部件。
  • 泛化 A继承B
  • 实现 A实现B的接口

依赖和关联不同。关联是对应实例(也就是定义出来的东西),而关联是定义类是两个类总监有关系