欢迎光临
我们一直在努力

软工导论(三):UML图

UML 详解

本篇整理 UML 中各类图的作用、组成与符号,顺序为: UML 概念→ 用例图 → 类图与对象图 → 交互图 → 行为图 → 包图 → 实现图 → UML图分类总结。


文章目录

  • UML 详解
    • 一、UML 概念
      • 1. UML 是什么
      • 2. 三大组成部分
      • 3. 四种事务
      • 4. 四种连线关系
      • 5. UML 的特点
      • 6. UML 图的分类
    • 二、用例图
      • 1. 定义与组成
      • 2. 用例之间的关系
      • 3. 用例图符号对照表
    • 三、类图与对象图
      • 1. 类图
      • 2. 类之间的关系
      • 3. 六种关系的线型符号
      • 4. 关联数目表示
      • 5. 抽象类与具体类
      • 6. 对象图
    • 四、交互图:顺序图与通信图
      • 1. 概述
      • 2. 顺序图的核心元素
      • 3. 消息类型
      • 4. 通信图
      • 5. 顺序图与通信图的区别
    • 五、行为图:状态图与活动图
      • 1. 状态图
      • 2. 活动图
    • 六、包图
      • 1. 定义
      • 2. 包的表示与依赖
    • 七、实现图:构件图与部署图
      • 1. 构件图
      • 2. 部署图
    • 八、UML 图分类总结

软工导论相关文章可看(持续创作ing): 软工导论(一):基础概念与开发模型 软工导论(二):需求工程 软工导论(三):UML图 软工导论(四):体系结构与设计模式 软工导论(五):软件测试

一、UML 概念

1. UML 是什么

UML(统一建模语言)是一种标准建模语言,不是编程语言,也不是一套图形符号的简单集合:

  • 独立于软件开发过程,可用于软件开发的各个阶段;
  • 是一种语言,语言的使用者可以对其进行扩展;
  • 不局限于系统的分析与设计阶段,全生命周期都能使用。

2. 三大组成部分

UML 体系由三部分组成:基本构造块、规则、公共机制。

在这里插入图片描述

3. 四种事务

UML 中的事务分为四类:

  • 结构事务:系统静态部分,如类、接口、构件、节点。
  • 行为事务:系统动态部分,如交互、状态机。
  • 分组事务:把模型元素分组,如包。
  • 注释事务:对模型元素的解释说明,如注解(便签)。
  • 在这里插入图片描述

    4. 四种连线关系

    关系符号
    关联 实线
    依赖 虚线 + 实心箭头
    泛化(继承) 实线 + 空心三角箭头
    实现 虚线 + 空心三角箭头

    在这里插入图片描述

    5. UML 的特点

    • UML 的模型图分为静态模型图(用例图、类图等)和动态模型图(活动图、顺序图、状态图、协作图等);
    • 支持从需求到实现的完整建模过程。

    在这里插入图片描述

    6. UML 图的分类

    UML 图按用途分为五大类:

  • 用例图:从用户角度描述系统功能。
  • 静态图:描述系统的静态结构,包括类图、对象图、包图。
  • 行为图:描述系统的动态行为,包括活动图、状态图。
  • 交互图:描述对象间的交互,包括顺序图、通信图(协作图)。
  • 实现图:描述系统的物理实现,包括组件图、部署图。
  • 在这里插入图片描述


    二、用例图

    1. 定义与组成

    用例图从用户角度描述系统的功能,由四类元素组成:

    • 系统边界:矩形框,系统名称位于顶部(可有可无)。
    • 参与者(Actor):与系统交互的外部用户,用火柴人表示。
    • 用例(Use Case):系统提供的一项功能,用椭圆形表示。
    • 注释(Note):对元素的补充说明,用便签表示。

    2. 用例之间的关系

    用例之间只有三种关系:包含、扩展、泛化(关联不是用例之间的关系)。

    关系符号说明
    包含 include 带箭头虚线,箭头指向被包含用例 基用例必须调用被包含用例
    扩展 extend 带箭头虚线,箭头指向基础用例 扩展用例是可选的附加行为
    泛化 带空心箭头实线,箭头指向父用例 子用例继承父用例(少见但合法)

    参与者与用例之间用实线关联;参与者与参与者之间用泛化(继承)表示,如"管理员、普通用户都继承用户"。 在这里插入图片描述 在这里插入图片描述

    3. 用例图符号对照表

    在这里插入图片描述


    三、类图与对象图

    1. 类图

    类图描述系统中类的静态结构,包括类的属性、操作以及类之间的关系,是使用最广泛的 UML 图。

    2. 类之间的关系

    类关系分两大类:

    • 实现关系:接口与类之间。
    • 对象与对象之间:
      • 泛化关系(is-a):继承,空心三角实线;
      • 关联关系:又细分为聚合(has-a,空心菱形)、组合(contains-a,实心菱形)、依赖(use-a,虚线箭头)。

    在这里插入图片描述

    3. 六种关系的线型符号

    关联关系: 在这里插入图片描述 依赖关系:

    在这里插入图片描述

    泛化关系(空心三角实线): 在这里插入图片描述 实现关系(空心三角虚线): 在这里插入图片描述 聚合关系(空心菱形): 在这里插入图片描述 组合关系(实心菱形): 在这里插入图片描述

    4. 关联数目表示

    关联关系的数目用 0…1、0…*、1…1、1…*、* 等表示:

    在这里插入图片描述

    5. 抽象类与具体类

    • 抽象类:继承父类的抽象操作但未提供实现;没有任何直接实例;UML 中用斜体类名表示。
    • 具体类:可以直接实例化的类。注意:有父类并不代表该类就是具体类。

    在这里插入图片描述

    6. 对象图

    对象图描述系统中的多个对象在某一时刻的状态,是类图的实例化快照。对象的表示:矩形框中写对象名(或类名),名字下加下划线。

    在这里插入图片描述


    四、交互图:顺序图与通信图

    1. 概述

    交互图描述一组对象之间消息的传递顺序,主要用于用例图中控制流的建模。

    在这里插入图片描述

    在这里插入图片描述

    2. 顺序图的核心元素

    • 参与者:与系统交互的外部用户。
    • 对象:顺序图横轴上与序列有关的对象,矩形框中写对象名或类名,名字下有下划线。
    • 生命线:纵轴方向的虚线,表示对象在序列中的执行情况(发送和接收消息、对象活动)。
    • 消息符号:从一个对象生命线到另一个对象生命线的箭头,按时间顺序从上到下排列。

    在这里插入图片描述 在这里插入图片描述

    3. 消息类型

    消息类型符号说明
    同步消息 实心箭头 发送后等待接收方处理完毕
    异步消息 开放箭头 发送后不等待,继续执行
    简单消息 普通箭头 不区分同步异步
    自调用 指向自身的箭头 对象调用自己的操作
    创建/销毁 new() / delete() 创建对象、结束对象生命线

    在这里插入图片描述 在这里插入图片描述

    在这里插入图片描述

    4. 通信图

    通信图(协作图)同样描述对象间的交互,但侧重对象之间的协作关系,而不像顺序图那样强调消息的时间顺序。

    在这里插入图片描述

    5. 顺序图与通信图的区别

    • 顺序图:强调消息传递的时间顺序。
    • 通信图:强调对象之间的协作关系(消息编号体现顺序)。

    五、行为图:状态图与活动图

    1. 状态图

    状态图描述一个对象从状态到状态的控制流,用于对系统的动态特性建模。

    • 状态的组成部分包括:名称、转移。
    • 历史状态:用带 H 的小圆圈表示,记录离开前的状态,用于返回时恢复。 历史状态符号
    • 状态图可以有结束状态,也可以没有(状态循环)。

    在这里插入图片描述

    在这里插入图片描述

    2. 活动图

    活动图描述业务实现用例的工作流程,常用于业务流程建模。

    • 分叉 / 汇合:用粗横线表示并发分支的拆分与合并。

    在这里插入图片描述

    • 泳道:按参与者划分活动区域,标明每个活动由谁负责。

    在这里插入图片描述

    • 对象流:动作 / 活动状态与对象之间的依赖关系,表示动作使用对象或动作对对象的影响。 对象流中的对象表示对象在过程中的一种状态,如"订单[未付款] → 支付 → 订单[已付款]"。 在这里插入图片描述

    在这里插入图片描述


    六、包图

    1. 定义

    包图描述系统的体系层次结构,把模型元素按逻辑分组组织。系统需求分析阶段产生的包图描述了系统的体系层次结构。

    在这里插入图片描述

    2. 包的表示与依赖

    • 包用文件夹形状表示。
    • 包之间的依赖关系用虚线箭头表示,常见的是 <<use>> 依赖。

    在这里插入图片描述在这里插入图片描述 在这里插入图片描述


    七、实现图:构件图与部署图

    1. 构件图

    构件图(Component Diagram)描述系统的静态实现视图,支持系统构件的配置管理,通常从四方面建模:

  • 对源代码建模
  • 对可执行体的发布建模
  • 对物理数据库建模
  • 对自适应的系统建模 在这里插入图片描述
  • 在这里插入图片描述

    2. 部署图

    部署图定义系统中软硬件的物理体系结构,描述节点(硬件设备)及节点上部署的构件。

    • 节点:立方体图形,表示硬件设备或运行环境;
    • 节点之间用连接线表示通信(如 TCP/IP)。 在这里插入图片描述 在这里插入图片描述

    八、UML 图分类总结

    在这里插入图片描述

    UML 图按结构/行为可分为两大类:

    结构行为图(描述系统静态结构):

    • 类图:描述系统中类的静态结构
    • 对象图:系统中多个对象在某一时刻的状态
    • 组件图:描述系统的静态实现视图
    • 部署图:定义系统中软硬件的物理体系结构
    • 用例图:从用户角度描述系统功能

    动态行为图(描述系统动态行为):

    • 序列图:对象之间的动态合作关系,强调消息发送的顺序
    • 协作图:描述对象之间的协作关系
    • 状态图:描述状态到状态的控制流
    • 活动图:描述业务实现用例的工作流程
    赞(0)
    未经允许不得转载:171主机测评 » 软工导论(三):UML图
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址