UML редактор (C++, UML, Qt, Flex, Bison...)

Модератор: Модераторы разделов

skillergti
Сообщения: 34
ОС: slackware

UML редактор

Сообщение skillergti »

Здравствуйте!
Разрабатываю проект UML редактора.
Общее задание звучит так:
Разработка системы моделирования диаграмм классов UML. Основные требования:
-графический интерфейс создания диаграмм классов UML;
-генерация кода на C++;
-синтез диаграмм классов на основе кода на C++.

Создал сканер, парсер с++ кода используя утилиты Flex,Bison.
И встал в тупик из-за двух вопросов:
1) Каким образом реализовать этот графический интерфейс создания диаграмм классов.
Начал копать Qt. Скачал их книгу. Научился создавать квадратики, кружки и другие полезные элементы:) Но в упор не понимаю и не вижу в этой книге, как сделать так чтобы эти квадратики пользователь мог двигать мышкой по полю, создавать стрелочки которые будут соединять эти квадратики. Смотрел на код примеров, но там вообще какой-то дремучий лес у них оказался: неизвестные макроопределения и величина кода поставили в тупик.
2) Слабо представляю в какой структуре лучше хранить информацию о классах и их родителях и как потом из этой информации создавать эту графическую диаграмму. Были идеи создать список, который бы включал имя класса и список с указателями на классы-родители. Но что-то мне кажется это черезчур сложная структура выйдет и я просто зароюсь в описании методов для неё.

Прошу пнуть меня в нужном направлении касаемо этих вопросов...
Если есть ещё какие-то дополнительные идеи касаемо этого проекта, которые помогли бы мне, буду очень благодарен
Спасибо сказали:
kamre
Сообщения: 243
ОС: Win7/Ubuntu 11.10

Re: UML редактор

Сообщение kamre »

skillergti писал(а):
28.04.2009 17:18
1) Каким образом реализовать этот графический интерфейс создания диаграмм классов.
Начал копать Qt. Скачал их книгу. Научился создавать квадратики, кружки и другие полезные элементы:) Но в упор не понимаю и не вижу в этой книге, как сделать так чтобы эти квадратики пользователь мог двигать мышкой по полю, создавать стрелочки которые будут соединять эти квадратики. Смотрел на код примеров, но там вообще какой-то дремучий лес у них оказался: неизвестные макроопределения и величина кода поставили в тупик.

http://doc.trolltech.com/4.5/graphicsview-diagramscene.html

skillergti писал(а):
28.04.2009 17:18
Если есть ещё какие-то дополнительные идеи касаемо этого проекта, которые помогли бы мне, буду очень благодарен

Можно еще исходники посмотреть у других opensource программ для редактирования UML.
Спасибо сказали:
Аватара пользователя
Denjs
Сообщения: 1685
ОС: SuSe 10.2

Re: UML редактор

Сообщение Denjs »

kamre писал(а):
28.04.2009 19:31
skillergti писал(а):
28.04.2009 17:18
1) Каким образом реализовать этот графический интерфейс создания диаграмм классов.
Начал копать Qt. Скачал их книгу. ....
Но в упор не понимаю и не вижу в этой книге, как сделать так чтобы эти квадратики пользователь мог двигать мышкой по полю, создавать стрелочки которые будут соединять эти квадратики. Смотрел на код примеров, но там вообще какой-то дремучий лес у них оказался: неизвестные макроопределения и величина кода поставили в тупик.


Учитесь думать чуток по другому.
QT в первую очередь - это сигнал-слотовый механизм.
Как только научитесь представлять программу в этом виде - начнется сказка ).

В книге задачь на стрелочки нет, а вот с тасканием мышкой что-то должно быть... смотрите примеры из Assistant (справочная система в составе QT) - она по объему раз в 5-10 больше книги будет.

Вы кстати opensource-проект содаёте? мы код увидим? ^_^
вот кстати если вы создадите парсер который будет разбирать QT-шный код (с его "неизвестными макроопределениями") - будет вам огромнейшгий респект.
потому что вы, по моему, будете единственным кто это умеет делать.

А если вы ещё потом сможете разбирать структуру программы и вычленять оттуда сигнал-слоты с отрисовкой их на модифицированную диаграмму объектов - так это "вообще будет кипяток".

_______________________________
Как хранить? XML не катит? в QT вполне приемлемые средства для работы с XML....
QDroid - Среда исполнения и фреймворк для QtScript.
OTPD - Открытые драйвера промышленных принтеров чеков и этикеток (кроссплатформенная подсистема печати).
Спасибо сказали:
skillergti
Сообщения: 34
ОС: slackware

Re: UML редактор

Сообщение skillergti »

спасибо за советы:)
вообще-то это мой курсовик по ооп :blush:
Спасибо сказали:
Doublespace
Сообщения: 275
ОС: Debian Lenny,Squeeze,Centos

Re: UML редактор

Сообщение Doublespace »

В examples посмотрите, в частности graphicsview/diagramscene
Спасибо сказали: