2017-04-18 175 views
1

对于我所知的一个扩展关系,当一个用例是可选的,但包含是当需要使用用例的操作时(但不是所有时间)。我想对一个登记系统用例模型,并用怀疑使用哪种关系来了,我有两个可能的选项是:包含或扩展为UML?

enter image description here

我对(B)的方式更敏锐代表这种行为,因为修改数据和删除数据的部分不应该是可选的,并且它们用于维护学生的记录(对于图表中的错字)。即使有一位同事说,(a)选项更准确地处理这种情况。两者都可以正确吗?如果是这种情况,可能会发生这种情况? 谢谢

回答

2

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

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

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

结帐这样的回答:CRUD in a use-case diagram?

,你会发现有用的讨论是在这里http://www.se.cs.put.poznan.pl/knowledge-base/software-engineering-blog/crud-pattern-in-use-cases

0

我会说,这是更好地删除您的图表“维修记录”的用例。这听起来像一群用例。修改数据和删除数据是这个组中的两个唯一的用例。