我正在尝试为以下方案设计一个用例图。
我有一个根据客户的订单向他们分配商品的社会。这些客户可以是主管部门,公司或私人。根据客户的身份,我想或多或少地了解他们的信息(姓名,号码等)
用例根据客户端是否是不同而不同:
例如:
[1)英语客户的订单只有在他们预先支付少量费用的情况下才被接受。
[2]使用该服务已有3年的英语客户不必支付此费用,但需要获得其他演员(在此情况下为代理人)的认可
The 3)外国客户的订单始终被接受。
这里就是我遇到麻烦并需要帮助的地方。
[除非是政府部门,否则总是拒绝来自具有犯罪记录的nglish客户的命令。
这里最最佳的演员选择是什么?我曾考虑过使用English client
和Foreign clients
,但我不知道如何在用例中包括“除非客户端是管理员”。
UML用例中的参与者是分类器。要决定要创建哪些参与者,需要了解参与者的目标和行为,以及它们在与系统交互中的区别。
首先,您需要澄清超模糊的要求:
用例原则上应以目标为导向。因此,用例代表了要与系统进行交互以实现该目标的用户的目标。用例不是要描述您的过程的详细顺序(如果是客户,则是这样做,等等。。。)也不是参与者。
因此,您应该考虑重新编写用例,以表示参与者如何看待它们。如果需要,您可以考虑演员的身份,这可以解释演员的行为有很大不同。通常在您的情况下,我可以想象:
需要支付预付款似乎取决于地址,国籍,历史。它与流程(是流程的一部分)关系更大,而不是演员的独立目标。因此,我既不会将其显示为用例,也不会为此目的让其他参与者参与。
拒绝订单的原因与客户无关(没有客户有目标去拒绝购买!)。它与您和您的系统相关,并且是注册过程的结果。因此,无需为此而有专门的演员。
用例关系图不是放置此信息的正确位置。正如@Christophe正确指出的,用例代表了将与系统进行交互以实现该目标的用户的目标。
这意味着您的方案中只有一个用例:“订购商品”。但是,它具有一组preconditions。您可以将它们列出为结构化纯文本。由于它们背后都有相当大的复杂性,因此我建议将它们放入单独的决策表中。然后,您可以很好地将图范围清楚地分开,并且它们仍然易于阅读。
旁注:可能还有第二个由第二名演员执行的“分发订购的货物”,第二名演员是负责履行/路由/调度的雇员。