微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

系统间关系的UML包图

如何解决系统间关系的UML包图

我有这个简单的图,它不遵循任何类型的 UML 图。它的目标是展示我们解决方案的所有部分,以及它们之间的关系。

图片中:网络爬虫抓取一些网站中的数据并将其存储在数据库中。 Web 应用程序接收过滤器选项并使用 Rest API 实现它,该 API 返回一些要以 xlsx 和 csv 格式导出的数据。 API 使用由网络抓取工具填充的数据库

original diagram of a web scraping tool with a web interface

我需要使用 UML 用上面突出显示的过程制作一个新图表。我有一个使用包图的建议,所以我做了这个版本:

enter image description here

编辑:在图像中:字体 -> Web Scraper -> 数据库 -> Api(过滤器(过滤器类型)) -> 前端(结果,搜索选项) -> 用户>

这是制作包装图的正确方法吗?我找不到此案例的类似示例或具体规则。

解决方法

包是否是满足您需求的正确建模工具?

Packages 是命名空间,旨在构建模型。因此,包图并不表示具有数据流(动态行为)的过程。包之间的关系是命名空间关系,例如 «imports» 和 «merges» 以及依赖项。

您的包图肯定显示了使用嵌套包对您的设计进行的一些有效分解。但您通常不会代表用户 (usario) 或来自数据库 (Banco de dados) 的数据流 (dados)。

UML 中有哪些更好的替代方案?

你的初始图表显示在一张图片中,使用了一些流程图符号,非常不同的东西:

  • 对象的概念类,例如字体、过滤器或文件
  • Web 抓取工具、数据库、前端、后端等组件
  • 对象流,例如为后端查询的数据库提供数据的网络爬虫,或者前端提供过滤器和提供数据的后端之间的交互。

如果您想在 UML 中表示这一点,您需要澄清重点,因为 UML 需要一定的精度,因为它将结构和行为分开。答案取决于您要显示的内容:

  • 流程和数据流?使用 activity diagram(行为)。这非常适合展示从源头到最终结果的流程,但不那么容易展示所涉及的系统部分。
  • 组件之间的关系?使用 component diagram(结构)。这非常适合识别组件、它们是如何嵌套的以及它们的接口是如何连接的。但它没有显示所有这些发生的顺序。
  • 组件之间的交互?使用 communication or sequence diagrams(行为)。在这里,您可以看到组件按什么顺序交换的内容,但不太清楚组件的结构。

自发地,我会选择组件,因为我觉得这在您的原始图表中占主导地位。但最后,您可能会使用不同的图表来显示不同的方面。

其他选择

如果您正在寻找一个单一的图表来结合原始图表的不同想法,而不是 UML,您可以考虑使用 C4 model 图表。

它不如 UML 精确,但对于传达系统架构的大图非常方便。 paticula 中的 C4 上下文图和 C4 容器图可以显示系统的主要组件,以及它们之间的一些高级关系(包括数据流)。

好消息是 C4 依赖 UML 来对已识别组件进行更详细的设计。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?