powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / XML->UML
6 сообщений из 6, страница 1 из 1
XML->UML
    #32144398
Михаил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день,

Вопрос по программной инженерии. Нужно получить диаграмму состояний в Rational Rose, имея исходный XML документ. Как бы это изящней сделать? Как я понимаю, нужно на основе XML сгенерить UML текст, хотя можно открыть Rose как automation object и заставить его генерить диаграмму.

XML устроен просто из набора состояний с указанными переходами.

Заранее спасибо за соображения!
...
Рейтинг: 0 / 0
XML->UML
    #32144536
Репликант
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 из этой оперы, то вообще нужно взглянуть на кусок чтобы понять что за формат
...
Рейтинг: 0 / 0
XML->UML
    #32144976
Михаил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 в данном случае для последующей генерации текста (или действий в скрипте).

Спасибо!
...
Рейтинг: 0 / 0
XML->UML
    #32145702
Репликант
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 точно есть)
...
Рейтинг: 0 / 0
XML->UML
    #32145839
Михаил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Replicant

Привет!

Вывод программы не настраивается, так как является служебным представлением. Я немного упростил вид - там вложенность больше.

Не совсем понял, зачем обходить граф.
(для меня это как раз не было бы проблемой)
Point - это и есть состояние системы. В XML (в его блоке) для него перечислены переходы в другие состояния (point-ы), а также некоторым образом условия по которым эти переходы осуществляются.

Михаил.
...
Рейтинг: 0 / 0
XML->UML
    #32146279
Репликант
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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, если конечно реализовать трансляцию хотя бы для состояний
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / XML->UML
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]