在UML中将类图分离为包

时间:2016-08-15 12:03:45

标签: oop uml class-diagram staruml

我正在使用类图绘制一个软件,我现在想要将它们分成包图中的包。

我的问题是:你如何表示来自两个不同包的类之间的连接?

例如,我的'Database'包中有一个类连接到我的'View'包中的另一个类。但是,如果我将它们分成两个单独的类图(每个包一个),则不会表示该连接。这没关系吗?

3 个答案:

答案 0 :(得分:0)

包只是分组UML元素的一种方式,它们主要不暗示元素本身之间的关系。要显示元素之间的关系,只需将它们连接起来,与它们放在包中的位置无关。当然,包内的元素关系应该多于外部的关系。包中的元素表明它们之间的关系比外部元素更强。

您可以在包级别的顶部显示包层次结构。

当您在包中创建图表时,您可以创建不同的类型:纯粹的包内部,例如外部关系或混合。这取决于哪种方式最适合。

答案 1 :(得分:0)

包的一个很好的用法是在域图表中显示不同问题空间之间的依赖关系。每个问题空间都由一个包表示。包通过依赖行连接。这意味着每个包都公开了通过依赖项相关的包的接口。

听起来像你有一点域污染。也许数据库不应该知道该视图。也许应该有一个控制器来读取数据库并更新视图。访问包中功能的类将访问包接口。

这种技术在系统设计中的优势在于,这种封装和解耦使得更改一个类中的内部结构变得更加容易,而不会在系统中波动。

答案 2 :(得分:0)

在一张图上展示各种包装的元素绝对没问题。在这种情况下,您应该记住该包创建了一个名称空间,因此应该为元素提供一个限定名称。请注意,如果为包A中的元素创建类图,则只需对来自其他包的元素使用限定名称(例如包B)。