【问题标题】:Use or Extend relationships in the flow modifique the postcondition?在流中使用或扩展关系修改后置条件?
【发布时间】:2022-09-24 21:57:34
【问题描述】:

对不起我的英语,我正在学习。我来自阿根廷布宜诺斯艾利斯。

我明白了一些事情;后置条件必须为真,即系统必须结束用户故事的状态。在正常流程中,我可以与另一个用例有很多用途或扩展关系,例如:我有用例“查看所有凭证”它的工作是用户可以在门户网站中查看所有凭证,如果他愿意,他可以将一个标记为“有效”或“无效”,(标记凭证是另一个用例),我把它当作我学习的第四步,-如果他想标记它,跳到\ “标记凭证”用例-,所以......在这里,“查看凭证”中的后置条件是什么?

  1. 用户看到所有的凭证
  2. 用户看到所有的凭证,他可以检查一个像“有效”或“无效”。
  3. 用户看到所有的凭证,他可以检查一个像“有效”。

    PD:“检查凭证”中的幸福路径是凭证是“有效的”。在替代步骤中(如果无效->“无效”)

    标签: uml analytics use-case user-stories use-case-diagram


    【解决方案1】:

    用例可能不是您需要的工具

    您似乎使用用例将详细功能分解为更详细的功能。尽管这在 UML 中不被禁止,但不建议使用功能分解,因为它会导致不可读的用例。所以最好考虑用户目标,例如Review and verify vouchers

    您可能很想用用例来模拟您的用户界面。不!这不是一个好主意,UML 的发明者甚至强烈建议不要这样做。

    最后,用例不是活动。您似乎描述了活动的顺序:请求查看所有凭证然后打开并验证一个,等等......在执行下一步之前完成一个步骤。为此,更喜欢活动图。用例中没有序列的概念。

    如果您仍然想要(或必须)使用用例:

    关于后置条件的初步说明

    后置条件是在行为结束时必须满足(真)的约束。这意味着:

    如果行为完成,则后置条件必须为真。

    在形式验证中,您还可以使用logical contraposition

    如果后置条件不正确,则行为不应完成(除非模型或其实现有问题)。

    但是后置条件不会驱动行为:后置条件可以从行为开始就为真,或者可以在行为的任何时刻变为真而不会中断/终止它。

    一个典型的例子是堆栈操作的后置条件:

    context stack::push() post: self.size>0    
    // This means: after a push on the stack the size of the stack is greater than 0
    // But for the second push, the condition is already verified at the beginnin, but the push will never be performed   
    

    用例的后期条件

    您确实可以以您建议的一种方式陈述您的后置条件。但是有两个重要的说明:

    • 用例是在用例结束时必须为真的约束。因此,您应该注意不要使约束过强。因此,如果用户涉及用例See all vouchers,您可能不会期望用户向下滚动并阅读系统中的所有 123 000 张凭证,并且不应该写“用户看到了所有的优惠券“。所以你可以写一个更谨慎的后置条件,比如“用户可以看到优惠券列表”。
    • 参与者可能是人类用户。众所周知,用户不一定是理性的。因此,我建议表达有关系统而不是用户的后置条件。所以 ”向用户提供了优惠券列表”。

    重要的是要意识到 «include»«extend» 依赖并不意味着初始用例已经完成。如果在See all vouchers 中包含标记或检查(即总是发生)或扩展该用例(即有时可能发生),则See all vouchers 将继续,直到该用例完成,即所有包含和扩展的使用-案件也结束了。

    【讨论】:

      猜你喜欢
      • 2019-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-06
      • 1970-01-01
      • 2011-07-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多