一个用例是否可以包含和预先设定相同的其他用例?

Can a use-case include and precondition the same other use-case?

让我们以登录和添加项目为例作为项目管理系统的两个用例。 客户的要求是:(他needs/wants到:)

  1. 获得对系统资源的合法访问权限
  2. 添加项目(创建一个)。

我们也知道未经身份验证的用户不得使用该系统!

我的问题是:

1) “获得访问权限”是一个用例吗?其他用例的先决条件?或两者 ? (知道通过命名用例“Gain Access”而不是 "Logging in" 我想强调 需要 而不是 满足该需求的解决方案

2) 如果“Gain Access”是一个用例,“Add Item”用例包括“获得访问权限”用例 ?

用例依赖性:

顺序依赖

函数依赖

https://www.batimes.com/articles/use-case-preconditions-a-best-kept-secret.html

用例 必须产生商业价值。 "login"(或获得访问权限等)本身是否提供了商业价值?系统用户会 login 然后离开吗?可能不会。因此登录本身不是一个用例。它可以记录为用例中的一个步骤(如果您对解决方案足够了解并且愿意说)但要注意不要在用例中指定技术解决方案。你最好指定用户必须被识别到一定级别的身份验证并将其应用为先决条件等。

商业价值是关键。认识到商业价值是分析艺术和科学的一部分。例如,如果您不使用用例来建模需求,情况也是如此——例如"As a (role) in need to (action) so that (business value)" 形式的用户故事再次以业务价值为中心。最终,业务价值是任何功能需求的焦点,明确识别它应该是您的分析正在接近其目标的主要指标之一。

记住这一点 -- 顺序依赖性和函数依赖性。注意不要将系统的功能分解为不反映业务价值的单元。经常引用的 ATM 示例:Check Balance 是一个用例,Enter PIN 不是(出于上述原因)。但是,您可能希望在执行 提取现金 时始终 检查余额 。如果是这种情况,那么您可以使用 include 来表明 Withdraw Cash 包括 Check Balance ,但请注意,这两个用例本身都提供商业价值。