Федеральное агентство по образованию Волгоградский Государственный Технический Университет Кафедра «Программное обеспечение автоматизированных систем» «Разработка графического редактора UML-диаграмм компонентов» Выполнили: студенты группы ИВТ- 464 Коротков А.А., Млечко Р.И., Рябов А. А. Волгоград, 2011
Цели и задачи проекта Цель : оптимизация процесса создания диаграммы компонентов UML. Для достижения поставленной цели были поставлены следующие задачи : Изучение и анализ предметной области заказчика. Разработка проектной документации с учётом требований и корректив заказчика. Анализ и выбор методологии создания программного продукта. Реализация методов и отладка программного продукта. Презентация программного продукта заказчику, предложение концепции дальнейшего развития проекта
Этапы решения задач После формирования целей и задач, было проведено проектное исследование – определены требования : Программный продукт должен позволять создавать, редактировать, хранить и удалять диаграммы компонентов со связями, включающими в себя следующие типы отношений: реализация, зависимость и использование. Причем, если компонент связан с несколькими компонентами, такая связь должна осуществляться посредством интерфейсов. Программный продукт также должен позволять создавать комментарии, включая свободные комментарии, ассоциированные с компонентом.
Функциональные требования 1.Главная функция Создание и хранение диаграмм компонентов UML. 2. Основные функции Программа должна работать с файлом Открыть диаграмму компонентов из файла пользовательского формата csd Сохранить диаграмму компонентов в файл формата csd Сохранить как диаграмму компонентов в файл формата csd Программа должна работать с элементом диаграммы «Компонент» Создать элементом диаграммы «Компонент» на рабочем поле Переместить элемент диаграммы «Компонент» в любую область рабочего поля с сохранением связей Удалить элемент диаграммы «Компонент» по нажатию кнопки delete или соответствующего элемента меню Программа должна работать с элементом диаграммы «Связь» Создать элемент диаграммы «Связь» путем выбора объектов, между которыми она должна быть установлена Создать элемент диаграммы «Связь» путем выбора соответствующих объектов и соединяющего их интерфейса Удалить элемент диаграммы «Связь» по нажатию кнопки delete или соответствующего элемента меню Программа должна работать с элементом диаграммы «Интерфейс» Создать элементом диаграммы «Интерфейс» на рабочем поле Переместить элемент диаграммы «Интерфейс» в любую область рабочего поля с сохранением связей Удалить элемент диаграммы «Интерфейс» по нажатию кнопки delete или соответствующего элемента меню Программа должна работать с элементом диаграммы «Комментарий» Создать элементом диаграммы «Комментарий» на рабочем поле Связать комментарий с объектом, к которому он относится Переместить элемент диаграммы «Комментарий» в любую область рабочего поля с сохранением связей Удалить элемент диаграммы «Комментарий» по нажатию кнопки delete или соответствующего элемента меню.
Нефункциональные требования 1. Программа должна бесперебойно работать в Windows XP Professional. 2. Программа должна не завершаться аварийно при действиях пользователя не предусмотренных данной программой. 3. Для установки программы должен быть предусмотрен инсталлер, включающий все библиотеки и компоненты, необходимые для корректной работы программы. 4. Программа должна адекватно отображать до 10 классов на рабочем поле. 5. Для выделения связей должна быть предусмотрена активная область
Используемые технологии 1.Язык разработки – С++ с использованием библиотеки Qt. (все участники команды имеют опыт разработки приложений на этом языке. Qt предоставляет большие возможности работы с графикой) 2.Среда разработки – Microsoft Visual Studio 2008 (большой набор инструментов, удобство использования, опыт работы у участников) 3.Средство комментирования – Doxygen. (более удобно, нежели ручное комментирование). 4.Средство командой разработки – Tortoise SVN + репозиторий на Google Code. (широкая доступность, отсутствие платы за использование, удобство, наглядность). 5.Средства связи – Skype, мобильная связь.
Проектное решение После определения требований и выбора средств разработки, была построена диаграмма вариантов использования, на основе которой в будущем, создавалась диаграмма классов.
Проектное решение Диаграмма классов
План разработки
продолжение
Результаты разработки В результате разработки был получен программный продукт – редактор диаграммы компонентов в нотации UML. Если говорить о его надежности - в качестве меры можно принять величину R = 1 - k/n = (n-k)/n, значения которой (от 0 до 1) согласуются с общепринятым смыслом термина надежность: например, если все запуски окончились с ошибочным результатом (k = n), то надежность - нулевая. При финальном тестировании критических ошибок выявлено не было, следовательно, программный продукт можно считать надежным. Разработку можно считать эффективной в полной мере, так как все поставленные задачи были решены, в поставленные временные рамки команда уложилась, корректировки внесенные заказчиком были своевременно приняты во внимание в окончательном релизе. Функциональность программного продукта отвечает всем предъявленным требованиям.
Командный и личный вклад участников в разработку проекта По предложению заказчика был создан репозиторий, в который загружались работы на протяжении всего процесса разработки. Все участники внесли эквивалентный вклад в разработку проекта, согласно предложенному плану работ. Каждый участник программировал один из элементов диаграммы – компоненты и комментарии, связи и интерфейсы. В дополнение к этому Коротков Александр занимался организационной работой и подготовкой документации, Млечко Роман разрабатывал структуру и концепцию проекта, а Рябов Александр разрабатывал структуру файла и методы загрузки и сохранения. В равной мере участники занимались тестированием, выявлением проблем и их разрешением.
Предложения по дополнению программы Ко второму релизу программы планируется реализовать следующее -создать менеджер объектов, позволяющий редактировать их свойства -создать возврат на один или несколько шагов назад -организовать сохранение в файл формата xml -создать контекстное меню для выполнения функций копирования, вставки и т.п.