2010-01-30 107 views
0

我不明白下面的主题很好,因为它是一个有点暧昧从我读:UML关系(延伸/包括)

  • Inlcude是想下一个部分的引用,该用例是没有它就没有完成。这部分应该从更多的地方引用,否则它的使用是没有意义的。

但我已经看到了一个例子,当有“包括”只在某些IF说法是正确的,如: 添加新产品---> ---包括>添加新的制造商。 //仅在不存在时添加。为什么没有“扩展”?是否因为别的地方可能会再次使用“添加新制造商”? 谢谢

回答

2

没错。一旦你扩展了另一个用例,你已经达到了当前用例的末尾。但是,你可以在if里面扩展。想象下面。

1) The driver asks if his guests want Wendys or Burger King 
2) The guests choose they want Burger King [extend to eating at Burger King (use case 5)] 
3) The guests choose they want Wendys [extend to eating at Wendys (use case 9)] 

一个include不会结束一个用例,它使用另一个用例然后返回。包含类似于函数调用。您在其他功能中执行操作,然后返回并继续。您也可以在没有if语句的情况下使用include。

1) The driver orders the food 
2) The driver drives to the first window 
3) The driver pays the cashier (include handling a credit card transaction (use case 3)] 
4) The driver drives to the second window 
5) The driver gets the food 

请注意,在上面的扩展将无法正常工作。这是因为司机仍然需要去第二个窗口并获得食物。如果我们扩展到使用第三种情况,那么我们将永远不会返回到这个用例。

2

下面是从以下主题的解释:UML用例图:参考http://msdn.microsoft.com/en-us/library/dd409427%28VS.100%29.aspx

包括:一个包括用例调用或调用收录其中。包含用于显示用例如何分成更小的步骤。包含的用例位于箭头末端。

延伸:扩展用例向扩展用例添加目标和步骤。分机 仅在特定条件下运行。扩展用例位于箭头末端。

Include and Extend relationships on a use case diagram http://i.msdn.microsoft.com/Dd409427.UML_UCOvStructure(en-us,VS.100).png