Use Case 中 include 与 extend 的区别

 Use Case include extend 的区别
作者: wakan 发表日期: 2006-04-24 22:12 文章属性: 原创 复制链接

最近上论坛,看到在争论 Use Case include extend 的区别。其实这两者是很容易区的。

include 是指用例中的包含关系,通常发生在多个用例中,有可以提取出来的公共部分(就象提取公因式一样),例如 UseCaseA 中包括了 a b 两个流程,而 UseCaseC 中包含了 c b 两个流程。为了提高复用性,可以把 b 提取出来,形成另一个用例 UseCaseB,此时,UseCaseA include UseCaseB(表现为一条指向 UseCaseB 的虚线,箭头在 UseCaseB 侧),UseCaseC include UseCaseB。因而,当有 include 关系时,被 include 的用例通常会被两个以上的其他用例 include(否则就不需要重用,也就不需要提取出来了),用例图如下:

    include 关系中, “UseCaseA UseCaseC 知道 UseCaseB 的存在,而 UseCaseB 根本不知道有 UseCaseA UseCaseC );

extend 则恰好相反。假设 UseCaseA 的功能描述为 发送一条通知 ,可是,发送通知的方式可能有许多种,例如通过邮件发送、通过短信发送等。在需求分析阶段,可能无法明确到底有多少种方式,在用例分析阶段, UseCaseA 需要留出扩展接口,然后把已知的发送方式作为扩展用例给出,例如 UseCaseB 通过短信发送 ,而 UseCaseC 通过邮件发送 ,此时, UseCaseB UseCaseC extend UseCaseA ,表现为两根虚线,箭头指向 UseCaseA ,用例图如下:

 


extend 关系中,UseCaseA 不知道 UseCaseB UseCaseC 的存在,但 UseCaseB UseCaseC 却是知道 UseCaseA 并且知道如何在 UseCaseA 中作扩展的。

另:在用例图中,有时会看到两个用例之间有依赖关系(表现为一条单向或双向的实线),这是错误的,说明用例没有提纯。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值