Инженерные инструменты 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) инструмент для двустороннего проектирования, который будет работать в реальных проектах, где обрабатываются настройки (например, пользовательские параметры в сообщениях) , еще не уничтожены при следующем импорте исходного кода?
И где все форматирование и комментарии полностью сохраняются при генерации. Закрыть не очень хорошо. Если инструменты испортят форматирование исходного кода, ни один разработчик не захочет запускать инструмент на своем источнике.