软件工程(八):UML类图的几种关系

依赖(Dependency)

  • 定义:一个类使用到了另一个类(例如作为参数、局部变量等)。
  • 表示虚线箭头,箭头指向被依赖的类。
  • 关键词usesdepends on
  • 示例:类 A 的某个方法使用类 B 作为参数或返回值。
css 复制代码
A -------▷ B
(虚线箭头)

关联(Association)

  • 定义:类与类之间的一种结构关系,表示一个类知道另一个类,通常以成员变量的形式存在。
  • 表示实线连接,可加上箭头表示导航方向。
  • 可选信息:多重性(1、0...1、*)、角色名、可见性。
  • 示例:学生类与班级类之间的关系。
css 复制代码
Student ──────── Class
         1           1..*

聚合(Aggregation)

  • 定义:一种特殊的关联,表示"整体-部分"关系,部分可以独立于整体存在。
  • 表示空心菱形指向整体。
  • 示例:班级聚合多个学生,学生可独立存在。
css 复制代码
Class ◇───────── Student

组合(Composition)

  • 定义:比聚合更强的"整体-部分"关系,部分不能独立存在,生命周期与整体相同。
  • 表示实心菱形指向整体。
  • 示例:人由心脏、肝脏等组成,器官不能脱离人体单独存在。
css 复制代码
Person ◆───────── Heart

继承 / 泛化(Generalization)

  • 定义:子类继承父类的属性和方法,是一种"is-a"关系。
  • 表示空心三角形箭头指向父类。
  • 示例:猫继承自动物。
css 复制代码
Cat ─────────▷ Animal
     (空心三角形)

实现(Realization)

  • 定义:类实现接口,是一种"can do"关系。
  • 表示虚线+空心三角形箭头指向接口。
  • 示例:类实现接口 Runnable。
css 复制代码
MyClass - - -▷ Runnable
(虚线+三角)

总结

关系 表示方式 含义/语义 典型示例
依赖 虚线箭头 临时使用 方法参数、返回值
关联 实线 拥有成员引用 学生与班级
聚合 空心菱形+实线 整体与部分,可独立存在 班级和学生
组合 实心菱形+实线 整体与部分,生命周期一致 人与器官
泛化 实线+空心三角箭头 继承,是一种"是"关系 动物与猫
实现 虚线+空心三角箭头 接口实现 Runnable 与 Thread 类
相关推荐
αSIM0V9 小时前
人机交互期末复习
人机交互·软件工程
韩明君16 小时前
UML在AI中的识别
ai·uml
weixin_5214311216 小时前
需求分析介绍
软件工程
Warren2Lynch17 小时前
解锁 UML 潜力:Visual Paradigm AI 如何革新用例、活动图和顺序图的设计
人工智能·uml
聊询QQ:276998851 天前
永磁同步直线电机(PMLSM)控制器:滑模控制的探索
软件工程
HLJ洛神千羽1 天前
软件工程导论实验报告——酒店管理系统(黑龙江大学)
软件工程
RNA123451 天前
团队 Daily Scrum:2025 年 12 月 10 日(Beta Day 5)
软件工程
Boxsc_midnight2 天前
【规范驱动的开发方式】之【spec-kit】 的安装入门指南
人工智能·python·深度学习·软件工程·设计规范
ones~2 天前
软件工程重点汇总
软件工程
蒟蒻的贤2 天前
软件工程选择题
软件工程