UML和java类

UML和java类,uml,Uml,我确实需要你的宝贵帮助。 几周前,我用Java开发了一个小程序。 可能是一种错误的方法,但我并没有在脑海中用UML来解决这个问题,而是基于一个给定的想法,我 构建了一个功能齐全的软件,达到了预期的效果 程序本身由两个类和几个方法组成 现在我需要绘制相应的UML类图,这对我来说似乎是一个非常棘手的问题 由于UML类图旨在显示类之间的源代码依赖关系,我想知道 如何基于以下代码绘制类图 徖 导入javax.swing.JPanel; 类WavPanel扩展了JPanel{ List&l

我确实需要你的宝贵帮助。 几周前,我用Java开发了一个小程序。 可能是一种错误的方法,但我并没有在脑海中用UML来解决这个问题,而是基于一个给定的想法,我 构建了一个功能齐全的软件,达到了预期的效果

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

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

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

导入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();
        }
}
列出音频字节;
列出行;
公共事务委员会(){
超级();
挫折背景(颜色:黑色);
重置波形();
}
公共文件无效(){
audioBytes=新的ArrayList();
行=新的ArrayList();
重新油漆();
}
}

简而言之,WavPanel类就是继承的一个例子。 JPanel类(包的一部分)充当超类。 我怎样才能解决这个问题? 我关心的是JPanel是一个类,它是包的一部分

此外,为了画一个好的类图,我在 我想也许我必须先做UML图,然后再写 关联代码

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


提前谢谢。非常感谢您的帮助。

是的,您应该在编程之前做好计划。然而,一切都没有失去

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

方法及其参数在UML图中的类中指定。您并不真正关心每个方法对类图的作用,只关心其大部分特性。关注显示类之间的关系,即使它们是库。不过,不要担心库中的所有单个方法……某些API可能已经解决了这一问题


你需要更多关于UML本身的帮助吗?让我知道,我可以添加到这个答案中,以澄清关于UML的任何其他问题,或者参考。

您没有正确地考虑UML

如果您的应用程序工作正常,那么UML给您带来困难这一事实就不应该引起关注

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

编码之前不需要进行UML。UML根本不是一个需求。需要思考。如果创建UML有助于你思考,那么一定要这样做。但这不是必需的

您的解决方案很简单:要么将JPanel导入您的UML模型并将继承添加到类图中,要么为类图创建一个替代项

该计划本身由两部分组成 类和几个方法

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


我不认为UML对于一个由五个或更少类组成的解决方案是值得的。那些我能记住的。当我遇到一个比五个类更大的问题时,UML往往帮助更多。

+1:UML建模是关于思考一个问题并传达解决方案的过程——不多也不少。在编写代码很久之后,创建UML模型对现有代码进行推理同样有用。听起来他需要它,无论是项目经理、同事还是教授?…我得到的印象是,他不仅仅是为了更好地理解自己的代码,但他并没有意识到这是一些高层的期望的一部分,现在他正争先恐后地抓住它。想法?非常感谢。事实上,我真的需要更多的帮助。非常感谢。事实上,我真的需要更多的帮助。如果有人能看看我的代码(我指的是整个程序代码)并帮我画类图,我会非常高兴。我的理解是,在编写代码之前使用UML是明智的,但我实际上做了相反的事情……不幸的是!现在我没有时间编辑整个代码以满足UML需求。我的电子邮件地址是:qxc@operamail.com谢谢。我很乐意帮你。我马上给你发封电子邮件。