软件工程(八):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 类
相关推荐
workflower10 小时前
敏捷开发项目的需求管理
服务发现·软件工程·需求分析·软件需求·敏捷流程
劳埃德福杰13 小时前
【系统规划与管理师第二版】1.3 新一代信息技术及发展
系统架构·软件工程·设计规范
yz_518 Nemo14 小时前
UML建模
uml
张较瘦_15 小时前
[论文阅读] 人工智能+软件工程 | 用大语言模型架起软件需求形式化的桥梁
论文阅读·人工智能·软件工程
张较瘦_15 小时前
[论文阅读] 人工智能 + 软件工程 | USEagent:迈向统一的AI软件工程师
论文阅读·人工智能·软件工程
workflower16 小时前
在线教育平台敏捷开发项目
软件工程·需求分析·软件需求·敏捷流程
雾江流18 小时前
魔音音乐 5.0.2 | 无损下载 同步网易云歌单UI美观
软件工程
H3C-Navigator2 天前
超融合:系统工程还是软件工程? 从H3C UIS9.0看超融合的技术本质
软件工程
世冠科技3 天前
世冠科技亮相TMC,以国产MBD工具链赋能汽车电控系统开发新未来
汽车·软件工程
寒月6583 天前
模拟设计的软件工程项目
软件工程