|
XML->UML
|
|||
---|---|---|---|
#18+
Добрый день, Вопрос по программной инженерии. Нужно получить диаграмму состояний в Rational Rose, имея исходный XML документ. Как бы это изящней сделать? Как я понимаю, нужно на основе XML сгенерить UML текст, хотя можно открыть Rose как automation object и заставить его генерить диаграмму. XML устроен просто из набора состояний с указанными переходами. Заранее спасибо за соображения! ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2003, 18:24 |
|
XML->UML
|
|||
---|---|---|---|
#18+
2 Михаил: Вопрос по программной инженерии. Нужно получить диаграмму состояний в Rational Rose, имея исходный XML документ. Как бы это изящней сделать? Как я понимаю, нужно на основе XML сгенерить UML текст, хотя можно открыть Rose как automation object и заставить его генерить диаграмму. Привет, а что имеется в виду под "UML текст"? Как я понимаю XML документ из другой программы, т.е это не модель Rose описанная в XML (Rose XML DTD)? А что за программа или я что-то понял? ВАРИАНТЫ: №1. например преобразовать XML документ в PTL (достаточно простой и понятный текстовый формат описания объектов и их иерархии), например, с помощью какого-нибудь конвертора с поддержкой скриптинга или того же Active Perl, а затем уже открыть этот PTL в Rose. Можно конечно используя Rose Scripting в самой Rose, но только все равно сначало нужно загрузить модель в Rose №2. Reverse Engineer XML_DTD (требуется Rose XML DTD аддон), но как я понимаю он только преобразует DTDник в диаграмму классов :( XML устроен просто из набора состояний с указанными переходами. Если ВАРИАНТ №1 из этой оперы, то вообще нужно взглянуть на кусок чтобы понять что за формат ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2003, 12:35 |
|
XML->UML
|
|||
---|---|---|---|
#18+
2Replicant Привет, Да, XML-документ - это отчет из другой программы. Выглядит он примерно так: <?xml version="1.0" encoding="utf-8"?> <config> <point> <name>FIRST</name> <link_to>SECOND</link_to> <link_to>THIRD</link_to> </point> ... <point> <name>THIRD</name> <link_to>ANOTHER_ONE</link_to> </point> </config> Короче, перечислены points-вершины графа и в них связи на другие вершины. По сути, это состояния аппаратуры с переходами. Цель - получить в Rational Rose диаграмму состояний. Я думал что существует текстовый стандарт описания UML-диаграмм (написал UML-текст), который сожрет Rose. Видимо, мне нужен способ номер 1 (конвертация в PTL). Дело в том, что я только начал разбираться с XML и меня во-первых интересует с помощью каких инструментов и технологий мне делать запросы к XML в данном случае для последующей генерации текста (или действий в скрипте). Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2003, 12:26 |
|
XML->UML
|
|||
---|---|---|---|
#18+
2 Михаил: Короче, перечислены points-вершины графа и в них связи на другие вершины. По сути, это состояния аппаратуры с переходами. Цель - получить в Rational Rose диаграмму состояний. Приветствую! А выходной формат этой программы вообще настраивается? Т.е например имена узлов. Просто странный способ идентификации узла - через отдельный элемент name , а не через например id-атрибут <point id=...>. Хотя это конечно не проблема, но вот распознавание имен узлов "FIRST", "SECOND" и преобразование их в 1 и 2 соответственно или это только так для примера? Я думал что существует текстовый стандарт описания UML-диаграмм (написал UML-текст), который сожрет Rose. Видимо, мне нужен способ номер 1 (конвертация в PTL). PTL (Petal) как раз и является таким форматом для Rose. Информации про этот формат более чем достаточно если ввести "+petal +file +format": http://act-r.psy.cmu.edu/~douglass/Douglass/Douglass/Agents/Petal-format.pdf Информация по версиям понимаемым Rose Дело в том, что я только начал разбираться с XML и меня во-первых интересует с помощью каких инструментов и технологий мне делать запросы к XML в данном случае для последующей генерации текста (или действий в скрипте). Если имеется в виду ВАРИАНТ №1 (конвертер XML в PTL), то конвертер или правильнее транслятор - это скрипт или программа, к-рая должна: а) парсить XML-файл, распознавая элементы point, name, link, используя, например, API какого-нибудь XML-DOM или SAX-совместимого парсера/процессора (MSXML например), б) "обходить" как-нибудь дерево графа, запоминая уже пройденные узлы/ветки, в) вставлять в PTL-файл очередное состояние для текущего элемента point и переход для link . Я думаю, что если вопрос про алгоритм обхода графа запостить в раздел "Прграммирование" или "MSSQL", то кто-ниубдь наверняка ответит как это лучше реализовать (спецы по деревьям/графам на SQL.RU точно есть) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2003, 10:50 |
|
XML->UML
|
|||
---|---|---|---|
#18+
2 Replicant Привет! Вывод программы не настраивается, так как является служебным представлением. Я немного упростил вид - там вложенность больше. Не совсем понял, зачем обходить граф. (для меня это как раз не было бы проблемой) Point - это и есть состояние системы. В XML (в его блоке) для него перечислены переходы в другие состояния (point-ы), а также некоторым образом условия по которым эти переходы осуществляются. Михаил. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2003, 12:55 |
|
XML->UML
|
|||
---|---|---|---|
#18+
2 Михаил: Вывод программы не настраивается, так как является служебным представлением. Я немного упростил вид - там вложенность больше. Привет! Только наверное не вложенность (т.е кроме элементов name и link_to внутри point могут быть еще другие элементы point), а число элементов, к-рые допустимы внутри point помимо элементов name и link_to ? Не совсем понял, зачем обходить граф. (для меня это как раз не было бы проблемой) А как ты собираешься транслировать узлы графа (т.е элементы point в XML) в состояния на диаграмме (т.е элементы object в PTL)? Вообщем этот процесс можно назвать как угодно, например, "разбором", "преобразованием" графа, но суть одна: двигаешься по нему, распознавая узлы, т.е надо учитывать, что XML описывает именно граф или нет? Хотя скорее всего PTL нечувствителен к порядку следования "связанных" элементов (состояний), тогда этот процесс наверное просто сведется к трансляции XML-элементов point и link_to в PTL-элементы object State и object State_Transition соответственно. Однако, в любом случае необходимо проверять, что у узла больше нет соседей наверху - чтобы определить кто этот узел (object State) и пометить его в PTL: "Normal" или "EndState" Point - это и есть состояние системы. В XML (в его блоке) для него перечислены переходы в другие состояния (point-ы), а также некоторым образом условия по которым эти переходы осуществляются. Кто такой point - это ежу понятно ;) Условия хотя и усложняют жизнь, но принципиальных трудностей не представляют IMHO, если конечно реализовать трансляцию хотя бы для состояний ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2003, 23:11 |
|
|
start [/forum/topic.php?fid=32&fpage=182&tid=1546998]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
78ms |
get tp. blocked users: |
2ms |
others: | 245ms |
total: | 408ms |
0 / 0 |