2014-02-14 3 views
0

У нас есть требование для генерации кода C++ & Java-кода из StateCharts, нарисованного в инструментах UML.Требование генерировать код из StateCharts в инструменте UML

Раньше мы использовали «Rational Rose», но из-за некоторой ошибки лицензии мы больше не можем ее использовать. В розе появился плагин, который генерирует текстовый файл из stateChart, который был интегрирован с нашей картой.

Итак, теперь нам нужно оценить & выбрать стандартный инструмент UML, который отвечает следующим требованиям.

@ легкий в использовании. Простота рисования stateCharts.

@ способность генерировать код из stateCharts для C++ в GNU Linux env. [со всеми очередями, требованиями к потоку, обрабатываемыми сгенерированным кодом. Так что пользователь может сосредоточиться только на бизнес-логике]

@ ИЛИ наличие плагина или инструмента для создания текстового файла, фиксирующего транзакции.

Два инструмента вышли вперед как сильные соперники - Rhapsody от IBM & SparxSystems EnterpriseArchitect.

Дайте мне знать ваши предложения и опыт в этой области. Заранее спасибо

ответ

1

Я сравниваю инструменты UML для нашей компании сейчас. Из проприетарных инструментов я пробовал несколько, включая IBM, sparx EA и VP UML. Только два последних были приемлемыми - по крайней мере, немного удобными. Не так много, но лучше других.

Что касается IBM, у меня был ужасный процесс установки с инструкциями на некоторых неизвестных языках с ориентацией и ручным редактированием реестра. Это просто не будет делать то, что обещает даже на этом этапе. Когда мне это удалось, я пробовал только диаграммы классов и нашел, что его набор элементов устарел в течение длительного времени. Они НЕ соответствуют стандарту UML и даже не пытаются быть. Я бы не назвал инструмент IBM серьезным или сильным. Я не пробовал диаграммы государственного аппарата, но если бы мне пришлось плюнуть в первую ложку, я не буду есть всю миску, чтобы знать, что мне это не нравится.

Что касается EA и VP, то последняя улучшает поддержку управления проектами, но чертеж diag немного удобнее в EA. Это менее интуитивно, но когда вы его поймаете, это проще. Итак, теперь я решил для EA. Но это было решение от 49 до 51. Я бы посоветовал вам установить оба и попробовать свои задачи на них и попытаться нарисовать себя. Что мне удобно, может быть неудобно для вас. У обоих есть 30-дневное бесплатное время для оценки. Издания с инженерными возможностями составляют около 200 долларов США для обоих. И различная организация всего на экране. Действительно трудно выбрать.

0

Как заметил Гангун, вам нужно выбрать инструмент, который наилучшим образом соответствует вашим конкретным требованиям. UML - это просто стандарт визуальных представлений; базовый хранилище данных остается полностью до инструментальных мастеров, так же как и генерация кода. Не ожидайте, что сможете использовать много старых моделей Rose без какой-либо практической работы в новом инструменте.

Моя рекомендация из ваших двух альтернатив - EA.

Rhapsody находится на третьем собственном владельце, что, как правило, не является хорошим знаком для программного продукта, и это лишь один из нескольких инструментов моделирования, предлагаемых IBM (см. my answer re EA vs RSA), тогда как Sparx Systems имеет только один продукт и фокусирует все его инженерная рабочая сила на этом.

С помощью EA вы можете форматировать и перепроектировать код на дюжине нечетных языков (включая Java, C, C++ и C#) и добавить свой собственный. Вы можете изменить сценарии генерации кода по своему усмотрению и, кроме того, вы можете сгенерировать код из диаграмм состояний, обратный инженерный двоичный код и записывать пути выполнения из запуска кода в виде диаграмм последовательности.

EA - это родное для Windows приложение, поддерживающее Linux через Wine или его коммерческую версию Crossover. Он имеет хорошую поддержку для моделирования команд и некоторую поддержку контроля версий. Он поддерживает преобразования моделей и генерации документов и оснащен механизмом сценариев и API для Java и C#, что делает его чрезвычайно адаптируемым. Существует также довольно хороший выбор сторонних надстроек.

Основная причина для использования Rhapsody - если вы уже используете множество инструментов IBM и хотите их интегрировать. Если у вас нет такой необходимости, я бы пошел с EA.

Раскрытие информации: Я (независимый) консультант EA.

0

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

Поскольку это веб-приложение, оно работает на любой ОС, включая GNU/Linux.