Существуют ли какие-либо инструменты, позволяющие полностью синхронизировать модели UML с кодом? - PullRequest
5 голосов
/ 27 июля 2010

Инженерные инструменты UML с двусторонней синхронизацией?

Набор Rational предназначен для этого. Но он настолько дорогой и неуклюжий при рисовании (хуже, чем в дни Роуз), что недоступен большинству департаментов.

Что удивительно, так это то, что бесплатный Bouml , кажется, делает фантастическую работу. Это просто слишком неудобно для использования. Он обладает широкими функциональными возможностями, бесплатен (!), Очень быстр и очень хорошо интегрирует C ++. Он также имеет хорошую поддержку диаграмм, в том числе очень хорошую диаграмму последовательности. Хотя интерфейс не полированный (и постоянно открывает диалоговые окна на самом правом мониторе), он имеет начало очень способного продукта. Обидно, что интерфейс такой скромный и требует больших усилий. Может быть, это потому, что автор вкладывает большую часть своего времени в реальную функциональность. У кого-нибудь есть опыт использования Bouml на протяжении всего жизненного цикла продукта?

Это оставляет дорогой MagicDraw , очень способного, но по разумной цене Enterprise Architect и гладкую Визуальную Парадигму . Из них только в Visual Paradigm возникла проблема с обратным инжинирингом заголовков C ++ моего проекта.

MagicDraw имеет странное, старое чувство. Он хорошо справляется с реверс-инжинирингом сам по себе, хотя еще неизвестно, является ли проектирование в обе стороны сложных проектов C ++ беспроблемным. Они хотят получить более 1800 долларов США за многоязычную версию, поэтому цена ее аналогична Rational tools.

Enterprise Architect , хотя и намного дешевле, чем большинство, кажется, что он может быть наиболее полнофункциональным. Он анализирует и генерирует C ++ без нареканий. Даже комментарии и форматирование остаются без изменений. Есть отличные учебные материалы. Но он не поддерживает Objective-C, поэтому менее полезен для проектов со смешанным кодом для iOS и Mac OS X. Автоматическое создание диаграммы последовательности звучит потрясающе, но похоже, что оно работает только в проектах Windows .NET.

Visual Architect (> 800 долларов за многоязычную двухстороннюю связь) - это лучший инструмент моделирования программного обеспечения, с которым я когда-либо сталкивался. Несмотря на то, что могут возникнуть некоторые проблемы с возвратом в оба конца, это очень удобно использовать для создания моделей вручную. Это даже лучше, чем Роза была в некоторых отношениях. Он имеет интуитивно понятный способ вызвать инструменты, которые вам нужны, прямо на курсоре. Тем не менее, как я уже упоминал, в настоящее время не удается обеспечить синхронизацию модели с источником. И зачастую он даже не уведомляет о том, что импорт не работал полностью или что были созданы повторяющиеся классы (с такими же именами). Это также затрудняет ввод параметров сообщения, используя диалоги, в то время как другие позволяют изменять параметры прямо на диаграмме. (В этом превосходен бесплатный Bouml, как и MagicDraw и другие.)

Кто-нибудь нашел многоязычный (Java, C ++, C #, ObjC ++, Python, Ruby, SQL) инструмент для двустороннего проектирования, который будет работать в реальных проектах, где обрабатываются настройки (например, пользовательские параметры в сообщениях) , еще не уничтожены при следующем импорте исходного кода?

И где все форматирование и комментарии полностью сохраняются при генерации. Закрыть не очень хорошо. Если инструменты испортят форматирование исходного кода, ни один разработчик не захочет запускать инструмент на своем источнике.

Ответы [ 3 ]

3 голосов
/ 27 июля 2010

Peter-Coad Together-J имел обыкновение иметь диаграммы и редактор вместе в одной IDE (отсюда и название).Измените диаграмму, и код изменится;То же самое и для других способов.

Инструмент UML и редактор были немного медленными.Я думаю, что машины того времени были недостаточно мощными и не демонстрировали это с максимальной выгодой.

Полагаю, Питер Коад продал его Borland.Похоже, Borland вышел из бизнеса IDE.Вы все еще можете получить его здесь .

Я думаю, что IntelliJ - лучшая из существующих Java IDE.Вы можете создать несколько хороших диаграмм UML, используя его.

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

2 голосов
/ 27 июля 2010

Bouml ... постоянно открывает диалоги на самом правом мониторе

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

0 голосов
/ 02 августа 2010

Корпоративный Архитектор, кажется, делает хорошую работу в этом.Как вы указываете, это по разумной цене.И он также будет генерировать диаграммы и документацию, а также импортировать / экспортировать исходный код.

...