我目前正在刷新/改变我在软件开发方面的知识,因为我很快就会在这方面工作。我们已经在大学学到了很多关于UML图和编码的知识,但是我从来没有把它们放在一个真正的项目中。因此,我开始在Grails中创建一个测试Web应用程序,并且我希望从需求分析开始,并且使用案例也保持接近实际。我是否对那些扩展或包含用例使用相同的actor?
我的网络应用程序应该允许用户共享食谱,查找食谱和审查其他用户的食谱。每一个食谱都有很多成分,不仅仅是字符串,而是实体,所以卡路里,脂肪,蛋白质和碳水化合物可以用来自动计算某一配方的营养成分。
一种成分可以由消费者或营养专家添加到数据库中。如果它是由消费者创建的,它只是一种“预期”成分,这意味着它必须由管理员验证才能成为“适当”的成分 - 否则它会被标记,例如。红色的文字颜色。
这是我目前用例图:
http://ubuntuone.com/0zDw9kEbj1BwtXjnCtxdwC
我的问题在这里:
- ,如果我使用包括或延长,我将不得不使用那些相同的主要参与者扩展或包含用例? (在截图:难道
AddProspectiveIngredient
有不同的主要参与者比CreateRecipe
为include
同样的问题?)
编辑:我不认为这个问题被广泛问:如果我使用包括或延长,将我必须为扩展或包含用例使用相同的主角色?
我同意,因为这是我的#2第一个问题,那有一开始一些不必要的样板。如果是这种情况,我可以编辑我的问题以保持开放。我仍然希望有人能够偶然发现并为我提供更多的知识或来源。
再次感谢您的回复。在你的例子中,这是否意味着你可以创建一个聚合用例'AB',其中X是主要的,Y是次要的?因此,Y帮助X实现了他们的目标,因此完成使用案例A. – nst1nctz
@ user3025256恕我直言,X和Y都会与AB合作,但他们中的哪些人是次要的,取决于客户的看法。 X可以做更多的事情。但这并不意味着他总是更重要。什么是主要的,什么是次要的与模型抽象无关。这只是我们对重要性的评估。这些信息有助于了解整个域名及其使用情况,在我们的计划中应予以考虑,但这是比整个IT系统级别更高的信息。 – Gangnus
我刚刚发现我为什么对这个问题感到困惑的原因。在我们在大学使用的一本书中,由Noushin和Hessam Ashrafi撰写的面向对象系统分析和设计Pearson国际版,讨论了这个话题。 “扩展用例的主要参与者必须与基本用例的主要参与者相同”(第226页)但本书并没有将这个问题与包含关系进行讨论。遵循这个规则是明智的吗? – nst1nctz