如果我调用了一个参与者,例如“创建缺勤”,并且每当该参与者创建缺勤时,他们都需要"Search “,那么使用包含关系来建模这个过程正确吗?
这是在包含的所有解释中并不清楚的事情,所包含的用例是否必须由基自动触发,或者是否可以用来显示每次创建缺勤时,用户总是会搜索员工。
或者,这两者是否应该被建模为被调用的参与者,并且没有包含它们之间的关系?
发布于 2021-03-23 08:27:33
这一标准是明确的,“正式/2017-12-05”第18.1.3.3节包括第641页:
DirectedRelationship是两个UseCases之间的一个UseCase,指示将包含的UseCase (加法)的行为插入到包含UseCase( includingCase)的行为中。在恢复包含UseCase的执行之前,在包含的UseCase中的单个位置执行包含的UseCase的所有行为。
因此:
does the included use case have to be triggered automatically by the base:是的,即使这样说也不完美,因为包含的UC不是被触发的,而是它的行为被插入的。can it be used to show that every time an absence is created the user will always search for an employee:不,如果UC创建缺勤包括UC搜索员工,那么用户将不搜索,而是搜索期间。is it correct to model this using an includes relationship?:那就不行Alternatively should both of these be modelled as actor invoked and with no includes relationship between them?:是的,请注意,您可以在UC中设置一个职位条件,表示演员必须搜索员工。发布于 2021-03-23 22:06:44
请停止谈论被触发或调用的用例。用例描述了将系统用于某一特定目的的情况。触发或调用的只能是系统的功能。用例帮助我们找到这些功能。如果使用锤子将板条箱钉在一起,则不会在锤子上调用nail crate together用例。而是调用store kinetic Energy函数、aim hammerhead函数和transfer energy to object函数。通过分析用例,我们发现钉子经常会弯曲,所以我们可能会发现有一个pull nail函数是有用的。
因此,search for employee是一个函数,是用例create absence所需要的。很可能,其他用例也需要这个功能。在不止一个用例中需要许多功能。例如,当您想打开一个机箱时,pull nail函数就派上了用场。
因此,只有当我找到两个有效的用例时,我才会使用include,其中第一个用例的目标包含在第二个目标中。并且只有当包含的用例值得分析时。否则,只需引用函数即可。您已经有了一个描述需求的用例。
顺便说一句,在用例的上下文中,UML规范总是提到“行为”。请注意,在讨论行为的概念时,它将用大写"B“写”行为“。这意味着在这里,它更多地是在口语化的意义上使用。所以,我不会把关于include的句子解释为定义它的精确语义。
https://stackoverflow.com/questions/66758654
复制相似问题