2017-09-26 61 views
0

我有一个叫做X的actor。这个actor连接到Use Case:View清单。 还有一个用例称为查看项目。在查看库存时,演员可以选择查看属于库存的物品。UML扩展或不在两个用例之间

在这种情况下:查看项目用例是否应扩展查看库存?因为演员在查看所有库存时查看项目是可选的吗? 或者应该两个用例只需连接到演员而不是彼此?

在UML 2和统一过程中,它指出扩展用例通常在注意完整用例,因此不能实例化。 我真的很困惑我的情况。

这里一个simpeler观点:

使用案例:查看库存

延长---->查看项目

,而不首先从视图库存选择特定的库存无法查看项目用例。这是可选的。

使用情况:查看项目

延长---->添加项目 延长---->删除项目

你必须从一个特定的库存查看的项目才可以添加或删除项目。这是可选的。 enter image description here

+0

简短回答:不,在这种情况下不要使用扩展,但是这个问题是[使用情况图中包含和扩展之间有什么区别?](https://stackoverflow.com/问题/ 1696927/include-and-extend-in-use-case-diagram之间的区别) –

+0

[包含和扩展用例图之间有什么区别?](https: //tutorialoverflow.com/questions/1696927/whats-is-the-difference-between-include-and-extend-in-use-case-diagram) –

+0

@GeertBellekens我增加了一些信息。 – Urban

回答

1

你最好忘记那些扩展/包含关系。你很想尝试对UCs进行功能分解,这与你在这里试图达到的目标完全相反。 UC应该是所考虑的系统(SUC)向其中一个参与者提供的唯一附加价值。所以UCs最好显示为代表SUC和站在外面的演员的边界内的简单气泡。将主要演员放置在边界的右边界(如果存在)次要演员常见。

  • 只是不要使用extend/include。 (我从来没有真正需要这些关系,恕我直言,他们是UML中的设计错误。)
  • 如果您的UC图开始类似于蜘蛛网,您的设计可能会被破坏。
  • 统一通信不是关于功能的顺序。如果UC只能在另一个执行后才能执行,请添加约束{ can only be executed after UC x has been completed once }等。
+0

感谢您的反馈!所以在我的情况下,我应该只制作2个泡泡,只将它们连接到演员而不是彼此。但在我的应用程序中,演员只能在选择清单后才能查看项目。我如何在我的用例图中显示这个? – Urban

+0

只需在'view'中添加一个约束,告诉''库存必须被选中}'。 –