UMLEditor * ******** ******** *********** UML

advertisement
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. Работа с ним станет гораздо удобней. Будет
реализована возможность масштабирования.
Проблемы
• Огромный недостаток времени и ресурсов.
• Навязывание заказчиком непривычных
(неудобных) средств командной
разработки.
Download