如何以图形方式表示UML用例扩展点?

时间:2012-02-29 17:58:13

标签: uml diagram use-case diagramming

我有一个与系统中两个actor相关联的用例。此用例扩展了另一个用例,但只有一个参与者可以使用扩展用例。

是否有某种方法来表示第一个用例扩展的条件性质?或者,我是否需要在用例文档中指定初始用例只能扩展为一种角色?

感谢。

1 个答案:

答案 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的定义:

  

一个命名标记,用于标识用例的行为序列中的位置或位置集,可以在其中插入其他行为。

扩展点名称的名称可以是您想要的任何名称。无论什么对你有意义。没有句法规则。无论你在图表上放置什么,都应该出现在文本用例描述中(即用例的步骤)。