Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Uml 用例关系_Uml_Use Case - Fatal编程技术网

Uml 用例关系

Uml 用例关系,uml,use-case,Uml,Use Case,两个用例可以同时扩展或包含彼此吗? A扩展/包括B和B扩展/包括A我很确定答案是“不” 您刚刚描述了鸡和蛋问题的数字等价物 循环引用[几乎]总是坏事(tm)。我知道唯一不可怕的地方是在链表的上下文中,其中每个条目都有一个指向另一个自己类型的指针。我很确定答案是“否” 您刚刚描述了鸡和蛋问题的数字等价物 循环引用[几乎]总是坏事(tm)。我知道它唯一不可怕的地方是在一个链表的上下文中,其中每个条目都有一个指向另一个自己类型的指针。似乎不太可能,但我相信如果你足够通用[而且无用]的话,你可以做到这一

两个用例可以同时扩展或包含彼此吗?
A扩展/包括B和B扩展/包括A我很确定答案是“不”

您刚刚描述了鸡和蛋问题的数字等价物


循环引用[几乎]总是坏事(tm)。我知道唯一不可怕的地方是在链表的上下文中,其中每个条目都有一个指向另一个自己类型的指针。

我很确定答案是“否”

您刚刚描述了鸡和蛋问题的数字等价物


循环引用[几乎]总是坏事(tm)。我知道它唯一不可怕的地方是在一个链表的上下文中,其中每个条目都有一个指向另一个自己类型的指针。

似乎不太可能,但我相信如果你足够通用[而且无用]的话,你可以做到这一点。你有具体的例子吗?规则总是有例外的,我很想看看。似乎不太可能,但我相信如果你足够普通[而且毫无用处]的话,你可以做到。你有具体的例子吗?规则总是有例外的,我很想看到例外。

如果(A包括/扩展B,B包括/扩展A),那么A=B

承认如果A扩展/包括B,那么A=B

如果(A包括/扩展B,B包括/扩展A),那么A=B


承认如果A扩展/包括B,那么A=B下面是业务用例(业务建模)的senario,而不是系统用例: 用例A:维修车辆 用例B:授权额外维修 用例C:维修车辆

在初始维修期间,可以确定其他维修。 或者维修可以在维修期间被识别为新的维修, 在这两种情况下,是否都需要客户授权

A扩展B和B扩展C(维修期间确定的授权和维修开始)


C扩展B(维修期间确定的额外维修授权)

以下是senario for business用例(业务建模)而非系统用例: 用例A:维修车辆 用例B:授权额外维修 用例C:维修车辆

在初始维修期间,可以确定其他维修。 或者维修可以在维修期间被识别为新的维修, 在这两种情况下,是否都需要客户授权

A扩展B和B扩展C(维修期间确定的授权和维修开始)


C extend B(维修期间确定的额外维修授权)

这很少见,但在一般情况下,没有任何东西阻止用例相互包含/使用。

这很少见,但在一般情况下,没有任何东西可以阻止用例相互包含/使用。

答案是否定的。扩展和包含是相互排斥的关系类型。最有可能的是用例被错误地分解/分离,或者您误解了扩展/包含关系定义,或者两者都有

鉴于您发布的示例(仅供参考,您最好编辑问题,而不是发布不回答原始问题的答案),我敢说B扩展了A和B扩展了C,因为在这两种情况下,A和C可能会确定额外的维修(案例B)

或者,用例A和C可以有条件地包括用例B

顺便说一下,我会将其建模为车辆上的工作,这是由2个用例组成的,获得客户授权,以及服务车辆,其中后者包括任何类型的服务或维修,并且在开始工作之前需要前者的输出。“额外维修”的概念只是车辆工作的另一个实例

但我不知道完整的业务背景,因此您的里程可能会有所不同;-)


编辑:你写道“但在这种情况下:工作正在进行,在工作过程中需要进一步授权”,但我不明白这到底有什么关系


第一步是消除关于包含和扩展的混淆。尝试对每个用例进行完全独立的建模,然后查看常见的情况,以确定是否需要包含/扩展

答案是否。扩展和包含是相互排斥的关系类型。最有可能的是用例被错误地分解/分离,或者您误解了扩展/包含关系定义,或者两者都有

鉴于您发布的示例(仅供参考,您最好编辑问题,而不是发布不回答原始问题的答案),我敢说B扩展了A和B扩展了C,因为在这两种情况下,A和C可能会确定额外的维修(案例B)

或者,用例A和C可以有条件地包括用例B

顺便说一下,我会将其建模为车辆上的工作,这是由2个用例组成的,获得客户授权,以及服务车辆,其中后者包括任何类型的服务或维修,并且在开始工作之前需要前者的输出。“额外维修”的概念只是车辆工作的另一个实例

但我不知道完整的业务背景,因此您的里程可能会有所不同;-)


编辑:你写道“但在这种情况下:工作正在进行,在工作过程中需要进一步授权”,但我不明白这到底有什么关系

第一步是消除关于包含和扩展的混淆。尝试完全独立地对每个用例进行建模,然后查看常见的情况,以确定是否有必要使用include/extend

我刚刚通读了用例的UML规范部分: 我找不到任何规则可以阻止我这样做。许多人可能在概念上对此有问题,但这没关系,因为你只是本能地试图客观化或简化