2012-02-29 101 views
1

我有一个用例与系统中的两个角色相关联。这个用例扩展了另一个用例,但只有其中一个角色可以使用扩展用例。如何以图形方式表示UML用例扩展点?

是否有某种方式来表示第一个用例扩展的条件性质?或者,我是否需要在用例文档中指定初始用例只能针对某种类型的演员进行扩展?

谢谢。

回答

2

如果我明白了这个问题,听起来好像你需要两种演员。你(可能)需要通过抽象使一个演员类型泛化。换句话说,你需要创建一个专门的演员谁继承了更一般的演员的权限。

(请原谅我的可怕的ASCII人民和泛化箭!)

O     __________________ 
    ---    /    \ 
    |  -----------| Use Case 1  | 
/\    |__________________| 
        | extension points | 
    User    | if Super User | 
    ^    \__________________/ 
/\      /\ 
    /___\      | <<extend>> 
    |       | (if Super User) 
    |       | 
    |       | 
    O     _________________ 
    ---    /    \ 
    |  -----------| Use Case 2  | 
/\    \_________________/ 
Super User   

本专业演员(超级用户)可以再搞两个用例,但普通用户只有第一个(非扩展用例)。

请注意,Super User可能或可能不能直接启动案例二。它取决于用例和问题域是否合理。

然后,您可能想要在扩展用例中使用扩展点(类似“超级用户”或“如果超级用户”),从而为扩展用例创建决策点。

Here是一个更清晰的图表的例子。

而且这里有extension point从UML参考手册(第2版)的定义(P358):

命名标志标识位置或用例的行为序列中设置的位置上,可以插入哪些附加行为。

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

+1

我认为我要找的点是(如果超级用户)你放在图上。它是否在UML 2.0规范中? – 2012-03-01 12:51:02

+0

我不确定是否有可能使用决策点,如你给我看。我还没有找到它。 – 2012-03-01 12:52:48

+0

使用该图片的文字总是会有雄心壮志。我已经添加了一个使用扩展点的体面示例的链接。我还从UML参考手册中添加了“扩展点”的定义。 – 2012-03-01 13:12:26