用例图中拓展(extend)和包含(include)的区别

本文深入解析了用例图中的两种关键关系:包含(include)与拓展(extend),对比了它们在软件设计中的应用与区别,帮助读者理解如何在系统建模中有效运用这两种关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

定义

拓展(Extend)

扩展关系是扩展用例的泛化关系继续基本用例的行为。扩展用例通过在概念上将附加动作序列插入基本用例序列来实现这一点。这允许扩展用例在基本用例中达到适当的扩展点并且满足扩展条件时继续基本用例的活动序列。当扩展用例活动序列完成时,基本用例继续。
扩展用例通常定义可选的行为,这些行为本身并不一定有意义。

注册用例本身就是完整且有意义的。它可以通过可选的Get Help On Registration用例进行扩展。拓展点为Registration Help。

包含(include)

包含的用例的执行类似于编程中的子程序调用或宏命令。包含用例取决于所包含的用例的添加,这是必需的而非可选的。

用例B从较大的用例A中提取到一个单独的用例中。

用例B和C从较大的用例A中提取到单独的用例中。

用例C是从用例A和B中提取出来的,两个用例都使用UML包含关系重用。

结帐用例包括几个用例 - 扫描项目,计算总额和税金以及付款

区别

用例之间的依赖关系

在拓展关系中,基本用例是不依赖拓展用例来完成自身功能的。
在包含关系中,基本用例必须依赖包含的用例才能完成自身的功能。

基本用例完整性

在拓展关系中,基本用例是完整的;而在包含关系中,基本用例是不完整的,是抽象用例。

通过拓展点区别

拓展关系是具有拓展点的,如果在两个用例之间可以找到一个合理的拓展点,那么可以认为两个用例之间是具有拓展关系的。

通过目的区别

包含关系旨在重用由另一个用例建模的行为,而拓展关系旨在为现有用例添加部分以及为可选系统服务建模。
Include =重用功能
Extends =新功能和/或可选功能

用例关系的比较

在这里插入图片描述

参考:
uml-diagrams.org
Stack Overflow: What’s is the difference between include and extend in use case diagram?
Reuse in Use-Case Models: extend, include, and Inheritance

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值