Сравнение средств проектирования


Учёба в универе и работа наложили свой отпечаток, оказалось, что нужно не только «кодить», но и уметь проектировать те или иные «задачи». Знакомство моё с UML началось с State Machine(конечный автомат, если по русски и приближённо).

Поэтому в результате ряда «телодвижений» я нашёл несколько UML редакторов, которые прошли мой первоначальный фильтр(оговорюсь заранее, данный список не притендует на полноту, и обзор семейства Rational от IBM появится немного попозже, когда я смогу «разжиться» гиговой триальной версией продукта :) ):

1. NClass
2. MS Visio Professional 2007.
3. Altova UModel 2008.
4. Magic Draw.
5. Sparx Enterprise Architect.
6. Visual Paradigm.
7. Sybase Power Designer
8. Rational (family).

Данные «редакторы» я сравнивал по следующим критериям:
1. Поддержка UML. (Оценка от 0 до 10)
2. Проверка правильности UML диаграмм. (Оценка от 0 до 10)
3. Генерация исходных кодов по UML диаграмме. (Оценка от 0 до 10)
4. Reverse engineering исходных кодов. (Оценка от 0 до 10)
5. Поддержка процессов разработки(сильно не разбираюсь, но для саморазвития нужно). (Оценка от 0 до 10)
6. Проектирование БД. (Оценка от 0 до 10)
7. Поддерживаемые БД, по умолчанию. (За каждую БД по от 0 до 5 баллов)
8. Проверка правильности БД.(Оценка от 0 до 10)
9. Reverse engineering БД.(Оценка от 0 до 10)
10. Удобство использования(чтобы мне понравилось).(Оценка от 0 до 10).

Приступим


NClass




Замечу сразу, что это полностью бесплатный редактор. Каким образом он попал сюда? Он мне понравился :)
Я рассматриваю версию 1.08. Судя по www.nclass.sf.net разработчиков, скоро должна выйти версия 2.0 со значительными доработками. Что же он нам позволяет делать из перечисленного списка:
1. Только диаграмма классов.(2).
2. Проверять не умеет(0).
3. Генерирует только код C#, но довольно неплохо(5).
4. Не умеет(0).
5. Процессы не поддерживает(0).
6. С БД работать не умеет(0).
7. — (0)
8. — (0).
9. — (0).
10. А мне понравилось :) (9).

Итого честно набрал свои законные, на мой взгляд, 16 баллов. Надеюсь разработчки продолжат работу над данным проектом и порадуют нас ещё не одной версией.

Следующий пациент


MS Visio Professional 2007


Что же представляет из себя этот труп программный продукт… Довольно сложно вот так с «бухты-барахты» всё описать. Довольно широкий функционал, можно сказать точнее — комбайн. Только у меня сложилось впечатление, что команда отвечающая за Visio с 2003 года ничерта не делала. Особых изменений в функционале по сравнению с MS Visio 2003 Enterprise Architect я не увидел, хотя вру, увидел нет генерации кода по UML диаграмме, по крайней мере найти её я не смог. Замечу сразу, что судя по описанию на сайте MS продукта MS Visio Enterprise Architect 2007 в природе не существует, а жаль версия 2003 мне очень понравилась. Но что-то моё повествование «повело в сторону» :).
Итак Visio многое умеет(рисовать), качество довольно не плохое

Так же есть поддержка UML, только куда-то пропала кодогенерация и проверка правильности…

Я думаю внимательный пользователь заметит ошибку на данном рисунке

С базами данных, данный продукт «работать» не разучился, ну и на том спасибо.

Итого, что же у нас имеет Visio в своём активе:
1. UML поддерживается(9).
2. В версии 2003 было, а тут как-то тихо.(0).
3. Как и предыдущий пункт.(0)
4. Увы. (0).
5. Есть, но насколько точно и правильно, судить пока что не берусь(8).
6. Умеет проектировать(9).
7. В стандартном комплекте шли драйвера для: MS Access, MS SQL Server, Oracle, IBM DB2, ODBC, OLE DB. В своей работе использовал я только 2 — для Оракла и для SQL сервера, поддерживается всё в полном размере, насколько я могу судить.(30).
8. Правильность какая-то «кривая» (7).
9. Умеет создавать модель по уже существующей базе (9).
10. Довольно удобно, но могло бы быть и лучше (7).
Итого MS Visio Professional 2007 прошёл дистанцию за 79 баллов. Апплодисменты! Выносите .

Вдруг откуда то из спальни с бодунища никакой...


Altova UModel 2008




Продукт от известной компании, в определённых кругах. Судя по всему один из «первых опытов»(со 100% уверенностью не утверждаю, но раньше эта компания замечена не была). На первый взгляд довольно не плохо, попробуем познакомиться поближе. UML — да, он(а) знает, что это такое и что это за зверь. Пользовался я этим продуктом мало потыкал в ознокамительных целях. Что мне сразу не понравилось — интерфейс, неудобно как-то всё расположено или непривычно, кому как.
Итак сухая статистика:
1. UML, для него и создавалось (10).
2. На правильность проверять умеет (10).
3. Судя по заявленный данным умеет генерировать код для Java, C#, Visual Basic, XML Schema (10).
4. Умеет реверсить и может выступать как дополнение к VS и Eclipse(10).
5. Бизнес процессы (9).
6. С БД работать не умеет(0).
7. — (0).
8. — (0).
9. — (0).
10. Удобство есть, но к нему нужно привыкнуть, я больше люблю чтобы привыкать не нужно было (8).
Окончательно 57 баллов.

На этом статья не заканчивается, в следующей, будет написано о оставшихся достойных представителях, Продолжению быть continued…

UPD Если хабросообществу будет интересно узнать о подобных программах под ОС Linux, просьба отписаться в комментариях :)
+41
24 декабря 2008, 16:50
92

комментарии (86)

0
free #
Я крайне редко пользуюсь программами для работы с UML. Обычно хватает ручки и листка бумаги, чтобы объяснить дизайн.
НЛО прилетело и опубликовало эту надпись здесь
0
free #
Да, имеет смысл вести высокоуровневую спецификацию. Т.е. описать как связаны между собой модули, системы и прочее.
А вот конкретную структуру файлов я не стал бы документировать, т.к. это ограничивает возможность быстрых изменений и рефакторинга системы.
–2
Mephistophele #
Reverse engineering ;)
0
free #
Для этих целей вполне подходит простенький UML-плагин к любимой IDE.
0
Mephistophele #
Листик с бумагой, плагин… Уж лично моё мнение, поставить нормальную систему и иметь полный «фарш». Притом бывают ситуации, что сегодня я пишу на VS, а завтра или послезавтра проект нужно делать на Mono IDE, а код и там и там реверсить нужно. Но это как говорится частности.
НЛО прилетело и опубликовало эту надпись здесь
+5
muxx #
По своему опыту, сколько не планируй, заказчик потом 10 раз все изменит.
0
Arekus #
А вы не подпускайте заказчика к вашему коду :)
0
muxx #
Нет, вы понимаете, заказчику важен не код, а насколько удобна и закончена система, написанная вами. Если ему что-то захотелось изменить, тем более, если эти изменения идут как доработки за доп. оплату, вы с этим ничего не поделаете. Заказчику все равно, насколько у вас там красивая архитектура получилась :)
0
oogl #
Планы — бесполезны, планирование — бесценно.
+1
eisernWolf #
Чушь. Это невозможно. Поэтому agile и зародился.
НЛО прилетело и опубликовало эту надпись здесь
+1
eisernWolf #
Рисование диаграмм и планирование — вещи совершенно друг с другом не связанные. Отобрать кейсы для итерации и сделать оценку — это одно. Прорисовывать микро-архитектуру и уж тем более придерживаться ее — совершенно другое, абсолютно ненужное занятие.
НЛО прилетело и опубликовало эту надпись здесь
+1
eisernWolf #
1. Имейте совесть, не отрывайтесь от контекста. Я и так предельно конкретен, если, безусловно, Вы прочитали хотя бы первый абзац этой статьи.

2. Можете исходя из Ваших умозрений это действительно необходимо. Я считаю, что это лишь осложняет понимание работы системы.
НЛО прилетело и опубликовало эту надпись здесь
0
eisernWolf #
Смешно. Думаете один Вы тут занимаетесь разработкой профессионально? :) А остальные — это так, голодные необразованные студенты и скучающий офисный планктон? :)
НЛО прилетело и опубликовало эту надпись здесь
0
eisernWolf #
Каждый видит в другом лишь самого себя. Совсем недальновидно характеризовать людей, с которыми не знаком лично. Да и ощущения Ваши подводят. Студентом быть не стыдно. Стыдно уверовать в свою исключительную правоту.
НЛО прилетело и опубликовало эту надпись здесь
0
gleb_kudr #
Скажите это авиаконструкторам.
0
ivlis #
А через три года вы бумажку потеряете и попробуйте вспомнить что там как…
+3
Vas3K #
Недавно тоже нужно было набросать простенькую БД из десятка таблиц. Как-то случайно нашел у себя на дебиане OpenOffice Draw. Сделал — был доволен. Можно еще поискать специальные программы пол линукс.
+7
megahertz #
Пользуюсь StarUML. Отличный функционал, open source, легко расширяется. Основные достоинства:
— Генерация кода в языки: C#, Java, С++ (доступны другие языки через расширения)
— Поддержка работы с фреймворками
— Удобный графический редактор
— Полное соответствие стандарту UML 2.0
— Возможность расширения функционала (про это написано отдельное руководство разработчика)
— Экспорт документации в форматы: DOC, PPT, TXT, XLS…
— Поддрежка паттернов
— Импорт проектов Rational Rose
— Приятный размер дистрибутива
подробная информация в обзоре
StarUML
По пунктам:
1. 10 (полная поддержка UML 2.0)
2. 10 проверяет на валидность
3. 10 встроеная поддержка генерации кода на Java, C#, C++, на сайте есть дополнения для других языков
4. 10 есть, но пока не пользовался
5. 0
6. 0, к сожалению БД проектировать нельзя
7. 0
8. 0
9. 0
10. 9
Итого 49. Но свои функции выполняет на все 100.
0
Mephistophele #
К.О. добавлю в следующие обзоры.
0
noita_kronk #
Шо, и рамки умеет из UML2 в диаграммах последовательностей (это там, где альтернативы, циклы и ссылки)?!
+1
svazist #
Рекомендую посмотреть Enterprise Architect крайне мощная весч. Поддержка как генерации кода, так и reverse engineering, для многих языков, в том числе PHP…
С базами данных работает, проекты в CVS держать может и прочие вкусности.
0
Mephistophele #
Sparx Enterprise Architect.
Если внимательно посмотрите в статью, то обзор будет в следующей части :)
0
theKitich #
Тогда ждем следующей части ) Хочется сравнить с другими.
Обращу внимание автора — предлагаю взять и 6, и 7 версии. Мне лично советовали использовать 6-ю, т.к. она корректнее работает в некоторых вопросах (сам не сравнивал, но 6 меня вполне во всем устраивает).

ИМХО у него очень интерфейс удобный и приятный. Панели «уезжающие» вроде Adobe CS3, но гораздо удобнее, и это было в 2005-м.
Сравнивать, правда, реально могу только с Rational Rose, у которого и оформление, и юзабилити в свое время мне вообще ужасом показались :(
0
Brazier #
Большое спасибо. Очень жду следущей статьи.
+2
aleks_raiden #
Есть еще ArgoUML — argouml.tigris.org/
0
cryonyx #
Только хотел про него сказать. У меня, правда, последняя версия не захотела запускаться…
0
Cancel #
Он уже устарел, UML 1.4 такая древность
+4
Paul #
У меня после попытки пользования Visio сложилось впечатление, что это редактор диаграмм вообще, а не UML диаграмм. Т.е. может какие-то простые диаграммы из квадратиков и треугольничков в Visio и можно рисовать, но после получаса попыток вставить в sequence диаграмму вызов между другими двумя так, чтобы к диаграмме не применился эффект «взрыв атомной бомбы», я забросил это дело и за 5 минут перерисовал диаграмму в Enterprise Architect. С тех пор к Visio не прикасаюсь.
0
Mephistophele #
Я в своё время пользовал Visio EA 2003. Он на порядок лучше того же 2007. Только чтобы с ним разобраться пришлось «маны покурить». Зато потом было очень приятно работать. Сейчас же перешёл полностью на Sybase PowerDesigner.
0
gAmUssA #
>Сейчас же перешёл полностью на Sybase PowerDesigner.
Работаю с этой прогой с универа. Другие даже пробовать не хочу. Жаль что приличного аналога под linux нет
+2
djsv #
А есть ещё крошка Violet UML: alexdp.free.fr/violetumleditor/page.php

Программа простенькая, но часто этого вполне достаточно, чтобы набросать диаграмму классов.
0
alexeym #
Раньше использовал страшно мощную штуку Rational Rose

www-01.ibm.com/software/rational/
0
Mephistophele #
Rose насколько я знаю устарел, сейчас есть что-то поновее. Запомнился размер, зашкаливающий за гиг…
+6
noita_kronk #
Разумеется, нужен обзор и линуксовых программ.

Укажите, пожалуйста, версию UML, по которой производите проверку.

Вы, кстати, несправедливы к MS Visio 2007, программа неудобная, но сделали много — в 2003-й было невероятное количество багов (видно, Вы в ней мало работали), особенно в диаграммах последовательностей.

Странно, что ничего не сказали про Visual Paradigm, вот там и жесты есть, и быстрое редактирование, и соответствие стандартам. Программа, в которой думаешь с той же скоростью, с какой заносишь изменения. Только вот распечатывать и работать можно только над одной схемой в бесплатном режиме. А платная версия стоит охо-хо.
0
noita_kronk #
Но был бы я начальником, не поскупился бы. Или вполне реально сброситься группой разработчиков.
+1
flomop #
Visual Paradigm отличный продукт существуют плагины под все IDE. Платный, но он умеет сохранять проекты в XML и мой преподавательпо БД написал xslt-преобразование в SQL код оттуда. Пользуюсь им. И наш архитектор на работе им пользуется.
0
TiPoK2 #
Тоже им пользуюсь, но вы не правы, он совершенно бесплатен если использовать его в не корпоративных целях, т.е. т.к. я пользуюсь им для учебы, то он бесплатен
+1
quiet_drago #
да, тоже было бы интересно про Линуксовые средства. как раз сейчас у меня встала проблема выбора такого инструмента.
0
superhabra #
Из всех UML редакторов пробовал Unbrello (из kdesdk), Sparx EA и Poseidon for UML ( www.gentleware.com/ ).
О первом и говорить нечего — убожество, а Poseidon после EA кажется диким тормозом, хотя детально в нём не разбирался.
Сейчас использую EA.
–5
Ueasley #
Странно, что вы это поняли в 21 год.
–2
Ueasley #
Имелось в виду

оказалось, что нужно не только «кодить», но и уметь проектировать те или иные «задачи»
0
sgolubev #
Интересно будет услышать мнение об IBM'овском Rational Rose.
+1
dymdym #
umbrello под линукс — простенькая и толковая
+1
Tronum #
сам иоспользую Sybase Power Designer. Отличный редактор.
Есть все что нужно, и удобно.
0
f33l #
из простых наиболее терпимое en.wikipedia.org/wiki/UMLet
запускается как stand-alone, так и плагином к эклипсу (3.4 тоже поддерживает)
+1
Arion #
В Линуксе использую Umbrello. Пока всем устраивает
+2
NaTTs #
Очень интересно про Linux-приложения подобные послушать. раньше пользовал visual paradigm, но что-то сейчас не хочется, да и денег на нее сейчас нет.
0
freetonik #
Использовали Rational Rose Real Time от IBM, вещь страшненькая, но в принципе удобная. UML поддерживает наверное на 8/10, зато генерирует служебный код
НЛО прилетело и опубликовало эту надпись здесь
0
cblp #
(За каждую БД по от 0 до 5 баллов)
10 бд — 50 баллов.
Не совсем объективно, наверное, но внутренних противоречий нет.
0
Mephistophele #
возможно вы правы и в результирующую таблицу я занесу измененные данные, только в данном случае я исходил из того, что у каждой БД есть, хоть не большая но специфика работы с ней. Поэтому я и принял решение начислять балл именно так.
0
nechukin #
Советую в следующем обзоре затронуть Visual Paradigm — имхо, это лучшая из альтернатив. Наименее назойливая, наиболее эргономичная и ближе всех к стандарту UML 2.х.
+2
Entropius #
>Если хабросообществу будет интересно узнать о подобных программах под ОС Linux, просьба отписаться в комментариях :)
Будет интересно.
0
RomanL #
Интересно узнать форматы хрения/экспорта диаграмм.

Я обычно рисую структуру БД в ERWin, потом делаю экспорт в XML, а дальше парсером строю структуры данных для своего БД-фреймворка. Быстро и удобно.

Последнее время смотрю на StarUML (тут выше про него писали) — так он вообще все изначально хранит в XML…

А как с этим у других средств?
+1
ser_gun #
+1
Cancel #
Присоединяюсь, один из самых лучших редакторов, правда, с очень нестандартным интерфейсом, многих это отпугивает. Ещё большим плюсом является уникальная адекватность автора — он быстро отвечает на письма и быстро добавляет запрошенную функциональность.
–1
RomanL #
Да бросьте вы… такое убожество.
Не идет ни в какое сравнение с другими.
0
kartoha #
Я пользуюсь VISIO2003 со специальным набором инструментов — Garrett IA Diagram.
0
g00d #
Хорошо бы такой обзор для Mac OS X кто нить провел…
кто чем в Маке для этого пользуется ??
0
muxx #
Все то же самое и под виртуалкой)
0
g00d #
под виртуалкой это зло (
+1
j4ck #
Неплохо было бы добавить — 11. Стоимость программного обеспечения
–1
eisernWolf #
Наблюдал за работой ребят из Orange County Choppers. Нету у них там никаких чертежей. Есть эскизы, а чертежей нету. Все, что нужно для изготовления деталей — рисуется по-месту во время работы.

Диаграммы ваши — это как словесное описание женщины. Никакого представления о реальном положении дел дать не могут. Могут только ввести в заблуждение. Нужно разобраться, как работает система? Ну так берите приемочные тесты и разбирайтесь.

Это типа когда после прочтения стихотворения некоторые эстеты читают еще и критику — типа с первого раза не дошло. Я признаю лишь высокоуровневые диаграммы, которые показывают взаимодействие крупных блоков системы. Микро-архитектуру прорисовывать — глупо, непродуктивно и непрофессионально.
0
Mephistophele #
Я предпочитаю разбираться в чужом коде с помощью диаграмм активности, если уж что-то такое «интересное» вылазит. Поповоду «микро-архитекруры» соглашусь.
0
nileriver #
Вы знаете такое слово как документация? А поддержкой кода с количеством классов от полутора тысяч занимались? По большому счету проработка микро-архитектуры часто служит одним из видом документирования. С другйо стороны он дает такое количество гибкости…
0
eisernWolf #
>>А поддержкой кода с количеством классов от полутора тысяч занимались?

Не напугал. Ни разу. Чем поддержка кода с количеством классов «от полутора тысяч» отличается от поддержки кода с количеством классов от пятисот? Простота поддержки зависит от дизайна!
0
nileriver #
Не согласен ни разу. Дизайн безусловно лежит в основе, но в отсутствии документации позволяющий вникнуть в такую систему за 2-3 часа поддержка становится практически невозможна. Посмотрел ваш профиль… Парное программирование, и остальные технологии агилидева важны и нужны. Но не достаточны. Как я недавно сказал одной знакомой менеджерше — главное все таки не процесс а стратегия. В разработке ПО в том числе. =) Диаграммы, полноценная документация. Это важно.
0
bas #
Ну стоимость, как критерий уже добавили, нужно еще возможность командной работы инструменте. И поддержу на счет кол-ва БД — не объективно получается.

Хоотелось также услышать — на сколько долго и профессионально автор работал со всеми этими средствами?? Все Диаграммы рисовать пробовали?? Какой проект для примера брали??

И еще перед начлом написания такого обзора ожно было погуглить на счет обзоров и что-то повзаимстовать у них:
0
Mephistophele #
Использовал Visio 2 года Visual Paradigm год, PowerDesigner полтора года.
VP для разработки багтрэкинговой системы, использовались все диаграммы представленные в UML 2.0.
На Visio нас пересадил архитектор-француз, когда делали заказ для ST Microelectronics, в основном использовали для State Machines и для базы. На новом месте работы не использовали UML как таковой, поэтому выбрал то что мне удобнее(PowerDesigner) и теперь усердно насаждаю(предварительно пересмотрев все те, которые были в списке).
Сравнения я смотрел и читал, только они довольно сухие, как правило не рассматривают с нужной мне стороны и нередко попадаются «заказные».
0
scorched #
Может быть тогда стоит описывать все эти инструменты? Потом собрать мнения сообщества по каждому из них и провести голосование «какой инструмент вам нравится больше всего»

en.wikipedia.org/wiki/List_of_UML_tools
0
Mephistophele #
я проводил опрос какой из инструментов предпочитают использовать
0
scorched #
Спасибо, проголосовал!
Результаты голосования меня удивили))
0
Silenius #
Здравствуйте! Сам пользовался Altova Umodel, Visio и Visual Paradigm For UML, и буду советовать последний вариант как самый удобный и прикольный. Комментарий noita_kronk тому подтверждение :))

Кстати, я бы предложил бы вам для наглядности информации сделать сводную таблицу по критериям — потому что мне, к примеру, не очень интересно непосредственно читать обзоры — я бы сразу перешел в вашей оценке в табличном варианте.

Удачи!
0
Silenius #
Сколько тут понаписали-то. Я имел ввиду этот комментарий :)
0
Mephistophele #
Знаете, я в своё время отказался от Visual Paradigm из-за очень серьёзного бага. Когда копируешь в диаграмме несколько элементов, а потом пытаешься вставить, то получается оно вставляет это «всё» толи как картинку, толи чёрт пойми что. Если сейчас ситуация исправилась, то я очень рад :).
0
G0ran #
Я столкнулся с со следующей проблемой. Построил UML диаграмму для листа формата А4 в MS Visio 2007. А теперь мне нужно разместить её на А1. Но она не увеличивается. При этом пробовал сохранить как векторный рисунок, а потом вставить и увеличить. Ужас получается :(
0
Mephistophele #
Не надо как векторный сохранять, лучше когда печатать будете, выставить в настройках печати, что формат вывода А1, должно всё прекрасно отобразить.
По крайней мере когда там диплом печатал, всё было хорошо :)
0
G0ran #
Попробовал NClass, как раз то, что мне нужно, отлично строит. Но… нельзя (у меня не получилось по крайней мере) сохранить диаграмму построенную, в векторную картинку :(

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.