为什么我们需要将一个用例分离或分解为两个或多个用例?

Why do we need to separate or breakdown one Use Case into two or more use cases?

为什么在许多情况下需要将一个用例分离或分解为两个或更多用例?

在多个用例中拆分一个用例的唯一原因是通过在单独的用例中隔离该功能来在多个用例之间共享该功能。

示例:'search product information' 可能是用例 'buy product' 和 'hire product' 包含的单独用例。

除了'include'之外,还有使用'extend'或'generalize'的相同原理的示例。

通过这样做,您可以防止在多个用例中复制共享行为,从而增加不一致的可能性。

在前面的示例中:我们希望确保客户在购买产品时与​​租用产品时搜索产品信息的方式相同。使用包含的用例,阅读用例的人会立即意识到这一事实。

首先:你没有。开始这样做意味着您正在进行功能分析。用例综合的要点是找到不同参与者在与所考虑的系统交互时所具有的目标(也称为附加值)。将一个目标分成那个级别的子目标是徒劳的。要么你有一些附加值,要么你没有。因此,如果有人解决了一个用例并试图将其分解,那么该用例要么是错误的(没有用例),要么是无用的,因为该用例已经显示了附加值。

我个人对 include 和 extend 的看法:它们基本上是邪恶的,是没有商业背景的技术人员(大多数 UML 设计师都是)引入的错误概念。使用它们意味着您已经开始进行功能分析。但是 UC 是根据需求合成的。也就是说,您将网拖到需求汤中,然后捞出适合的需求,构建一个有意义的故事 - 并提供附加值:一个用例。

一如既往:阅读 Bittner/Spence 有关用例的信息。