系统间关系的UML包图

系统间关系的UML包图,uml,diagram,package-diagram,Uml,Diagram,Package Diagram,我有这个简单的图,它不遵循任何类型的UML图。它的目标是展示解决方案的所有部分,以及它们之间的关系 在图片中:网络刮板将一些网站中的数据刮去并存储在数据库中。web应用程序接收过滤器选项,并使用RESTAPI实现它,RESTAPI返回一些要以xlsx和csv格式导出的数据。API使用由web scraper填充的数据库 我需要使用UML,用上面突出显示的过程制作一个新的图表。我有一个使用包图的建议,所以我做了这个版本: 编辑:图像中:字体->网页刮板->数据库->Api(过滤器(过滤器类型)

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

在图片中:网络刮板将一些网站中的数据刮去并存储在数据库中。web应用程序接收过滤器选项,并使用RESTAPI实现它,RESTAPI返回一些要以xlsx和csv格式导出的数据。API使用由web scraper填充的数据库

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

编辑:图像中:字体->网页刮板->数据库->Api(过滤器(过滤器类型))->前端(结果、搜索选项)->用户

这是制作包图的正确方法吗?对于这种情况,我找不到类似的示例或特定规则。

包是适合您需要的建模工具吗? 是名称空间,旨在构造模型。因此,包图在中不表示具有数据流的流程(动态行为)。包之间的关系是名称空间关系,如«导入»和«合并»以及依赖关系

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

UML中更好的替代方案是什么? 您的初始图表使用一些流程图符号在一张图片中显示了非常不同的内容:

  • 对象的概念类,如字体、过滤器或文件
  • web刮板、数据库、前端、后端、
  • 对象流,如向后端查询的数据库提供数据的webscraper,或前端提供过滤器与提供数据的后端之间的交互
如果您想在UML中表示这一点,您需要澄清重点,因为UML需要一些精度,因为它将结构和行为分离。答案取决于您想要展示的内容:

  • 流程和数据流?使用(行为)。这非常适合显示从源到最终结果的流程,但不太容易显示所涉及的系统部分
  • 组件之间的关系?使用(结构)。这非常适合识别组件、组件的嵌套方式以及组件接口的连接方式。但它并没有显示所有这些发生的顺序
  • 组件之间的相互作用?使用(行为)。在这里,您可以看到组件按什么顺序交换,但组件的结构却不是很好
自然而然地,我会选择组件,因为我有这样一种印象,即它主导了原始图。但最终,您可能会使用不同的图表来显示不同的方面

其他选择

如果你想找一个单一的图表来组合你的原始图表的不同想法,或者UML,你可以考虑图表。 它不如UML精确,但对于系统体系结构的整体图的交流非常方便。paticula中的C4上下文图和C4容器图可以显示系统的主要组件,以及它们之间的一些高级关系(包括数据流)


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

从外观上看,它看起来还可以。关于语义正确性我什么也说不出来。你说的是真的。虽然这个问题(标题)只是问系统之间的关系。不是关于任何过程。@qwerty_所以是的,系统之间的关系可以是结构化的,这在包图中以某种方式显示出来。但是打包图并没有准确地显示系统/组件之间的动态关系,特别是数据和过滤器的交换,这不能用包之间的依赖关系建模。它可以通过显示包中的组件及其接口来建模。我的观点是:在最初的非UML图中显示的系统之间的关系涵盖了UML中不同类型的关系,一个单一的图并不能涵盖所有;-)正如您所建议的,我最终使用了一个C4图,在以后的工作中,我可能会使用不止一个UML图。你的回答对我理解这些用法有很大帮助。谢谢你@WilianeSouza感谢您的反馈。我很高兴这有帮助!