3

我正在为图书馆管理系统创建一个用例图。我有一个“登录”用例,每个演员在进入其他用例之前都应该这样做。换句话说,我想表明“登录”用例是其他用例的先决条件。有谁知道如何展示这个?谢谢

4

3 回答 3

8

有几种方法可以做到这一点:

  1. 使用<<include>>关系,其中每个 UC<<includes>>登录作为第一步
  2. 在用户必须登录的每个 UC 上设置先决条件
  3. 创建一个名为“登录用户”(或类似名称)的 Actor,并显示与它相关的所有用例。

您选择哪个取决于许多因素。(1) 简单直观,但如果您有很多用例,则无法在图表上很好地扩展。(2) 如果您以文本形式记录用例,则效果很好——但不会出现在图表上。(3) 可能不是传统的,但可以提供比 (1) 更多的可扩展性,同时仍然可以在图表上查看。但是,如果您有多个 Actors,则它会崩溃,每个 Actors 都必须登录才能执行其 UC。

我个人倾向于使用(2)。如果我需要一个 UC 图表,我将在其上包含一个“登录”UC,但不会显示它与其他 UC 的关系。

我不推荐的一个选项是<<extend>>关系,每个 UC<<extends>>都是登录 UC。它在语义上并不真正起作用,并且遇到与上述 (1) 相同的可伸缩性问题。

hth。

于 2010-12-10T10:01:28.603 回答
1

<<includes>>在这种情况下,关系的替代方案是<<precedes>>依赖关系。这使得登录必须在用例之前而不是简单地发生在用例期间的某个时间点变得更加清晰。

Enterprise Architect 在其用例工具箱中包含了这样一个原型依赖,但您也可以创建自己的原型依赖。关于此的 EA 文档指出:

调用前置关系由开放建模语言 (OML) 定义。它们是刻板的依赖关系;Invokes 表示用例 A 在某些时候导致用例 B 发生,而 Precedes 表示用例 C 必须在用例 D 开始之前完成。

您可能不想在您的 UML 中引入 OML 惯用语,但该功能完全符合您的要求,并且在图表级别可见。

于 2010-12-13T13:30:54.717 回答
0

UC 有很多用途,但最重要的是用于交流。如果您开始在 UC 图表上使用关系,您的沟通优势就会下降一个档次。与在每个 UC 等中复制粘贴前提条件“用户 X 必须登录”相同。

最重要的是,UC 并不是完整的系统规范。所以简单地把它放在别的地方,例如:

  • 作为总体系统规则列表中的一项规则

  • 作为“用户访问权限”规范部分中的表格

于 2012-06-11T12:43:13.463 回答