2016-09-28 66 views
1

Craig Larman指出,以某种表/网格的形式创建演员[/用户] - 目标列表是在需求分析过程中查找用例的好技术。 (应用UML和模式 - 第69页ff)多个演员应该在演员 - 目标列表中共享相同的目标

一些简单的双列表应该足以为此示例提供良好的概述;想象一下以下演员 - 目标列表:

ActorGoal

AdminCreate User
" Read User
" .. (full CRUD)
" CRUD Entry
" Assign Entry (to User)
" ..

User Create Entry
" .. (full CRUD)
" CRUD himself?
" ..

联系能做什么用户能+更像管理小号 ystem ü的nDer d才有发展的用户或他们指定的条目。

管理员和用户清楚地分享了一些目标(我们可以使用术语用例吗?)。

我不是很确定从这里去改进这个Actor-Goal列表。

我的大脑告诉我,我可以通过复用/抽象腾出时间和精力在这里,所以我将最有可能与一个共同的超执行CRUD进入行为,其中,管理是由扩展功能结束管理目标(CRUD用户,分配等)。

但我知道这是一个比设计而不是分析的问题。
我也知道我可以单独编写用例:我不必说明究竟是谁使用它,我只需要知道它是遵守给定合同的某个实体[/ interface]。


什么时候开始思考抽象?
我现在是否过度复杂?
我们是否应该像上面那样离开演员 - 目标列表并将其作为“完整”神器核对?

因为一个演员,目标列表的古典目的是为我们的下一个神器提供一些简要概述 - 用例图 - 我们可以开始转换就在这里?: use case diagram

用例图,使整个重用部分更可见(至少对我来说)。现在采用冗余并在后期阶段(如设计)处理它会是明智的吗?

欣赏您的输入!


编辑:我也不太清楚有关用户CRUDing自己...但是让我们保持简单,坚持的主要问题。

回答

1

如您所描述的,在演员目标列表中标识候选用例是一个很好的主意。

的问题识别用例

在现实生活中时,你会很快遇到的一致性问题阐述需求获取过程中的列表时:

  • 采访了一些用户/业务专家会描述非常详细的逐步目标(对应于系统功能),而其他将描述相当高水平的目标用户目标。所以你需要第三列来确定每个用例的goal level

  • 术语和用户目标不会总是以均匀的方式表达。因此需要进行交叉检查,并重命名用例。例如,我曾在那里的系统:

    • 管理员声称manage authorizations和商务用户声称manage authorization。这是相同的用例吗?不:看起来系统中的第一个maintained assignment of authorizations,第二个被授权给管理员的decide on authorizations assignment and request them
    • 买方解释说,对于购买订单,有人必须在发票付款前给register a good receipt。仓库职员解释说,他们在仓库manage stock movement。后来,看来,这些运动的好收益,良好的问题和股票转让。

所以第四列有关主要变种评论可能有助于保持概述,并发现隐藏的共享潜力。

在共享/重用用例之前,通常会进行大量的交叉检查和协调工作。重复使用太快可能会导致比预期更多的时间。

使用情况图表

现在我会很挑衅:一旦你有很好的和一致的表与所有的演员和使用的情况下,这将是你从一个用例图,预计受益?

通常推荐使用not to abuse use case diagrams for functional decomposition(参见also here)。所以用例图将增加一点你已经在列表中的东西。

此外,<<Include>>, <<Extend>>和泛化关系应该使用很少,因为他们往往很快使图难以理解。

最后,抽象和重用确实发生在用例级别吗?这与系统之外的参与者有关吗?如果不是,那更多的是关于设计和实现的细节。所以我建议在类模型中考虑这些,您将创建(或派生)以实现用例。