8.1 UML包和命名空间;包符号;包及其内容 2021-12-08

 OCUP 2 UML 2.5
P128

 8. 

8.1  包的符号

PACKAGE 的 UML 符号。 形状是一个长方形的体,左上角有一个标签。 如果我们不想显示任何内容,我们将包的名称放在中间,见图 8.1。

8.1.1 包及其内容

如果我们确实想显示包的内容,我们用我们希望描绘的图表元素替换居中的名称,将名称写到选项卡上,见图 8.2。在图中,我们将 Package MyPackage 显示为包含 Book 和 Book (myBook) 的一个实例

作为一个视图,包可以显示包中的许多其他元素,当前未在图中显示,由建模者选择。 我们几乎可以将任何东西放入 Package 中; 包不能包含的唯一内容是名称冲突的元素,因为包是名命空间,不允许重复名称。

类也是一个命名空间,它有一组属性(参见图中的类符号 Book),每个属性都有一个名称。 此外,属性或操作不允许重名(在大多数情况下)。 属性操作是类的成员,因为包中的元素是包的成员。



显示包的第三种方式使建模者可以更灵活地安排图表。在这种方法中,如图 8.3 所示,我们使用“ O ”符号将包符号连接到拥有的元素。在 UMI 中,我们使用 "O" 表示包或命名空间包含,将命名空间连接到单个命名空间成员。这种方法可以垂直或水平呈现,以树样式(如下所示)或单独或共享的“&”符号(如下所示)呈现。


所有这些包图都显示了包定义和拥有的模型元素。 由于一个元素只能在模型中定义一次,因此这些图没有多重性。 连接线不是关联; 它只是直接合并方法的简写。 Package MyPackage 包含(一个且唯一的)Class Book 和实例 mybook 的定义,因此不适合显示任何多重性。 我们可以在任何指明命名空间和包含的元素的地方使用“&”符号,尽管大多数工具只允许使用包和类似的元素。

UML 有另一种表示包及其成员元素的方式——让人联想到一个类,显示它自己的成员。 我们可以显示带有内部成员列表的包,如图 8.4 所示。 我们添加了另一个包 YourPackage 作为 MyPackage 的新成员。




8.1.2    包图


在上面的例子中,我们展示了独立的包。 在UML中,也可以绘制描述相同情况的图表,我们在图8.5中展示了图表方法。

This figure a Package Diagram (because it shows Packages in the diagram)that shows thecontents of the Package MyPackage. If we did not show YourPackage member in the diagram, we might classify the figure as a Clase Diagram that depicts thecontent of MyPackage Package. Remember that the diagram header "pkgMyPackage" indicates that the diagram is a Package Namespace whose name isMyPackage. The type of diagram is mainly determined by the preponderance of Elements.

这个图是一个包图(因为它在图中显示了包),它显示了包 MyPackage 的内容。如果我们没有在图中显示YourPackage 成员,我们可能会将图归类为描述 MyPackage 内容的类图 包裹。 请记住,图标题“pkg MyPackage”表示该图是一个名为MyPackage 的包命名空间。图的类型主要由元素的优势决定。


8.1.3 统一资源标识符


一个包可能有一个可选的 URI(统一资源标识符)与之关联。 此 URI 是任何字符串,但旨在成为标识包的位置和访问协议的唯一不变字符串。 实际上,URI 用于配置管理 (CM) 目的。 如果您将 CM 工具与 UML 工具一起使用,请查阅 CM 功能以确定这是如何工作的。 通常,您会看到类似文件描述符的内容指向 XMI 文件,后跟 # 和被引用包的名称。 我们在图 8.6 中显示了示例位置和格式。

但是,URI 是可选的,即使在使用时,它也不必是可取消引用的,尽管它应该是唯一且不可更改的。 如果两个包具有相同的 URI,它们应该是同一个包。 通过使用相同的 URI,不同的模型数据库或不同的UML 工具可以共享包,跨模型或版本,如果工具供应商已经实现了这个特性。



重点:

命名空间要求其元素具有唯一且可区分的名称。

包是一个命名空间。

类的隔间是一个命名空间。

包符号看起来像一个文件夹,左上角有一个选项卡,其中包含包的名称。

包的内容,如果没有省略,可能是

以图形方式显示在包体内

在包正文中以文字形式列出

在包侧使用以 a 开头的行连接到包

显示在图表中,图表标题中包含包名称。

一个包可以有一个 URI,它应该是一个唯一的不可更改的字符串,用于启用 CM 或跨项目共享。

你可能感兴趣的:(8.1 UML包和命名空间;包符号;包及其内容 2021-12-08)