UML和代码关系

时间:2017-04-29 12:55:35

标签: java java-ee design-patterns uml

据我所知,UML的主要目标是沟通。 UML打算提供一个系统的设计,Code确实是系统的实际构建块。

我的问题是,如果代码与uml相互直接镜像。让我解释一下:

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

包ShowTimesFrUSA;

我想用程序包图表来展示我的程序与UML的设计。但是,我已经将我的类划分为不同的包,与编码方式不同。包:UI (AWT and Swing) , Controllers, Moviemonitor, MovieService, USAmovies <<server>>

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

2 个答案:

答案 0 :(得分:2)

  

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

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

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

此外,听起来你现在根本没有使用package语句,即你的代码存在于无名默认包中。除了一次性玩具代码之外,这是一个不好的做法,因为它会导致一些问题。首先,不可能使用其他使用包的代码中的代码。

我认为潜在的问题可能是你误解了UML包。它们实际上不是一个抽象的标记,表明一个类是例如UI类或Controller。这就是UML的刻板印象。

答案 1 :(得分:0)

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