软件工程(八):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 类
相关推荐
极创信息2 小时前
信创产品认证怎么做?信创产品测试认证的主要流程
java·大数据·数据库·金融·软件工程
早日退休!!!4 小时前
自动微分、数值微分、符号微分对比总结
软件工程
疯狂打码的少年2 天前
UML类图究竟是什么?—— 软件开发中的“建筑蓝图”
uml
张较瘦_2 天前
[论文阅读] AI + 软件工程 | 突破LLM代码生成瓶颈:编程知识图谱(PKG)让检索增强更精准
论文阅读·人工智能·软件工程
肖有米XTKF86462 天前
河北奢源水光商城系统制度开发
人工智能·软件工程·团队开发·csdn开发云
rolt2 天前
[幻灯片]分析设计高阶-02结构(2)-202604更新
ddd·架构师·uml·ooad
肖有米XTKF86462 天前
二二复制裂变小程序系统制度(双轨制公排模式)
人工智能·小程序·软件工程·团队开发
思茂信息3 天前
CST软件如何进行参数化扫描?
运维·开发语言·javascript·windows·ecmascript·软件工程·软件需求
互联网推荐官3 天前
上海物联网应用开发技术路径拆解:从协议选型到平台架构的工程实践
大数据·人工智能·软件工程
极创信息3 天前
信创领域五种主流CPU架构(X86 / ARM / RISC-V / MIPS / LoongArch)
java·arm开发·数据库·spring boot·mysql·软件工程·risc-v