【问题标题】:Separating class diagram into packages in UML在 UML 中将类图分成包
【发布时间】:2016-12-21 15:19:32
【问题描述】:

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

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

例如,我的“数据库”包中有一个类,它连接到“视图”包中的另一个类。但是,如果我将它们分成两个单独的类图(每个包一个),则不会表示该连接。这样可以吗?

【问题讨论】:

标签: oop uml class-diagram staruml


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    在我看来,您的域名有点污染。也许数据库不应该知道视图。也许应该有一个控制器来读取数据库并更新视图。访问包内功能的类将访问包接口。

    这种技术对系统设计的好处在于,这种封装和解耦可以更轻松地更改一个类的内部结构,而不会影响系统。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-01-04
        • 1970-01-01
        • 1970-01-01
        • 2012-03-18
        • 2011-08-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多