我试图弄清楚我应该在我的用例图中放置哪些用例。我正在开发一个投票网络应用程序:登录后,经过身份验证的用户可以浏览投票列表,然后可以从列表中选择一个投票,最后可以回答投票。
这是我做的。
我对扩展关系有疑问,这是正确的还是我应该在没有扩展关系的情况下分离所有这些用例?
我试图弄清楚我应该在我的用例图中放置哪些用例。我正在开发一个投票网络应用程序:登录后,经过身份验证的用户可以浏览投票列表,然后可以从列表中选择一个投票,最后可以回答投票。
这是我做的。
我对扩展关系有疑问,这是正确的还是我应该在没有扩展关系的情况下分离所有这些用例?
不,那是错误的。您正在开始功能分解。您不会在用例综合期间这样做。这里只有一个用例:Browse questions
. 这是为演员带来附加价值的方法。其他是用例中描述的场景中的步骤。
与往常一样,我建议阅读 Bittner/Spence 关于用例的信息。
每个用例都应该让参与者实现某个目标,以便在用例结束时,参与者可以说:“我完成了”。
在我看来,最好的用例是“回答投票”。演员的目标是发表他/她的意见。
“浏览问题”也可以是一个用例:目标是满足演员的好奇心:“看看有什么问题。” 但这值得商榷。
在用例“选择问题”中,我没有看到参与者的任何附加值。在我看来,这只是回答民意调查的必要步骤。我会消除这个用例。选择问题是用例“回答投票”步骤流程中的一个步骤。
现在假设我们保留两个用例:“浏览问题”和“回答投票”。这两个用例有什么关系,包括或扩展什么关系?
就个人而言,我会使用包含关系。说回答民意调查包括浏览问题比说回答民意调查是浏览问题的扩展方式更自然。但是,仅当完整的用例“浏览问题”可以插入到用例“回答投票”中的一个点(通常在“回答投票”的开头)时,才可能包含包含。您的情况可能并非如此。也许您想让演员在回答完投票后返回“浏览问题”,例如执行“浏览问题”中指定的一些最终步骤。在这种情况下,可以使用扩展关系。
如果您选择包含关系,请不要忘记在演员和“回答投票”之间建立关联。
以小写结尾:extend 和 include 应完全小写。