经理
和接待员
在角色上是相同的,这就是为什么我使用了一般化。如果不知道领域,这似乎是可以的,但这只是一个提议。
<<extend>>
受到{不允许演员Tech}
的限制,这清楚地排除了该演员进入此(可选)用例。Receptionist
与Update...
相关联,因为它是View...
的扩展,除非你想先View
而不Update
。<<include>>/<<extend>>
的注意事项:它们不是用例链接。UML规范说明(第638页):
Include关系旨在用于两个或多个UseCase的行为存在共同部分的情况。然后将这个共同部分提取到一个单独的UseCase中,由所有具有这个共同部分的基础UseCases进行包含。当有一些额外的行为应该被添加到一个或多个用例中定义的行为中时,应使用Extend。
Update
中放置一个约束,告诉{仅在查看后才能访问...}
。<<include>>
是必须执行的,在这种情况下似乎没有意义 - 它是可选的。 - qwerty_so<<extend>>
的一个有效应用(为数不多的应用之一)。虽然它不是直接涉及UCs的顺序,但这意味着“您需要查看才能更新”,这是一种常见的模式。如果有直接编辑的要求,我会把 <<extend>>
放在一边。请查阅第 638 页:Extend 旨在用于存在某些附加行为的情况... 那么可以采用以下模式:查看已锁定的字段,然后可选地解锁以进行编辑。 - qwerty_so我会将"extend"改为"include"。要更新工作,你必须查看它。查看是强制性的。
在你的图表中,经理和接待员是等价的,仅使用这个模式,你只能定义一个参与者。或者模型中经理继承自接待员。
为了避免错误,如果你这样做,你必须确保接待员和经理也可以激活查看用例而不更新。否则,有些关联必须被移除。
include
会使主要的用例不完整! - qwerty_so