2010-06-21 2 views
4

Я разрабатываю программный компонент, который будет получать инструкции от других компонентов о том, как должна выглядеть UML-диаграмма, а затем создаст эту UML-диаграмму в разных способах представления (в SVG, GIF и т. Д.), Например (в Java):Как создать диаграмму UML со сценарием?

DiagramDesigner designer = new DiagramDesigner(); 
designer.setStyle('Use Cases') 
designer.addActor('User'); 
designer.addUseCase('Print Document'); 
// etc. 
String svg = designer.getSvg(); 

Я не хочу, чтобы заново изобретать колесо и хотите использовать какой-то отраслевой стандарт языка/интерфейс для соединения между моими DiagramDesigner и другими компонентами. Я ищу интерфейс, похожий на DOM, но для UML, а не для XML.

Может ли кто-нибудь помочь? Заранее спасибо.

пс. Кроме того, на примере выше, я хотел бы, чтобы мои схемы между действующей и передаваемой между серверами, например .:

// first server 
String script = designer.getScript(); 
// second server 
DiagramDesigner desiger2 = DiagramDesigner.import(script); 

ответ

2

Итак, если я правильно понимаю вас, вы ищете способ работать с UML на уровне метамодели. Вы должны посмотреть на стандарт MOF и его реализацию EMF (Eclipse Modeling Framework), которая используется почти всеми инструментами UML на основе Eclipse, и эта структура используется многими другими проектами моделирования, она даже несколько повлияла на стандартизацию MOF (в результате SMOF и EMOF), и поэтому я бы объявил это отраслевым стандартом.

+0

Gabriel, спасибо за ваш комментарий, это очень полезно. Для меня все еще важна - может ли EMF использовать что-либо, кроме диаграмм классов. Я говорю о диаграммах состояний, диаграммах активности и т. Д. - динамической части UML? Я не нашел это в документации EMF. Похоже, что EMF используется только для статических моделей. – yegor256

+0

@ Vincenzo это зависит от того, что вы намереваетесь сделать. Ecore (диаграммы EMF) используются для создания метамоделей, которые представлены упрощенными классами моделей, именно так вы и имеете в виду. Однако весь UML моделируется с помощью этого, и вы можете таким образом создать UML-модели. Проблема заключается в диаграммах (обратите внимание, что это различие между моделью и диаграммой), в течение некоторого времени не было стандартного способа их хранения, в настоящее время существует ЦВХ 2, однако я не думаю, что это очень поддерживается. –

+0

Еще раз спасибо, я продолжу этот путь. – yegor256

2

Вероятно, лишь слабо связан, но так или иначе: PlantUML. Это открытый исходный код, построенный на Java и, вероятно, содержит уже часть того, что вы хотите сделать.

+0

Bernd, спасибо за ваш комментарий, я рассмотрел инструмент PlantUML, и он выглядит как отличный инструмент, но не совсем то, что я ищу. Спасибо, в любом случае. – yegor256

0

По крайней мере, для части синтаксиса вы можете получить вдохновение из большого набора текстовых инструментов UML (эти тезисы позволяют дизайнерам текстовое обозначение модели, а затем они автоматически отображают модель графически, используя стандартную нотацию UML).

По крайней мере, из таких инструментов здесь: http://modeling-languages.com/content/uml-tools#textual

1

Вы можете вдохновить из этих сценариев для создания какого-либо вывода, который вы хотите: http://askuml.com/

В настоящее время примеры приводятся в yUML, потому что они хорошо, но может быть что угодно ,

Смежные вопросы