UML и Java-классы - PullRequest
       1

UML и Java-классы

1 голос
/ 29 декабря 2010

Мне нужна ваша ценная помощь.Несколько недель назад я разработал небольшую программу на 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 ]

1 голос
/ 29 декабря 2010

Вы не думаете о UML должным образом.

Если ваше приложение работает, то тот факт, что UML вызывает у вас трудности, не должен вызывать беспокойства.

UML - это коммуникационная нотация, ничего более.

Это не тактребование сделать UML перед кодированием.UML вообще не является обязательным требованием.Мышление обязательно.Если создание UML поможет вам думать, непременно сделайте это.Но это не обязательно.

Ваше решение простое: либо импортируйте JPanel в вашу модель UML и добавьте наследование к диаграмме классов, либо создайте замену для диаграммы.

Сама программа состоит из двух классов и нескольких методов.

Нет, программа состоит из двух написанных вами классов и нескольких основных классов Java (например, JPanel, List и т. Д.).) Вы предполагаете, что важно включить каждый класс в свои диаграммы классов, даже базовые классы Java?Я бы не согласился с этим.Возможно, было бы полезно заметить, что ваш WavPanel наследует от JPanel, но я не добавляю java.lang.String в какие-либо создаваемые мной UML-диаграммы.

Я не считаю, что UML стоит усилийРешение, которое состояло из пяти классов или меньше.Те, что я могу держать в голове.UML имеет тенденцию помогать больше, когда у меня проблема больше, чем пять классов.

1 голос
/ 29 декабря 2010

Да, вы всегда должны планировать перед программированием. Однако еще не все потеряно.

Вы все еще можете использовать JPanel в своем UML, просто покажите наследование (используя белый ромб) для подклассов, которые используют JPanel. Мне нравится рисовать все мои UML-диаграммы, используя UMLet , особенно потому, что (в будущем, когда вы сначала сделаете UML;)) вы можете экспортировать свои диаграммы в Eclipse!

Методы и их аргументы указываются внутри классов в диаграмме UML. Вы действительно не заботитесь о том, что каждый метод ДЕЛАЕТ для диаграммы классов, просто его характеристики по большей части. Сосредоточьтесь на том, чтобы показать отношения между классами, даже если они являются библиотеками. Не беспокойтесь обо всех отдельных методах в библиотеке ... хотя некоторые API где-то об этом уже позаботились.

Вам нужна дополнительная помощь по самому UML? Дайте мне знать, и я могу добавить к этому ответу, чтобы уточнить любые другие ваши вопросы по UML в целом, или обратитесь к этой статье в Википедии о диаграммах классов .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...