概述

定义

UML即Unified Model Language,是一种建模语言,也是标准建模语言。在软件开发中,当系统规模比较复杂时,需要用图形抽象地来表达复杂的概念,让整个软件设计更具有可读性,可理解性,以便尽早发现软件设计时存在的潜在问题,从而降低开发风险。同时,也极大地方便了业务人员与开发人员之间的交流。

分类

在面向对象系统分析与设计中
  • 行为图:用来描述事物之间的关系

    • 包括类图、对象图、组件图和部署图
  • 行为图:用来描述参与者和用例之间的交互,或者描述参与者如何使用系统

    • 包括用例图、顺序图、活动图、状态图和通信图
在系统开发中
  • 功能模型:从用户的角度展示系统的功能,包括用例图。
  • 对象模型:采用对象,属性,操作,关联等概念展示系统的结构和基础,包括类别图、对象图。
  • 动态模型:展现系统的内部行为。包括序列图,活动图,状态图。
classDiagram
    direction LR
    class Person {
      +String name
      +int age
      +void greet()
    }
    class Student {
      +int studentId
      +void study()
    }
    Person <|-- Student

用例图(Use Case Diagram)

stateDiagram
    direction LR
    [*] --> Idle
    Idle --> Processing : Start processing
    Processing --> Done : Finish
    Done --> [*]

组件图(Component Diagram)

%% Component diagram demo
graph LR
    Client --> API
    API --> Service
    Service --> Database
    Client --> UI

UML中事物的分类

  • 结构事物:是UML模型中的名词。它们通常是模型的静态部分,描述概念或物理元素
  • 行为事物:是UML模型的动态部分。它们是模型中的动词,描述了跨越时间和空间的行为
  • 分组事物:是UML模型的组仅部分。它们是—些由模型分解成的盒子
  • 注释事物:是UML模型的解释部分。这些注释事物用来描述、说明和标注模型的任何元素

UML中的4种关系

  • 依赖:是两个事物间的语义关系,其中一个事物(独立事物)发生变化会影响另一个事物(依赖事物)的语义
  • 关联:是一种结构关系,描述了一组链,链式对象之间的连接,聚集是一种特殊类型的关联,描述整体与部分间的结构关系
  • 泛化:是一种特殊一般关系,特殊元素的对象可替代一般元素的对象
  • 实现:是类元之间的语义关系,其中一个类元指定了由另一个类元保证执行的契约

UML相关产品或者工具


Reference