Tuesday, June 29, 2010

UML – хорошее начало для проектирования сайта на Java. Часть 3: учусь на своих ошибках

По диаграмме сайта из этого поста я уже получил конструктивное замечание от моего друга-программиста, за что очень признателен. Вывод, который я сделал для себя: не нужно было связывать эту диаграмму с UML. Суть замечаний следующая:

...рисунок, который отображает структуру сайта, не есть UML диаграмма.

Во первых, любое взвимоотношение между классами может быть только:
- зависимость
- ассоциация
- наследование
- композиция

В том рисунке не понятно о роде взаимоотношений.
Таже не понятно чем DVD1 отличается от DVD2 или CD2 от CD1 (кроме порядкового номера).
НИКОГДА не используй переменные или константы (и методы) в ввиде номера (типа v1, const3) чтобы отобразить, что они отличаются.

Переменная, константа или метод должны играть 2 роли:
1) Ссылка на данные (если метод, то на действие);
2) Описание. Оно не есть обязательным для исполнения компьютером, а для человека.
Когда описательной информации нужно больше, то добавляют комментарий. НО коментарий не должен заменять названия. Сравни:
а) S v1 = new S()
b) S v1 = new S() // this is circle
c) Shape shape = new Circle();

Ты читаешь код, что для воспрятия/понимания лучше?

Дальше.

Суть UML в том, что есть определенный набор знаков/символов, которые являются стандартом.
Сам символ/знак несет определенную информацию вместо кучи текста, о котором знают все, кто знает стандарты UML. Как говорят, 1 рисунок заменяет 1024 слова.

По этому, в UML существует определенный набор символов и диаграмм UML, которые нужно понимать что они значат и уметь ими пользоваться. Каждая диаграмма описывает модель с разных точек зрения, контекстов и целей. Это значит, что при описании любой структуры в UML нужно:
а) выбрать нужную диаграмму UML;
б) описать модель пользуюсь стандартными символами/знаками UML.

И тебя поймут многие :)

Кроме всего прочего этот человек считает, что лучшая книга по UML написана Мартином Фаулером (на англ. Martin Fowler). Судя по всему эта книга называется "UML Distilled: A Brief Guide to the Standard Object Modeling Language".

Благодаря таким конструктивным замечаниям, я вношу поправку к предыдущему посту об UML: сделанную диаграмму сайта webnetika.com лучше рассматривать, как карту сайта, а не UML диаграмму. Я решил оставить эту диаграмму, и не переделывать уже написанные посты. Возможно это поможет кому-то избежать моих ошибок.