UML图

UML图是软件设计的重要工具,本文对UML2.5中的图做一个整体介绍,并给出几种常用图的官方示例。

UML图的种类

最新版UML标准为2.5,发布于2015年6月,官网地址:https://www.uml-diagrams.org/

图片来自uml-diagrams.org官网

注意:上图中蓝色标识的图不属于UML官方分类!

UML2.5图分为两大类(7+7),共计14种:

  • 结构图(Structure Diagram):描述系统的静态结构。

    • 类图(Class Diagram):表示类、接口以及其间的协作关系。
    • 对象图(Object Diagram):表示某一时刻一组对象及其间的关系。
    • 包图(Package Diagram):展现由模型分解而成的组织单元及其间的依赖关系。
    • 组合结构图(Composite Structure Diagram):描述一个分类器的内部结构,分类器与其他部分之间的交互端口,展示一组相互协作的实例如何完成特定任务。
    • 组件图(Component Diagram):展示一组构件之间的组织和依赖。
    • 部署图(Deployment Diagram):描述了系统内部的软件如何分布在不同的节点上。
    • 轮廓图(Profile Diagram):轮廓图提供了一种通用的扩展机制,用于为特定域和平台定制UML模型。
  • 行为图(Behavior Diagram):描述系统的动态行为。

    • 用例图(UseCase Diagram):展示参与者、用例及其间关系。
    • 活动图(Activity Diagram):展示了在系统内从一个活动到另一个活动的流程。
    • 状态机图(State Machine Diagram):对一个单独对象的行为建模,指明对象在它的整个生命周期里,响应不同事件时,执行相关事件的顺序。
    • 交互图(Interaction Diagram):对一个系统的动态方面进行建模。
      • 序列图(Sequence Diagram):是场景的图形化表示,描述了以时间顺序组织的对象之间的交互活动。
      • 通信图(Communication Diagram):描述收发消息的对象之间的结构组织。
      • 时序图(Timing Diagram):适合实时和嵌入式系统建模的交互图,描述对象状态随着时间改变的情况。
      • 交互概览图(Interaction Overview Diagram):是活动图的变体,描述业务过程中的控制流概览。

类图

  • 常见类型

    • 领域模型图
    • 实现类图
  • 元素

    • 接口
    • 抽象类
  • 六大关系

    • 泛化(Generalization)
    • 实现(Realization)
    • 依赖(Dependency)
    • 关联(Association)
    • 聚合(Aggregation)
    • 组合(Composition)
  • 示例

图片来自uml-diagrams.org官网

组件图

  • 组成部分
    • 组件
    • 供接口/需接口
    • 端口
    • 关系

图片来自uml-diagrams.org官网

用例图

  • 两类

    • 业务用例图(Business Use Case Diagram)
    • 系统用例图(System Use Case Diagram)
  • 四个要素

    • 参与者
    • 用例
    • 关系
      • 参与者 & 参与者:泛化
      • 参与者 & 用例:关联
      • 用例 & 用例:包含、扩展、泛化
    • 边界
  • 示例

图片来自uml-diagrams.org官网

图片来自uml-diagrams.org官网

状态机图

  • 要素

    • 开始、结束
    • 状态(简单状态、组合状态)
    • 转换(事件和动作)
  • 示例

图片来自uml-diagrams.org官网

活动图

  • 两种使用方式

    • 对工作流建模:常采用泳道将活动图中的活动状态分组
    • 对操作建模
  • 要素

    • 开始点
    • 结束点
    • 活动状态
    • 流程控制
      • 分支:条件分支
      • 合并:重新合并,不需要监护条件
      • 分岔:一个控制流分成多个并发控制流
      • 汇合:多条并发控制流合并

图片来自uml-diagrams.org官网

图片来自uml-diagrams.org官网

序列图

  • 要素
    • 角色
    • 对象和生命线
    • 活动条
    • 消息:消息、异步消息、返回消息
    • 交互框
      • alt:选择片段,if-else
      • opt:可能发生或不发生
      • par:并行
      • loop:重复一定次数
  • 示例

图片来自uml-diagrams.org官网

评论