UMLEditor – редактор диаграмм компонентов UML В разработке участвовали студенты группы ИВТ-461 Барыбин М.В Макайда А.П. Соколов А.А Краткое содержание • Цели и задачи • Примеры блоков, диалоговых окон, готовой диаграммы. • UCD, сценарии тестирования. • Тестирование блоков программы. Входные и выходные данные функций • Сценарии тестирования. • Результаты тестирования. • Распределение работ. • Результат разработки • Проблемы Цели и задачи Главная функция: создание и хранение диаграмм компонентов UML Рис.1 Пример диалогового окна Основные функции: -Сохранение диаграммы в файл в формате TRP; -Загрузка диаграммы из файла в формате TRP; -Добавление блоков с интерфейса программы; -Изменение положения блока, путем «перетаскивания» его мышью; -Добавление связей между блоками диаграммы; -Экспорт диаграммы в формат .jpg ; Программа отображает от одного до четырех блоков диаграммы без элементов «прокрутки». Рис.2 Примеры блоков диаграммы Рис 3. Перемещение блока Цели и задачи Программа должна гарантированно работать в заданной конфигурации. Выходной файл: Для сохранения диаграмм используется собственный формат файла (*.trp) Для экспорта диаграммы – формат *.jpg. Переносимость: Графический редактор предназначен для работы под управлением ОС Windows. Установщик: Для графического редактора предусмотрен установщик, позволяющий запускать программу на чистой операционной системе без установки дополнительных библиотек. Выбранные технологии: Язык и библиотеки - язык разработки С++ - библиотека Qt Среда разработки -Visual Studio 2008 -Qt 4.7.0 UCD Рис 4. Общий вид UCD Рис 5. Создание блока Рис 6. Загрузка диаграммы UCD Рис 7. Экспорт диаграммы Рис 8. Сохранение диаграммы Тестирование блоков программы. Входные и выходные данные функций 1. Главная функция int main(int argc, char *argv[]) Создание, отображение главного окна программы 2. Главное окно void createToolBar(); Служебная функция, создание панелей инструментов главного окна Работает int GetEncoderClsid(const WCHAR* format, CLSID* pClsid); Служебная функция, определение Id папки для экспорта в файл .jpg Работает void SaveBitmap(HBITMAP hBitmap); Служебная функция, сохранение снимка диаграммы для экспорта в файл .jpg Работает void createComponent(); Создание компонента Работает void createClass(); Создание класса Работает void createLink(); Создание связи Работает void createScreen(); Снимок окна программы для экспорта в файл .jpg Работает void createComment(); Создание комментария Работает void tArrow(); Выделение объектов Работает void tFileOpen(); Загрузка диаграммы из файла Работает void tSave(); Сохранение диаграммы в файл Работает Работает Тестирование блоков программы. Входные и выходные данные функций void setComponent() void setArrow() void setClass() void setLink() void Save(QString fileName) void open(QString fileName) void txt() virtual void mousePressEvent (QGraphicsSceneMouseEvent * mouseEvent) virtual void keyPressEvent(QKeyEvent * keyEvent) virtual void mouseReleaseEvent (QGraphicsSceneMouseEvent * mouseEvent) void delClass(QPointF) void link(QPointF scPoint_1, QPointF scPoint_2) void linkOp(QPointF scPoint_1, QPointF scPoint_2) void makeWalls() void movementLink(float x, float y) 3.Рабочая область Добавление компонента Выбор объекта Добавление класса Создание связей между объектами Функция сохранения в файл функция загрузки из файла Создание комментария Реакция на клик кнопок мыши Работает Работает Работает Работает Работает Работает Работает Работает частично Реакция на ввод команды с клавиатуры Не работает Реакция на клик кнопок мыши Работает частично Удаление связей связанных с удаляемым классом построение связи между объектами построение связи между объектами Определение границ сцены Перемещение связи Работает Работает частично Работает частично Работает Не работает Тестирование блоков программы. Входные и выходные данные функций 3.Рабочая область QGraphicsItem * itemCollidesWith(QGraphicsItem * item); Проверка пересечения объектов Не работает void placeBox(float x, float y) Добавление объектов Работает friend QDataStream &operator<< (QDataStream & output, const cLink & c) Перегрузка операторов ввода вывода (сохранение, загрузка из файла .trp в соответствии со структурой Работает friend QDataStream &operator>> (QDataStream &isput, cLink &c) Работает 4. Диалоговое окно (ввода текста) dlg(QWidget *parent = 0, QString str = ""); Конструктор. Создает диалоговое окно, предлагает ввод текста комментария либо свойства либо метода класса Работает Сценарии тестирования • Начало работы – – Создание новой диаграммы. Новая диаграмма создается при запуске программы. Загрузка диаграммы из файла. При выборе в меню иконки “открыть” открывается окно выбора файла. • • • • Редактирование диаграммы – Создание элемента диаграммы. – Создание связи между элементами.. • • • • При нажатии на кнопку в панели инструментов с нужным элементом. При выборе элемента, связь, строиться по клику от одного элемента к другому. Между этими элементами появиться связь. Если количество связей на рабочей области равно 6, новая связь не создастся. – Удаление элемента диаграммы. – Перемещение элементов диаграммы. • • • • • При выборе файла (формат файла *.trp) открывается ранее созданная диаграмма. Файлы другого формата программа не видит. При нажатии mouse2 по элементу. Также вместе с элементом диаграммы удаляются все связи относящиеся к нему. При выбранном инструменте «выбор объекта», щелкнув и задержав левую клавишу мыши на любом элементе, расположенном в рабочей области, перемещая указатель, перемещается соответствующий элемент. При сближении перемещаемого элемента и другого элементы диаграммы элементы наслаиваются друг на друга. Сохранение диаграммы в файл собственного формата – При выборе в панели инструментов действия «сохранить» происходит вызов диалогового окна для указания места сохранения файла (формат файла *.trp). • • После того как путь и имя файла были выбраны, нажимаем на кнопку сохранить и данные диаграммы записываются в файл с стем именем, которое было указано в диалоговом окне. Если файл с именем указанным в диалоговом окне существует, появится сообщение с вопросом стоит ли перезаписать существующий файл. – – • • Если согласиться, файл будет перезаписан. Если не согласится, диалоговое окно будет закрыто. Экспорт диаграммы в графический файл При выборе в меню пункта «экспорт» происходит сохранения данных в фармта *.jpg. Результаты тестирования • Полнота функционирования: основные функции работают, программа частично соответствует стандартам. • Эффективность: программа позволяет эффективно создавать простые диаграммы. В дальнейшем дает возможность быстрой доработки уже созданной диаграммы. • Надежность: Программа может бесперебойно функционировать не во всех исключительных ситуациях. • Удобство: Программа имеет простой, интуитивно понятный интерфейс. Распределение работ • • • Барыбин М.В -Разработка USE-case диаграмм. -Создание репозитории, презинтации. -Разработка прототипа программы. -Разработка основных функций UMLEditor. Макайда А.П. -Нормконтроль документации. - Разработка основных функций UMLEditor. -Тестирование и отладка UMLEditor. -Разработка структуры программы. -Разработка структуры выходного файла. Соколов А.А. -Тестирование UMLEditor. -Разработка интерфейса программы -Написание документации. Результат разработки • Наша команда достигла поставленных задач. Программа выполняет построение диаграммы. В программе присутствуют небольшие ошибки. • На втором релизе мы решим проблему отображения связей, сделаем детальный просмотр методов и свойств классов. Если нашей команде хватит времени и ресурсов программа будет лишена всех нынешних недостатков в ее работоспособности. Так же будет увеличено количество блоков отображаемых без элемента «прокрутка». Тем самым возрастет эффективность работы с UMLEditor. Работа с ним станет гораздо удобней. Будет реализована возможность масштабирования. Проблемы • Огромный недостаток времени и ресурсов. • Навязывание заказчиком непривычных (неудобных) средств командной разработки.