我有一个与系统中两个actor相关联的用例。此用例扩展了另一个用例,但只有一个参与者可以使用扩展用例。
是否有某种方法来表示第一个用例扩展的条件性质?或者,我是否需要在用例文档中指定初始用例只能扩展为一种角色?
感谢。
答案 0 :(得分:2)
如果我理解这个问题,听起来你需要两种演员。您(可能)需要通过抽象使一个actor类型成为泛化。换句话说,您需要创建一个专门的 actor,它继承了更一般的actor的权限。
(请原谅我可怕的ascii人和概括箭!)
O __________________
--- / \
| -----------| Use Case 1 |
/ \ |__________________|
| extension points |
User | if Super User |
^ \__________________/
/ \ /\
/___\ | <<extend>>
| | (if Super User)
| |
| |
O _________________
--- / \
| -----------| Use Case 2 |
/ \ \_________________/
Super User
然后,这个专门的演员(超级用户)可以同时参与两个用例,但普通用户只能参与第一个(非扩展用例)。
请注意,Super User
可能会也可能无法直接启动用例2。这取决于用例和问题领域是否有意义。
然后,您可能希望在扩展用例中使用扩展点(类似“超级用户”或“如果超级用户”),从而为扩展用例创建决策点。
Here是一个更清晰的图表示例。
此处是“UML参考手册”(第2版)(p358)中extension point
的定义:
一个命名标记,用于标识用例的行为序列中的位置或位置集,可以在其中插入其他行为。
扩展点名称的名称可以是您想要的任何名称。无论什么对你有意义。没有句法规则。无论你在图表上放置什么,都应该出现在文本用例描述中(即用例的步骤)。