如何在用例图中描述这种情况?
Posted
技术标签:
【中文标题】如何在用例图中描述这种情况?【英文标题】:How do I depict this situation in a use-case diagram? 【发布时间】:2022-01-17 10:57:39 【问题描述】:考虑这样一个场景: 大学 ABC 为一门课程分配 2 名讲师(一名主讲师和一名代课讲师)。代课讲师的工作是在主讲师不能出席时进行授课。因此,两位讲师不需要同时在场进行讲座。 如何显示主讲师或代课讲师同时提供讲座? 我画的: 然而,场景中描述的想法在这里并不一致,因为同时两位讲师都有可能提供讲座。 我该如何纠正这个问题?
【问题讨论】:
无法仅使用图表来描述您的场景。您必须添加您的假设以使其清楚。 普通讲师是主讲师还是副讲师? 您可以始终使用约束(纯文本或包含在
中的OCL)来描述此类条件。
【参考方案1】:
您是将两个不同的讲师与用例关联还是将一位讲师与多重性为 2 关联在这里没有区别。 UML 规范允许完全未指定多个参与者的情况:
UML 2.5.1,第 640 页(突出显示是我的):当 UseCase 与具有多重性的 Actor 关联时Actor 端大于 1,表示 UseCase 中涉及多个 Actor 实例。 多个Actor参与UseCase的方式取决于手头的具体情况,在本规范中没有定义。例如,一个特定的 UseCase 可能需要两个单独的 Actor 同时(并发)动作(例如,发射核导弹),或者它可能需要 Actor 的互补和连续动作(例如,一个 Actor 启动某事,另一个 Actor 停止它)。
这里有一些可能的解决方案来优化您的模型:
在两个讲师关联之间显示xor
约束。
添加一个注释框,锚定到您以纯文本形式解释的用例。
保持图表不变,并在文本用例描述中描述需求。
其他 cmets,与您的问题无关:
如果学生人数没有上限,请使用*
而不是M
。如果在文本中指定,请使用数字。
主讲师和代课讲师都是全职讲师,选择只看空位,不是吗?
【讨论】:
【参考方案2】:正如评论的那样,我总是会扮演实际的角色。我手头没有好名字,但在你的情况下,它会是Lecture offerer
。那就是与Offer lecture
用例相关联的那个。
现在您展示的其他 3 个演员可以简单地通过泛化从上面的那个演员继承。
关于并发访问的任何约束都最好保存在需求、约束和最终描述出现的许多场景的事件流中。要求和约束不应使简单的 UC 图表混乱。相反,您创建不同的图表来处理它们。 UC图的主要重点是显示附加值。
我一如既往地推荐阅读 Bittner/Spence 关于用例建模的文章。
【讨论】:
以上是关于如何在用例图中描述这种情况?的主要内容,如果未能解决你的问题,请参考以下文章