Skip to content

UML

统一建模语言(Unified Modeling Language),是一种为面向对象系统的产品进行说明、可视化和编制文档的标准语言

UML使用面向对象设计的建模工具,但独立于任何具体程序设计语言

关系描述

  • 关联:这是一种静态关系,与运行过程的状态无关,在运行前就可以确定

    • 普通箭头实线的表示单向关系箭头指向被拥有者
    • 没有箭头实线的表示双向关系

  • 聚合:整体与部分的关系。不同的生命周期

    • 带空心菱形的实线表示,菱形指向整体箭头指向个体

  • 组合:整体与部分的关系,组合比聚合更加严格相同的生命周期

    • 带实心菱形的实线表示,菱形指向整体箭头指向个体

  • 泛化:表示一个更泛化的元素和一个更具体的元素之间的关系。父类与子类的关系

    • 带三角箭头的实线表示,箭头指向父类

  • 实现:实现类与接口的关系

    • 带三角箭头的虚线表示,箭头指向接口

  • 依赖:如果一个类的改动会影响到另一个类,则两个类之间存在依赖关系,一般而言,依赖是单向的

    • 带普通箭头的虚线表示,箭头指向被依赖者

类图

  • +public
  • -private
  • #protected
  • ~default,可省略
  • 字段和方法返回值的数据类型可省略
  • 抽象类或抽象方法用斜体表示
  • 静态类或静态方法加下划线
  • 如果是接口需要在类名上方加<<Interface>>

类图案例

案例一

案例二《大话设计模式》

时序图

时序图描述对象之间消息的发送顺序,强调时间顺序。时序图是一个二维图,横轴代表对象纵轴表示时间,消息在各对象之间横向传递,依照时间顺序纵向排列。用箭头表示消息、用竖虚线表示对象的生命线

可以直观的描述并发进程

组成元素

  • 角色(Actor):系统角色:人、机器,一般是一个入口

  • 对象(Object):类名

  • 生命线(Lifeline):对象所存在的时间

  • 控制焦点(Focus of Control):激活,当前执行的逻辑

  • 消息(Message):同步消息、异步消息

  • 自关联消息:方法自身调用、一个对象的某个方法调用另一个方法

  • 组合片段

    • Opt 选项:包含一个可能发生或可能不发生的序列,可以在临界中指定序列发生的条件

    • Alt 抉择:包含一个片段列表,这些片段包含备选的消息序列,仅能发生一个序列

    • Par 并行:并行执行

    • Loop 循环:片段重复一定次数

消息

  • 同步消息,需要等待响应:实心箭头实线表示
  • 异步消息,不需要等待响应:带线型箭头实线表示
  • 返回消息,从过程调用返回:带线型箭头虚线表示

时序图案例

下面通过一个小案例加深时序图的理解