【问题标题】:UML and Code RelationshipUML 和代码关系
【发布时间】:2017-09-27 12:03:29
【问题描述】:

我了解 UML 的主要目标是交流。 UML 旨在提供系统设计,而代码实际上是系统的实际构建块。

我的问题是 uml 的代码是否应该直接相互镜像。让我解释一下:

  • 我正在开发一个使用 Web 服务来显示电影放映时间的 java 程序。
  • 到目前为止,我已经成功地使用 AWTSwing 制作了简单的 gui 来显示演出时间。
  • 该程序有 16 个类,我的一个朋友在 git 上扩展了我的代码,但他在所有类中添加了以下内容。

包 ShowTimesFrUSA;

我想向我的程序展示带有包图的 UML 设计。但是,我已经将我的类分成不同的包,不同于它的编码方式。包邮:UI (AWT and Swing) , Controllers, Moviemonitor, MovieService, USAmovies <<server>>

我只想在我的代码中显示类组之间的依赖关系,作为此演示文稿的要求的一部分,并且包图非常适合。但我不确定模型中的包是否应该直接反映包在 java 中的编码方式?

【问题讨论】:

  • 如果他们不这样做,那有什么意义呢? UML 并不重要。考虑它的更好方法是从 .java 源生成 UML。这样就同步了。但不要担心。没有人关心或考虑 UML 了。
  • 如您所说,UML 的目标是沟通。因此,请考虑您要发送的信息。如果您想解释代码中实际类的确切、精确的包、类和关系,请确保图表显示(尽管,恕我直言,直接查看实际代码会更好地了解代码做)。如果您想大致了解架构是什么,请使用发送此消息的图表,因此不需要在代码中反映所有细节。

标签: java jakarta-ee design-patterns uml


【解决方案1】:

我不确定模型中的包是否应该直接反映包在 java 中的编码方式?

绝对是的。这就是 UML 包所要表达的意思。您如何看待代码是一个巨大的“上帝对象”类,但作者将其建模为 UML 中的几个不同的类?

如果您从概念上将代码划分为包,为什么不希望使用为此目的而设计的机制将其反映在代码中?

此外,听起来您目前根本没有使用 package 语句,即您的代码存在于无名的默认包中。除了一次性的玩具代码之外,这对于所有的人来说都是一个不好的做法,因为它会导致几个问题。一方面,不可能从其他使用包的代码中使用您的代码。

我认为潜在的问题可能是您误解了 UML 包。它们并不是真正意味着作为一个抽象标记来表明一个类是例如。 UI 类或控制器。这就是 UML 原型的用途。

【讨论】:

    【解决方案2】:

    当您开始考虑问题的解决方案并绘制类图进行交流时,您确实是在业务逻辑级别设计程序中需要的类。在这个级别,UML 和代码应该是同步的。当然,代码会有更多的信息,比如完整的实现方法。 在 UI 代码级别,通常 UML 类没有太多帮助或交流。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-04
      • 1970-01-01
      • 2013-03-10
      • 2014-08-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多