如何在用例图中显示对象的条件

问题描述

我主要是一个自我思考的开发人员,我正在尝试学习一些如何使用 UML 和用例图、类图等正确设计和规划软件项目的概念。 在这个用例图示例中,我想展示为索引卡应用程序创建索引卡的用例。 这方面的史诗是:

作为用户,我想创建和更改包含问题和答案的索引卡,创建后应将它们分配到一个类别。只有为卡片创建了问题和答案后,卡片才能被保存并分配到一个类别。 此外,应该可以在索引卡的答案或问题一侧添加图片

这是我想出的图表:

enter image description here

我现在担心的是我不知道如何显示以下条件:“只有当为卡片创建问题和答案时,卡片才能保存并分配到类别在这张图中。 如果能得到关于这个“问题”的一些建议,以及如何更好地规划软件项目的总体建议,那就太好了。

编辑:新解决方案:我在示例中使用了前置/后置条件

enter image description here

解决方法

警告,每次执行包含 UC 时都会执行包含 UC 的行为。来自 formal/2017-12-05 § 18.1.3.3 包括

Include 是两个 UseCase 之间的 DirectedRelationship,表示被包含的 UseCase(即 add )被插入到包含用例(包括用例)的行为中。它也是一种 NamedElement 所以 它可以在其拥有的 UseCase(包括Case)的上下文中具有名称。包含的用例可能取决于 通过执行包含的用例产生的更改。包含的用例必须可用于以下行为 包含的用例要完整描述。

Include 关系旨在在两个或多个 UseCases 的行为存在共同部分时使用。 然后该公共部分被提取到一个单独的用例,由具有该部分中的所有基UseCases被包括 常见的。作为主要使用的包含关系是公共部分的重复使用,剩下在碱用例是 通常本身并不完整,但取决于包含的部分才有意义。这反映在 关系,表明基础 UseCase 依赖于添加,但反之则不然。

所包括的用例的行为的所有被在单个位置在包括用例的执行之前执行 包含的用例被恢复。

因此,在您的情况下,每次 创建索引卡 执行时也是 创建问题创建答案 和 分配给新类别或现有类别,并且创建问题创建答案附加照片 > 这样一个被执行两次。

当然对于编辑索引卡也是一样的,每次都执行包含的UC,并且更改或附加照片执行两次。

这不是你想要的,所有的UC都是分开执行的(创建问题不是在创建索引卡等过程中完成的)然后所有的包含必须是已移除。

只有当该卡的卡可以被保存和分配被创建以一个类别的提问和回答一个

必须已经创建问题和答案的事实是前提,它们不像您那样包含在 UC 中。

前置/后置条件是 UC 描述的一部分,来自 formal/2017-12-05 § 18.1.3.1 用例和参与者第 640 页:

一个用例的行为,可以通过一组行为(通过其ownedBehavior关系)所描述的,如 互动,活动和StateMachines,以及由前置条件,后置条件和自然语言文字 在适当的情况下。

,

我认为您陷入了功能分解的陷阱。在你能想到的所有函数周围画上省略号会导致不是一个好的用例模型。

第二种解决方案要好得多。每个用例现在都有一个目标,即对利益相关者或参与者有价值。也许除了Assign Category。在您的第一个解决方案中,这是 Create Index Card 的一部分,它可能属于它。

用例分析的真正价值在于帮助您找到您一开始没有想到的功能。用例图中没有显示这些功能。正如您在第二个解决方案中所做的那样,它们以文字形式进行了描述。其他作者使用某种行为图。例如,前提条件可以在那里显示为决策节点上的条件。

可以在用例之间的扩展关系上显示条件,但我强烈建议不要使用此功能。是的,使用它们可以在用例图上显示替代流程,但有一些图表更适合描述这一点。

在替代流程中,通常会找到有趣的功能。如果打印机没有索引卡会发生什么。在这种情况下放弃目标可以吗?或者您的系统是否需要 detect paper refill 函数,以便在检测到纸张后立即开始打印卡片。