У нас есть требование для генерации C ++ & Java-код из StateCharts, нарисованный в инструментах UML.
Ранее мы использовали «Rational Rose», но из-за какой-то ошибки лицензии мы больше не можем использовать его. В rose был доступен плагин, который генерирует текстовый файл из диаграммы состояний, который был интегрирован с нашей платформой.
Так что теперь нам нужно оценить & выберите стандартный инструмент UML, который удовлетворяет следующему требованию.
@ простота использования. Легко рисовать StateCharts.
@ способность генерировать код из stateCharts для C ++ в GNU Linux env. [со всей очередью, требования к потокам обрабатываются сгенерированным кодом. Так что пользователь может сосредоточиться только на бизнес-логике]
@ ИЛИ наличие плагина или инструмента для создания текстового файла, фиксирующего транзакции.
В качестве сильных соперников выступили два инструмента — IBM Rhapsody & SparxSystems EnterpriseArchitect.
Дайте мне знать ваши предложения и опыт в этой области. заранее спасибо
Сейчас я сравниваю инструменты UML для нашей компании. Из проприетарных инструментов я опробовал несколько, в том числе IBM, sparx EA и VP UML. Только последние два были приемлемы — по крайней мере, немного удобно. Не очень много, но лучше, чем другие.
Что касается IBM, у меня был ужасный процесс установки с инструкциями на незнакомом восточном языке и ручным редактированием реестра. Он просто не выполняет то, что обещает даже на этой стадии. Когда мне это удалось, я попробовал только диаграммы классов и обнаружил, что набор его элементов давно устарел. Они НЕ соответствуют стандарту UML и даже не пытаются этого сделать. Я бы не назвал инструмент IBM серьезным или сильным. Я не пробовал схемы конечных автоматов, но если мне пришлось выплюнуть первую ложку, я не буду есть всю миску, чтобы знать, что она мне не нравится.
Что касается EA и VP, последний имеет лучшую поддержку для управления проектами, но рисование диаграмм немного более удобно в советнике. Это менее интуитивно, но когда вы ловите это, это легче. Итак, теперь я решил для EA. Но это было решение от 49 до 51. Я бы посоветовал вам установить оба и попробовать свои задачи на них, и попытаться нарисовать себя. То, что мне удобно, может быть неудобно для вас. У них обоих есть 30-дневная оценка свободного времени. Издания с инженерными опциями тоже стоят около 200 долларов. И другая организация всего на экране. Действительно трудно выбрать.
Как отметил Гангнус, вам нужно выбрать инструмент, который лучше всего соответствует вашим конкретным требованиям. UML — это просто стандарт для визуальных представлений; основное хранилище данных остается полностью на усмотрение создателей инструментов, как, впрочем, и генерация кода. Не ожидайте, что сможете повторно использовать большую часть ваших старых моделей Rose без изрядной практической работы с новым инструментом.
Моя рекомендация из ваших двух альтернатив — EA.
Rhapsody находится у третьего владельца, что, как правило, не является хорошим знаком для программного продукта, и это только один из нескольких инструментов моделирования, которые предлагает IBM (см. мой ответ ре EA против RSA) — в то время как Sparx Systems имеет только один продукт и концентрирует на этом весь свой инженерный персонал.
С помощью EA вы можете пересылать и анализировать код на дюжине с лишним языков (включая Java, C, C ++ и C #) и добавлять свой собственный. Вы можете изменять скрипты генерации кода по своему усмотрению и, кроме того, вы можете генерировать код из диаграмм состояний, анализировать двоичный код и записывать пути выполнения из исполняемого кода в виде диаграмм последовательности.
EA — это родное приложение для Windows, с поддержкой Linux через Wine или его коммерчески поддерживаемую версию Crossover. Он имеет хорошую поддержку для командного моделирования и некоторую поддержку для контроля версий. Он поддерживает преобразования моделей и генерацию документов и поставляется с механизмом сценариев и API для Java и C #, что делает его чрезвычайно адаптируемым. Существует также довольно хороший выбор сторонних надстроек.
Основная причина использования Rhapsody заключается в том, что вы уже используете много инструментов IBM и хотите их интегрировать. Если у вас нет такой необходимости, я бы пошел с EA.
Раскрытие информации: я (независимый) консультант EA.
Тебе стоит попробовать GenMyModel он поддерживает диаграммы состояний и позволяет вам определять и запускать собственные генераторы кода прямо в браузере, не устанавливая ничего. Вы можете поделиться своей моделью и генераторами с вашей командой.
Поскольку это веб-приложение, оно работает на любой ОС, включая GNU / Linux.