UML和java类

时间:2010-12-29 14:44:46

标签: uml

我确实需要你的宝贵帮助。 几个星期前,我开发了一个Java小程序。 可能是一个错误的方法,但我并没有考虑到UML的问题,而是基于一个给定的想法我 构建了一个功能齐全的软件,符合预期。

程序本身由两个类和几个方法组成。

现在我需要绘制相应的UML类图,对我来说这似乎是一个非常棘手的问题。

由于UML类图旨在显示类之间的源代码依赖关系,我想知道 我如何根据以下代码绘制类图。

............................................... ..................

import javax.swing.JPanel;     WavPanel类扩展了JPanel {

        List<Byte> audioBytes;
        List<Line2D.Double> lines;

        public WavPanel() {
            super();
            setBackground(Color.black);
            resetWaveform();
        }

        public void resetWaveform() {
            audioBytes = new ArrayList<Byte>();
            lines = new ArrayList<Line2D.Double>();
            repaint();
        }
}

............................................... .................

简而言之,WavPanel类是继承的一个例子。 JPanel类(包的一部分)充当超类。 我该如何解决这个问题? 我担心的是,JPanel是一个包的一部分。

此外,为了绘制一个好的类图,我错了 我想我可能先做UML图然后再编写 相关代码?

我写了几个方法(而不是类)和几个类, 这可能是UML的问题吗? 如果是这样,那将意味着再次重新设计整个软件。

提前致谢。任何帮助将受到高度赞赏。

2 个答案:

答案 0 :(得分:1)

是的,您应该在编程之前始终进行规划。但是,一切都不会丢失。

您仍然可以在UML中使用JPanel,只显示使用JPanel的子类的继承(使用白色菱形)。我喜欢使用UMLet绘制我的所有UML图,特别是因为(将来,当你首先执行UML时),你可以将图表导出到Eclipse中!

方法及其参数在UML图中的类中指定。你并不真正关心每个方法对于类图的作用,只是它的大部分特征。专注于展示类之间的关系,即使它们是库。不要担心库中的所有单个方法,但某些API可能已经处理过了。

您是否需要有关UML本身的更多帮助?让我知道,我可以添加这个答案来澄清您对UML的任何其他问题,或咨询this Wikipedia article on class diagrams

答案 1 :(得分:1)

你没有正确考虑UML。

如果您的应用程序有效,那么UML导致您遇到困难的事实不应该成为一个问题。

UML是一种通信符号,仅此而已。

在编码之前不要求使用UML。 UML根本不是必需的。需要思考。如果创建UML可以帮助您思考,请务必去做。但这不是必需的。

您的解决方案很简单:将JPanel导入UML模型并将继承添加到类图中,或者为图表创建替身。

  

该计划本身包括两个   课程和几种方法。

不,该程序包含两个由您编写的类以及几个核心Java类(例如,JPanel,List等)。您是否建议在类图中包含每个类,甚至Java核心都很重要班?我不同意这一点。也许注意到你的WavPanel继承自JPanel会很有用,但我不会将java.lang.String添加到我创建的任何UML图中。

我不认为UML值得为包含五个或更少类的解决方案付出努力。那些我可以留在我脑海里的人。当我遇到比五个类更大的问题时,UML往往会提供更多帮助。