包含或扩展UML?

时间:2017-04-18 00:04:19

标签: uml

我知道扩展关系是指用例是可选的,但include是在需要操作用例时(但不是所有时间)。我想为注册系统建模一个用例,并怀疑使用哪种关系,我有两种可能的选择:

enter image description here

我更热衷于(b)表示此操作的方式,因为修改数据和删除数据的部分不应是可选的,它们用于维护学生的记录(对于我图中的拼写错误而感到抱歉) 。尽管一位同事表示(a)选项更准确地处理这种情况。两者都可以正确吗?如果是这种情况可能发生的情况呢? 感谢

2 个答案:

答案 0 :(得分:2)

当您设计用例时,一个容易陷入的陷阱是“功能分解”,其中您将用例分解为太多子案例。这里的经典之作在于CRUD操作。虽然“维护记录”是一个明智的用例,但您很少想将其分解为创建记录,删除记录等。因此,在某种程度上,您对“包含...”与“扩展...”的问题的答案将会是'既不'。

有时候,如果一个actor可以搜索而只有特定的actor可以创建记录,或者如果删除记录时有一个特别复杂的身份验证步骤,则可能需要创建这些单独的用例。在这种情况下,您可能不需要“维护记录”用例,但会分别描述这两种情况。

如果你必须两者都有,那么我会建议'修改数据'扩展'维护记录',因为你有时可能会执行它但不会总是这样做。

查看此答案:CRUD in a use-case diagram?

您可能会发现有用的讨论http://www.se.cs.put.poznan.pl/knowledge-base/software-engineering-blog/crud-pattern-in-use-cases

答案 1 :(得分:0)

我想说,最好从图表中删除“记录维护”用例。听起来像一组用例。修改数据和删除数据是该组的两个唯一用例。