识别投票 Web 应用程序中的用例

Identifying use cases in a poll webapp

我想弄清楚应该将哪些用例放入我的用例图中。我正在开发一个投票 Web 应用程序:登录后,经过身份验证的用户可以浏览投票列表,然后可以 select 从列表中选择一个投票,最后可以回答一个投票。

这是我做的。

我对扩展关系有疑问,这是正确的还是我应该在没有扩展关系的情况下分离所有这些用例?

不,那是错误的。您正在开始功能分解。您不会在用例综合期间这样做。这里只有一个用例:Browse questions。这是给演员带来附加值的东西。其他的是用例中描述的场景中的步骤。


我一如既往地建议阅读 Bittner/Spence 关于用例的内容。

每个用例都应该让参与者实现某个目标,以便在用例结束时,参与者可以说:"I'm finished".

在我看来,最好的用例是 "Answer poll"。演员的目标是给出 his/her 意见。

"Browse questions" 也可以是一个用例:目标是满足演员的好奇心:"See what questions there are." 但这是有争议的。

我没有看到用例中的参与者有任何附加值 "Select question"。在我看来,这只是回答民意调查的必要步骤。我会消除这个用例。选择问题是用例步骤流程中的一个步骤 "Answer poll".

现在假设我们保留两个用例:"Browse questions" 和 "Answer poll"。这两个用例有什么关系,包括或扩展?

就我个人而言,我会使用包含关系。说回答民意调查包括浏览问题比说回答民意调查是浏览问题的扩展方式更自然。但是只有当完整用例 "Browse questions" 可以插入到用例 "Answer poll" 中的单个点(通常在 "Answer poll" 的开头)时,才有可能包含。在您的情况下可能并非如此。也许您想在回答投票后让演员 return 到 "Browse questions",例如执行 "Browse questions" 中指定的一些最终步骤。在这种情况下,可以使用扩展关系。

如果您选择包含关系,那么不要忘记在演员和 "Answer poll" 之间建立关联。

最后的小提示:extend 和 include 应该完全用小写。