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

Инженерные инструменты UML Round-Trip с бесшовной синхронизацией?

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

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

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

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

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

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

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

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

3 ответа

В "Together-J" Питера Коада раньше были диаграммы и редактор в одной IDE (отсюда и название). Измените диаграмму, и код изменится; то же самое касается и другого пути.

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

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

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

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

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

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

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

Другие вопросы по тегам