如何使用用例关系 - uml

时间:2012-09-12 09:36:03

标签: uml

嘿伙计们!我一直在研究UML,我试图设计一个问题的用例图。

让我的应用程序包含在:

两个请求:         - 创建团队         - 创造球员

这是交易: 用户可以创建团队,在创建团队后,他可以为该团队创建玩家(不是必需的)。 但是在这个应用程序中有多个用户,用户可以创建一个团队,其他用户可以创建玩家。唯一的限制是创建球员必须存在一个团队。 我研究,最后有点混乱。如果我在用例图上得到正确的关系概念,我想我应该有两个用例:

[用例 - 创建团队]< ------- extends ---- [用例 - 创建播放器]

我需要意见,这是正确的解决方案吗?或者我应该有两个不相关的用例?

提前致谢,对不起我的英语。

2 个答案:

答案 0 :(得分:2)

通常,您不需要在用例图中模拟依赖关系,例如“必须在执行B之前完成”。用例应代表一组Szenarios,将它们分组为常见案例。

“extends”依赖项用于指定比扩展的用例更特殊的用例。所以,如果你想表达创建一个玩家是一种使用“扩展”创建团队的特殊形式,那就没问题了。但这与上述情况不符。

如果您想表达创建游戏总是意味着创建团队,您可以使用“包含”依赖项。这可能与你的情况相符,但imo并不完全。

最后一个选项是绘制一个未指定的依赖项(没有<<>>标记)表示用例彼此之间存在某些东西。

我的建议:在这种情况下不要使用任何依赖。

可以找到一些更好的解释here,顺便说一句。

答案 1 :(得分:0)

用例存在一个共同的问题:关系。我们倾向于使用关系来描述用例的顺序。但这是一种误解。以下是The UML User Guide关于用例和事件流程的部分内容(第4部分,第17章):

You can specify a use cases's flow of events in a number of ways
[...] informal structured text
[...] formal structured text
[...] states machines
[...] activity diagrams

关键在于,如果指南倾向于(隐含地)说不应该使用关系来指定事件流,那么它就没有说明应该使用什么用例关系。我认为这就是为什么用例是UML和UP的重要一点,但却是一个很难处理的工具。

在你的模型中,你应该改变箭头和术语(简单的建议,你是分析师):

A team creation implies players creations

如果你想强调约束,这应该在你的图上表示,而不是作为操作序列的表示(细微的区别)。

extends 术语通常与泛化/专业化相关联。在我看来,这不是团队和用户创建之间的关系。该指南给出的例子如下(第4部分,第18章):

Placing a conference call is a specialization of placing a phone call

也就是说,用例的专业化建模大部分时间都是有限的兴趣。但有时这是需要的,这取决于用例描述:如果两者相等,你就不会这样做,如果不是,你就不会这样做。建议程序员knows,专业化并不意味着平等的断言。