【问题标题】:UML and java classesUML 和 java 类
【发布时间】:2010-12-29 14:44:45
【问题描述】:

我确实需要您的宝贵帮助。 几周前,我用 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();
        }
}

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

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

此外,为了画好类图,我错了吗 想也许我必须先做 UML 图,然后再写 关联代码?

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

提前致谢。任何帮助将不胜感激。

【问题讨论】:

    标签: uml


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 非常感谢。其实我真的需要更多帮助。
    • 非常感谢。其实我真的需要更多的帮助。如果有人能看一下我的代码(我的意思是整个程序代码)并帮助我绘制类图,我会非常高兴。我的理解是,在编写代码之前使用 UML 总是可取的,但实际上我做了相反的事情......不幸的是!现在我没有时间编辑整个代码以满足 UML 要求。我的电子邮件地址是:qxc@operamail.com 谢谢
    • 我很乐意为您提供帮助。稍后我会给你发一封电子邮件。
    【解决方案2】:

    您没有正确考虑 UML。

    如果您的应用程序工作正常,那么 UML 给您带来困难的事实不应该是一个问题。

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

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

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

    程序本身包含两个 类和几种方法。

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

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

    【讨论】:

    • +1:UML 建模是关于思考问题并传达解决方案——仅此而已。在编写代码很久之后,创建一个 UML 模型来推理现有代码同样有用。
    • 听起来他需要它,无论是项目经理、同事还是教授?...我的印象是,他不仅仅是为了更好地理解他的代码,而且他没有意识到这是某些高层期望的一部分,现在正争先恐后地抓住它。想法?
    猜你喜欢
    • 2017-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-14
    相关资源
    最近更新 更多