通过导入 CSV 执行各种功能的插件的 UML 用例图

UML use case diagram for a plugin performing various functions through importing a CSV

我正在创建一个在核心应用程序之上添加各种功能的插件。该插件使管理员能够上传 CSV 文件并根据文件中输入的信息执行以下功能(通过对核心应用程序的数据库执行操作):

我想为这个插件画一个UML用例图,但不知道应该去哪里,尤其是CSV文件的上传。我也对如何在这里绘制核心应用程序的角色感到困惑。在这种情况下,它唯一直接做的就是授权。该插件还通过对核心应用程序的数据库执行操作来执行这些功能,我想知道是否应该有一些来自创建用户的关联,例如因此。

我的其中一个尝试可以在这里找到:

在此先感谢您提供的任何帮助!

前言:我的回答基于 Bittner/Spence(和其他人),而非 UML 规范中的定义。


用例是关于所考虑的系统给主要参与者带来的附加值。您的系统有(看起来)三个用例

  • Create user(删除修改呢?)
  • Create project(此处相同)
  • Assigning user to project(也在这里)

这些是您的用例,仅此而已(根据我从您的解释中读到的内容)。您放在那里的所有其他气泡都来自功能分解,不是用例,而是(可能)用例内部活动中的一些步骤。直接扔掉。

参与者 Core Application 看起来像是在代表正在考虑的系统。如果是这样:把它扔掉,因为那是错误的。

Authorize 气泡(我猜)是您需要附加到用例的约束,这意味着您必须对数据库进行授权。这不是用例。

你的系统看起来像

现在您的插件仅使用现有用例并根据上传的 CSV 中的一些脚本来执行它们。所以这是一个新的用例。根据设计,这可能只是添加到现有系统的新用例。 UC 的名称可以是 Upload control file 来描述实际完成的工作。

如果您允许对系统进行某种动态扩展,情况就会不同。你可以这样设计:

Value added system只有"upload" UC并且使用核心系统作为actor。


为什么要无视规范?好吧,出于许多简单的原因:它没有用。这是一个纯粹的技术描述,并且您的 设计 最终会变成蜘蛛网。专注于附加值正是项目开始时所需要的。如果你没有,你从一开始就迷路了。有几个著名的作者在传播这种方法。我从 Bitter/Spence 那里学到了东西,从那以后发现它很有用。