任务:构造用例模型
在此任务中构造用例模型,使需求更容易理解和维护。这包括利用用例和参与者之间的通用需求,以及确定可选行为和异常行为。
规程:需求
用途

此任务的目的是:

  • 抽取需要视为抽象用例的用例中的行为。举例来说,这些行为包括通用行为、可选行为、异常行为和要在后来的迭代中发展的行为。
  • 查找用于定义数个参与者的共享角色的新的抽象参与者。
关系
角色主执行者: 其他执行者:
输入必需:
    可选:
    输出
      流程使用情况
      步骤
      确定通用需求

      构造用例模型的第一步是了解多个用例通用的需求。复审每个用例,记录任何通用需求。

      在以后的步骤(创建包含的、扩展的和泛化的用例)使用这些记录,将冗余度降到最低。目标是让需求更容易理解、更容易维护,而不定义带入设计中的功能分解。

      创建新的用例并非总是处理通用需求的最佳办法。请考虑将通用的内容移入其他需求工作产品(例如,词汇表补充规范),并按需要从用例中引用。

      建立用例间的包含关系

      如果用例包含的行为段中只有结果(不是获得结果的方法)对其余用例有意义,该行为就可以归到新的包含用例中。 然后原始用例就成为与包含用例之间存在包含关系的基本用例。另请参阅指南:用例模型指南:包含关系

      两个用例间的包含关系意味着遵照基本用例的说明的用例实例还需要遵照包含用例的说明才能完整。

      包含关系可以通过以下方法帮助澄清用例:

      • 隔离和封装复杂的细节,这样这些细节就不会掩盖用例的真正意义了。
      • 通过包含数个基本用例包含的行为来提高一致性。

      一般情况下,多个用例必须包含一个包含用例,才值得维护一个额外的用例和包含关系。

      只有基本用例知道两个用例间的关系;包含用例不知道其他哪些用例将它包含了。

      描述包含关系:简单陈述包含的目的以及基本用例中要插入包含的位置。

      在描述基本用例的事件流程时,您应该参考插入了包含的位置上的包含。

      建立用例间的扩展关系

      如果用例的一些行为段在特征上是可选的或是例外的,并且不会增强对用例的主要目的的理解,请将这样的用例归到新的扩展用例中。然后原始用例就成为基本用例,扩展用例与它是扩展关系。另请参阅指南:用例模型指南:扩展关系

      在基本用例中,您声明扩展点,扩展点定义基本用例中可以作出扩展的位置。另请参阅指南:用例

      首先考虑将复杂的子流程和可选的行为分到扩展用例。 这种行为通常可能很复杂、很难描述:将其包含在用例的事件流程中会使“正常”的行为难以看见。 将其抽取出来应该能提高用例模型的可理解程度。

      请确保基本用例的事件流程不引用扩展用例时自己仍然完整,仍然可以理解。

      只有扩展用例知道两个用例之间的关系。基本用例只知道它有扩展点,而不知道使用这些扩展点的是哪些扩展用例。

      简单描述您定义的每个扩展关系。定义发生扩展必须满足的条件。确保在基本用例中定义了应该插入扩展的扩展点。

      • 如果您不定义任何条件,就意味着总是执行扩展。 
      • 如果扩展用例有数个行为段要插入到基本用例中不同的扩展点,请确保定义这些行为段以及在基本用例中为每个段定义扩展点。
      建立用例间的泛化关系

      如果两个或多个用例在结构和行为上有相似点,就可以归纳出这些通用行为来创建新的父用例。然后原始用例就成为与父用例之间存在泛化关系的子用例。子用例继承为父用例描述的所有行为。另请参阅指南:用例模型指南:用例泛化关系

      两个用例间的泛化关系意味着遵照子用例的说明的用例实例还需要遵照父用例的说明才能认为是完整的。

      一般情况下,要值得维护父用例以及它与子用例的泛化关系,就需要至少有两个子用例继承同一个父用例。例外的情况是:您有两个用例,其中一个是另一个的特殊化,但是两个都需要可以单独实例化。

      只有子用例知道两个用例间的关系;父用例不知道哪些子用例将它特殊化了。

      要帮助其他人理解模型,就应该简单描述泛化关系。请说明您为什么创建了泛化关系。

      在子用例的事件流程中,您需要说明子用例将如何通过插入新的行为段来修改继承的行为序列。

      建立参与者间的泛化关系

      参与者会有通用的特征,您应该使用参与者泛化关系来构建模型。当您在用例模型中进行了最初的尝试后,这部分工作将得到最佳执行。

      简单说明参与者泛化关系,并将它们包含在用例图中以便进一步澄清。

      关于更多信息,请参阅指南:参与者泛化关系

      将用例模型内容组织到包中

      如果用例模型中具有大量元素,则可考虑将用例组织到用例包中。请参阅指南:用例包,以获取何时考虑此选项的更多信息。

      评估结果

      您应该与客户和用户不断讨论包含关系、扩展关系和泛化关系的并入,并确保他们对结果用例和参与者有清晰的了解,并确保他们同意其说明。

      请在这个阶段检查用例模型来验证您的工作是否在正确的轨道上,但不要详细复审模型。您应该与客户和用户一起复审和讨论新并入的用例和关系,从而让他们对用例有清晰的了解并同意用例的说明。

      对于复审期间查找内容的特定建议,请参阅核对表:用例模型

      关键注意事项

      为了支持用例模型的复审,您可能需要生成一个用例模型调查报告。 关于更多信息,请参阅报告:用例模型调查工具向导:使用 Rational SoDA 创建用例模型调查

      更多信息