uml - 正确指定主要/次要参与者(UML 用例图)

标签 uml use-case use-case-diagram

考虑以下情况:

我有一个网络服务,可以提供有关网上商店订单的信息。在另一台机器上有一个 Windows 服务,它每小时从 Web 服务中检索一次订单并将数据写入数据库。使用 Windows 服务而不是计划任务,因为它提供了一个 tcp 端点,因此客户端可以手动(使用简单的桌面应用程序)命令该服务检索特定顺序的数据。

我不确定我必须在哪里放置 Windows 服务。它是在给定时间间隔内调用 Web 服务的主要参与者,但它是次要参与者,因为它对客户端的命令使用react。

我应该如何继续为这个场景创建用例图?

最佳答案

答案取决于您认为自己的系统是什么。

一个系统

如果您的系统同时包含 web 服务和 windows 服务作为您(多层)系统的一部分,那么两者都不是参与者。 Windows 服务提供的功能将是一个(或多个,取决于服务的复杂性)用例。如果您假设 webservice 它可能成为第二个用例,它包含在 windows 服务中(一种罕见的情况,但在这里有效)。

这些零件是单独加工的这一事实并没有改变任何事情。数据库有它的独立机器是一种常见的方法,但没有人合理地认为它与系统本身是分离的。

两个系统

如果您将 Windows 服务视为一个单独的系统,那么您实际上会有两个用例图,每个系统一个。

在这种情况下,Windows 服务的用例图将客户端作为主要参与者,将包含 Web 服务的系统作为次要参与者。

在具有 web 服务的系统的用例图中,您的主要参与者将是 windows 服务系统(再次作为一个整体,而不是服务本身)。在此图中,根本没有描绘客户端,因为它不与系统交互。

作为系统的组件

即使您将 windows 服务和 web 服务都视为一个系统,您仍然可以描述组件的用例而不是整个系统。在这种情况下,方法将类似于使用两个系统的情况。

关于uml - 正确指定主要/次要参与者(UML 用例图),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56239702/

相关文章:

java - 如何在 uml 中显示返回字符串数组的方法?

java - Java 动态代理与常规代理的有用性

uml - 为什么我们在给定图中删除单个 <<include>>

java - 将项目从一个表重新插入到另一个表的 SQL 逻辑?例如, Activity 记录变为非 Activity 记录

bpmn - 以编程方式绘制 BPMN 2.0 流程的 API 或代码 + C#

uml - 包含/扩展的用例可以由另一个参与者发起吗?

uml - UML 2 中的协作图与复合结构图

php - Magento 的类图

inheritance - 修复用例图 : actor boundaries and generalization

uml - 想要从 UML 2.0 序列图中获取线性时序逻辑规范的工具