我如何设计UML用例图

问题描述 投票:0回答:2

我正在尝试为以下方案设计一个用例图。

我有一个根据客户的订单向他们分配商品的社会。这些客户可以是主管部门,公司或私人。根据客户的身份,我想或多或少地了解他们的信息(姓名,号码等)

用例根据客户端是否是不同而不同:

  1. English
  2. 英语,并且已经使用此服务超过3年
  3. 外国

例如:

  • [1)英语客户的订单只有在他们预先支付少量费用的情况下才被接受。

  • [2]使用该服务已有3年的英语客户不必支付此费用,但需要获得其他演员(在此情况下为代理人)的认可

  • The 3)外国客户的订单始终被接受。

这里就是我遇到麻烦并需要帮助的地方。

[除非是政府部门,否则总是拒绝来自具有犯罪记录的nglish客户的命令。

这里最最佳的演员选择是什么?我曾考虑过使用English clientForeign clients,但我不知道如何在用例中包括“除非客户端是管理员”。

uml actor use-case requirements
2个回答
0
投票

UML用例中的参与者是分类器。要决定要创建哪些参与者,需要了解参与者的目标和行为,以及它们在与系统交互中的区别。

首先,您需要澄清超模糊的要求:

  • 英语客户”:这是具有英语国籍的客户吗?是永久居住在英国的客户吗?这是一位在英国有住址的客户吗?客户的电话号码是+44吗?
  • 外国客户”:相同类型的问题+您能确定英语和外国语之间的区别吗?例如:与外国人在一起怎么办?有两个地址的人在国外怎么办?
  • 使用此服务三年以上”:对于使用该服务3年然后定居英国的外国客户,该怎么办?
  • 由于您交货后,可能还需要考虑交货地址。如果英国客户在国外地址订购,反之亦然?
  • 犯罪记录”:犯罪记录可能会随着时间而变化:每次购买时都会提供吗?还是客户注册过程的一部分?在后一种情况下,是否需要定期更新此信息?

用例原则上应以目标为导向。因此,用例代表了要与系统进行交互以实现该目标的用户的目标。用例不是要描述您的过程的详细顺序(如果是客户,则是这样做,等等。。。)也不是参与者。

因此,您应该考虑重新编写用例,以表示参与者如何看待它们。如果需要,您可以考虑演员的身份,这可以解释演员的行为有很大不同。通常在您的情况下,我可以想象:

  • [新客户:新客户可能想提供详细信息(地址,身份证明)或他们有权购买的证据(犯罪记录-如果您要求提供此类详细信息,我想您的活动受到管制)
  • 公共管理:由于公共采购和法律限制,采购中的管理行为总会有所不同。
  • 私有公司:行为不同,因为它可能涉及多个人,
  • 私人

需要支付预付款似乎取决于地址,国籍,历史。它与流程(是流程的一部分)关系更大,而不是演员的独立目标。因此,我既不会将其显示为用例,也不会为此目的让其他参与者参与。

拒绝订单的原因与客户无关(没有客户有目标去拒绝购买!)。它与您和您的系统相关,并且是注册过程的结果。因此,无需为此而有专门的演员。


0
投票

用例关系图不是放置此信息的正确位置。正如@Christophe正确指出的,用例代表了将与系统进行交互以实现该目标的用户的目标

这意味着您的方案中只有一个用例:“订购商品”。但是,它具有一组preconditions。您可以将它们列出为结构化纯文本。由于它们背后都有相当大的复杂性,因此我建议将它们放入单独的决策表中。然后,您可以很好地将图范围清楚地分开,并且它们仍然易于阅读。

旁注:可能还有第二个由第二名演员执行的“分发订购的货物”,第二名演员是负责履行/路由/调度的雇员。

© www.soinside.com 2019 - 2024. All rights reserved.