0%

什么是包图

该篇文章是UML知识的扩充。

什么是包图

源文连接:https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-package-diagram/

包图是一种结构图,显示了中大型项目中模型元素的排列和组合。包图可以显示子系统或模块之间的结构和依赖关系,显示系统的不同视图。例如,多层应用程序模型。

img

一、包图的用途

包图用于构建高级系统元素。包用于组织包含图表,文档和其他关键可交付成果的大型系统。

  • 包图可用于简化复杂的类图,它可以将类分组到包中。
  • 包是逻辑上相关的UML元素的集合。
  • 包被描述为文件夹,可以在任何UML关系图上使用。

二、包图概览

包图用于简化复杂的类图,可以将类分组到包中。包是逻辑上相关的UML元素的集合。

下面是一个业务模型,其中类被分组到包中:

  • 包显示为矩形,顶部有小选项卡。
  • 包名称位于选项卡上或矩形内。
  • 虚线箭头是依赖项。
  • 如果另一个包中的更改可能会强制更改一个包,则一个包依赖于另一个包。

img

三、包图的基本概念

包图遵循嵌套包的层次结构。嵌套包的原子模块通常是类图。使用包图时几乎没有约束,如下图所示。

  • 对于系统,包名不应相同,但不同包中的类可以具有相同的名称。
  • 包可以包含整个关系图、单独的组件名称或根本不包含组件。
  • 包的完全限定名具有以下语法。

Name owing the package::Name of the package

java::util::Date

包可以用符号标识,下面展示了一些示例:

img

四、包图的依赖关系表示法

依赖关系中涉及两个子类型。它们是<<import>><<access>>。尽管有两种构造型,但用户可以使用自己的构造型来表示两个包之间的依赖关系类型。

4.1 包图示例-导入

<<import>>一个包导入其他包的功能。

img

4.2 包图示例-访问

<<access>>一个包需要其他包的功能的帮助。

img

五、建模复杂分组

包图通常用于描述包与其他包或对象之间的层次结构关系(分组)。包表示命名空间。

包图示例:分层结构

img

六、包图示例

6.1 订单子系统

img

6.2 订单处理系统

img

订单处理系统-问题描述:

我们将为在线购物商店的“跟踪订单”方案设计包图。跟踪订单模块复杂为客户订购的产品提供跟踪信息。客户在搜索中填入订单序列号,跟踪订单模块调用系统并向客户更新当前发货状态。

识别系统的包

  • 有一个跟踪订单模块,他必须与其他模块交流才能了解订单详细信息,姑且称之为“订单详细信息”。
  • 接下来,在获取订单详细信息后,它必须了解运输详细信息,让我们将其称为“运输”。

img

确定系统中的依赖关系

  • 跟踪订单应从“订单详细信息”中获取订单详细信息,并且“订单详细信息”必须知道客户提供的跟踪信息。两个模块相互访问,这是<<access>>双重依赖关系。

img

  • 要了解运输信息,“运输”可以导入“跟踪订单”以使导航更容易。

img

  • 最后,还映射了跟踪订单与UI框架的依赖关系,这完成了订单处理子系统的包图。

img

-------- The End Thanks For Reading --------