Цели и задачи проекта Цель проекта Сократить время создания и изменение UML-диаграмм типа Activity Diagram с помощью редактора UML-диаграмм. Задачи проекта Перед проектом стоят следующие задачи: Проведение предпроектного исследования Анализ вариантов решения и выбор основного; Реализация проекта согласно выбранному варианту; Тестирование полученного решения; Внедрение на предприятии заказчика. Область и объект проектирования Использование Объектное моделирование в области разработки программного обеспечения с помощью графического редактора. Объект проектирования Диаграмма активности. Диаграмма состоит из блоков: 1. 2. 3. 4. 5. Блок “Action”. Блок “Initial node”. Блок “Final node”. Блок “Decision”. Блок “Note”. И связей: 1. Связь “Arrow flow”. 2. Связь “Note flow”. Структура: Рис.1. Пример выходной диаграммы. Функциональные требования к проекту Программа должна предоставить пользователю следующие возможности: Создание и редактирование UML-диаграммы типа Activity Diagram. Добавлять следующие блоки, на диаграмму: “Action”, “Initial node”, “Final node”, “Decision”, “Note”,- при помощи одноименных кнопок на панели инструментов. Создавать связи между блоками путем выбора соответствующего типу связи инструмента на панели инструментов, зажатия на начальном блоке левой кнопки мыши, перетаскивания курсора (не отпуская левой кнопки) на конечный блок и отпускания левой кнопки мыши. Редактировать форму стрелок, путем перемещения узлов стрелок (которые создаются путем зажатия левой кнопки мыши на стрелке и дальнейшем перемещении курсора). Выделять блоки “Action”, “Initial node”, “Final node”, “Decision”, “Note” на диаграмме по щелчку левой кнопкой мыши на блоке, или с помощью прямоугольника выделения. Выделены будут блоки, полностью размещенные внутри прямоугольника. Изменять параметры блоков в отдельном диалоге путем двойного щелчка на элементе: “Action”: "Заголовок" “Note”: "Заголовок", "Описание" “Arrow flow”: "Текст" Менять положение блоков: “Action”, “Initial node”, “Final node”, “Decision”, “Note”, - по команде пользователя – левои кнопкои мыши перемещать блок по рабочеи зоне, а также положение группы блоков путем выделения нескольких блоков с помощью прямоугольника выделения и дальнеишего перемещения одного из блоков с помощью левои кнопки мыши. Удалять блоки: “Action”, “Initial node”, “Final node”, “Decision”, “Note”, а также группы блоков, выделенных с помощью прямоугольника выделения - по команде пользователя – кнопка на главнои панели, или команда в меню, или клавиша Del. Возможность использования буфера обмена, в котором реализованы следующие функции: o Выделение множества фигур мышкои и при помощи клавиш Ctrl/Shift аналогично выделению фаилов в «проводнике». o Копирование выделенных фигур в буфер обмена. o Вставка фигур из буфера обмена. o Вырезать/вставить фигуры. Функция Undo/Redo (отмена последнего деиствия) на произвольное количество шагов для из предусмотренных деиствии над диаграммои. Функция масштабирования. Удалять все связи, ассоциируемые с удаляемым(и) блоком(-ами). Удалять связи путем их выделения и выбора команды «Удаление» из меню, на панели инструментов или нажатием кнопки Del. Изменять параметры связей путем двойного щелчка левой кнопкой мыши на связи: “Arrow flow”: "Текст" Сохранять UML-диаграммы типа Activity Diagram, созданные или открытые и редактируемые с помощью данного редактора, в фаил формата (*.aex). Сохранить диаграмму в файл формата PNG. Загружать UML-диаграмм типа Activity Diagram из фаила формата (*.aex). Дополнительные требования Реализация функции «горячих» клавиш. Реализовать «дублирование при перетаскивании» - при перетаскивании объекта с нажатои клавишеи Alt он должен дублироваться и перетаскиванию подвергаться его копия, оставляя оригинальныи объект на месте. Наличие семантическои проверки связеи. При возникновении исключительных ситуации – выдавать сообщение об ошибке и предлагать возможные пути решения проблемы. Реализовать функцию пометки диаграммы как «Черновик», переключаемую кнопкои на панели инструментов или через меню. Показывать окно сведений о программе по команде главного меню. Нефункциональные требования Минимальные системные требования 1. Тактовая частота процессора – не ниже 1 ГГц. 2. Объем оперативной памяти – не менее 256 Мб. 3. Свободное место на жестком диске – не менее 50 Мб. 4. Операционная систем а – Windows XP. Программа будет разрабатываться на языке С++ с использованием библиотеки Qt. Программа позволяет размещать на рабочей зоне неограниченное количество блоков: “Action”, “Initial node”, “Final node”, “Decision”, “Note”, однако под читабельностью диаграммы понимается наличие не более 9 блоков на рабочей зоне. Программа должна обладать простым использования визуальных элементов. Простота работы в программе должна быть достигнута путем использования часто употребляемых визуальных шаблонов пользовательских интерфейсов, таких как рабочее поле, меню,Drag-and-Drop и панель инструментов. При наведении курсора мыши на блок “Note” отображается всплывающая подсказка, содержащая подробное описание блока (расшифровку его названия). Программа ни при каких действиях пользователя не должна аварийно завершать свою работу или зависать. При возникновении исключительных ситуаций должно выдаваться сообщение с причиной и предложением пути решения. Инсталлятор должен содержать все необходимые файлы, библиотеки и пр. для корректной работы программы на компьютере пользователя, работающем под управлением операционной системой Windows XP, после ее установки. и удобным интерфейсом за счет Рамки и ограничения проекта Программный продукт должен быть окончательно реализован до 10 декабря. Программный продукт должен быть реализован в соответствии с заданием. Диаграммы, построенные в редакторе, должны соответствовать стандарту языка UML. Под этим подразумевается соответствие стандарту внешнего вида элементов и их свойств и функциональности. Корректная работа программного продукта на ОС, отличных от WindowsXP, не гарантируется. Программа поддерживает работу не более одного пользователя единовременно. Интерфейс программного продукта имеет язык представления - русский. Названия блоков приведены на английском языке. При возникновении нештатной ситуации, например, автоматический перезапуск, отключение питания, программа отвечает только за сохраненные пользователем данные. Ширина зоны стрелки, по которой следует попасть, чтобы выделить ее для удаления, должна быть не менее семи пикселей. Структура диаграммы описывается следующими правилами (стрелкой обозначено соединение с помощью “ArrowFlow”, знаком равенства – с помощью “Noteflow”; связь “Noteflow” не имеет направления): “Action” -> “Action” “Initial node” -> “Action” “Action” -> “Final node” “Action” -> “Decision”, “Decision” -> “Action” “Action” = “Note” “Initial node” -> “Decision” “Initial node” = “Note” “Decision” -> “Final node” “Final node” = “Note” “Decision” = “Note” “Note” = “Arrow flow” Любые два элемента могут быть соединены не более, чем одной (допустимой) связью друг с другом. Все блоки имеют ограничения по минимальному размеру. В случае, если текст не помещается внутри блока начального размера (для блоков, типа Action), блок будет масштабирован в зависимости от размера текста. Для блоков типа Note, текст будет обрезан под размер блока, также будет добавлено «…», как подсказка о том, что текст имеет продолжение. Пример диаграммы, которая может быть построена в редакторе Рис.2. Диаграмма, которую можно построить с помощью данного редактора. Пример диаграммы, которая не может быть построена в данном редакторе Рис.3. Диаграмма, которую нельзя построить в данном редакторе, т.к. : 1. Стрелка может соединять только блоки диаграммы, но не стрелки; 2. Два блока могут соединяться лишь однои стрелкои; 3. Стрелки не могут соединяться другими линиями и стрелками; 4. Стрелки могут быть лишь однонаправленные; 5. Наличие данного блока не соответствует заданию; 6. Стрелка должна соединять 2 блока. Макеты экранных форм редактора Структура главного меню «Файл»: «Новый», «Открыть…», «Сохранить», «Сохранить как…», «Черновик», «Выход» “Правка”: «Отменить», «Повтроить», «Вырезать», «Копировать», «Вставить», «Удалить», «Выделить все», «Свойства» “Инструменты”: «Select», “Arrow flow”, “Note flow”, “Action”, “Initial node”, “Final node”, “Desicion”, “Note” “?”: “О программе...” Главное окно. Рис.4. Макет главного окна редактора. Разработка концепции программы, выбор технологии. Языки программирования и библиотеки. С++, Qt 4.х.х. Средства разработки. Qt Creator. Средства документирования. Astah, MS Word Средства тестирования. Ручное тестирование Разработка программы и методики испытаний Юзабилити тестирование с привлечением сторонних людей, близких по роду деятельности к предполагаемым пользователям. Средства командной разработки Средства контроля версий: Mercurial Средства коммуникации. e-mail Skype. План работ и оценка стоимости проекта План Писков Сергей - архитектура, программирование: Написание технической документации Архитектура проекта Кодирование сложных алгоритмов Разработка диаграммы классов Тестирование работоспособности программы Внедрение ПО Редактирование презентации Прохорова Татьяна - документация, программирование: Написание технической документации Создание Use_Case диаграммы Разработка сценария работы Разработка объектной модели Разработка программы и методики испытаний Программирование Тестирование работоспособности программы Создание презентации Серов Сергей - программирование, дизайн: Программирование Написание документации Разработка сценария тестирования Дизайн интерфейса Тестирование работоспособности программы