uml - <extend> UML 中的依赖

标签 uml extend

除了 UML 的上下文,如果 A 扩展 B,则 B 是 A 的子集。

但在 UML 中,情况恰恰相反,如果 A 扩展 B,则 A 是 B 的子集,

为什么这么奇怪?

最佳答案

<<extend>>依赖关系仅用于用例。这意味着一个用例在某些情况下扩展了另一个用例。在以下内容中:

Extends Use Case

客户查看帐户详细信息。在某些情况下,客户也可以将“查看未结订单”作为“查看账户详细信息”的一部分。客户也有可能将“查看历史记录”作为“查看帐户详细信息”的一部分。

这与泛化/特化无关。


<<extend>>在用例图中令人困惑。最小的混淆是用例图不是用例!

用例是文档,而不是图表。例如,上图可能是根据以下用例文本绘制的:

  1. 客户查看帐户详细信息。

扩展:
1a.如果客户点击“打开订单”链接
客户查看未结订单
1b.如果客户点击“查看历史”链接
客户端查看历史

在更详细的模型中,这些“扩展点”将列在图表上的“查看帐户详细信息”用例元素中。但在我看来,这会使图表变得非常困惑。

我第一次真正是通过阅读 Martin Fowler 的“UML Distilled”来学习 UML 的。我刚刚在发布此答案之前检查了那本书,发现福勒建议忽略 <<extend>> .

关于uml - <extend> UML 中的依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1182901/

相关文章:

uml - 如何表示一个包的所有类都实现了一个接口(interface)

node.js - VS Code - 从 node.js 项目生成 UML

java - 存在哪些模式、实践或标准来存储整个图表(或模型)?

xml - 使用 xml 扩展 magento 管理

uml - 序列图 (SD) 和系统序列图 (SSD) 之间的区别?

android - 继承和泛型 java android

class - Grails保存扩展类

javascript - Angularjs 扩展服务和继承

PHP:子类静态继承 - 子类共享静态变量?

java - 在 Java 类中实现的 UML 类图关联