Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Itogovy_otchet.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

2.8 Другие нефункциональные требования

    • эффективность

    • практичность

    • сопровождаемость

    • понятность

    • простота использования

Требований мобильности и портируемости не предъявляется.

3. Разработка и описание программы Итерация 1.

3.1.1 Анализ требований

Первая итерация включает в себя создание прототипа программы, который впоследствии послужит «ядром» программной системы.

На первой итерации разработки программной системы реализованы следующие функциональные характеристики:

  • Создание нового проекта:

    • определение значений стандартных атрибутов: «название», «сроки», «бюджет»;

    • добавление участников в проект;

    • добавление артефактов, созданных с целью реализации данного проекта;

  • добавление ранее созданного проекта из файла;

  • хранение данных о добавленных проектах;

  • изменение вышеописанных свойств проекта;

  • создание участников:

    • определение значений стандартных атрибутов: «ФИО», «Роль», «Полномочия», «Контактная информация»;

  • изменение информации об участнике;

  • удаление участников из проекта;

  • создание артефакта с указанием его вида, начального объема и версии;

  • изменение объема и версии артефакта;

  • сохранение истории изменений артефакта;

  • удаление артефакта c историей его изменений;

  • отображение всех созданных (добавленных) проектов

  • отображение и анализ данных о проектах:

    • отображение количества участников проекта;

    • отображение количества артефактов;

    • отображение истории изменений артефакта;

Требования, реализованные на первой итерации, представлены на диаграмме прецедентов (Рис 1).

Рис. 1

3.1.2 Проектирование

В процессе проектирования программной системы на первой итерации было выделено 4 класса:

  • Project — соответствует проекту

  • Artifact — соответствует артефакту

  • Member — соответствует участнику

  • Controller — отвечает за обработку запросов пользователя, сохранение данных о проекте

Шаблоны проектирования

На первой итерации был применен следующий шаблон проектирования

Шаблон проектирования Controller

Создан класс Controller, отвечающий за поступление и координацию операций, поступающих на уровне интерфейса пользователя. Формы делегируют получаемые сообщения о сохранении изменений объекта классу Controller

Описание классов

Класс Project содержит поля:

  • Name – Название проекта

  • Deadline – Срок сдачи проекта

  • Budget – Бюджет проекта

  • artifactList – Коллекция( список) артефактов проекта

  • memberList – Коллекция( список) участников проекта

И следующий метод:

  • ChangeProject – Изменение данных проекта

Класс Artifact содержит поля:

  • Name – Название артефакта

  • View – Вид артефакта

  • Size – Размер артефакта

  • Version – Версия артефакта

  • artInfList – Коллекция( список) элементов типа структуры ArtifactInfo, хранит изменения всех артефактов

И следующие методы:

  • Artifact – Конструктор класса

  • ChangeArtifact – Изменение размера и версии артефакта

  • CreateInfoList – Добавление изменения в коллекцию(список) изменений

Структура ArtifactInfo содержит 2 поля:

  • newSize – Строка, содержащая размер артефакта

  • newVersion - Строка, содержащая версию артефакта

Класс Member содержит поля:

  • Surname – ФИО участника

  • Role – Роль участника

  • Priviligies – Привилегии участника

  • ContactInformation – Контактная информация участника

И следующие методы:

  • Member – Конструктор класса

  • ChangeMember – Изменение данных участника

Также, в соответствии с шаблоном проектирования Controller, используется вспомогательный класс Controller, содержащий поля:

  • PathList – Коллекция( список) путей к ранее созданным проектам

  • ProjectDirAbsPath – Путь к текущему проекту

  • ArtifactFileName – Имя файла, содержащего информацию об артефактах проекта

  • ArtifactChangeFileName – Имя файла, содержащего информацию об изменениях артефактов проекта

  • MemberFileName – Имя файла, содержащего информацию об участниках проекта

  • project – Текущий проект

И следующие методы:

  • ReadInfo – Чтение из файла путей к ранее созданным проектам

  • ReadProjectFromFile – Считывание проекта из файла

  • ReadArtifactFromFile – Считывание списка артефактов проекта из файла

  • ReadMemberFromFile – Считывание списка участников проекта из файла

  • ReadInfoListFromFile – Запись информации об изменении всех артефактов проекта в файл

  • AddProject – Запись данных по текущему проекту в файл

  • WriteArtifactToFile – Запись списка артефактов проекта в файл

  • WriteMemberToFile – Запись списка участников проекта в файл

  • AddInfoArtifact – Сохранение всех изменений артефакта проекта в файл

  • SaveInfo – Сохранение путей к уже созданным проектам в файл

Диаграмма классов

Взаимодействие классов представлено в виде диаграммы классов (Рис. 2).

Рис.2

В структуру класса Project включены поля описывающие проект, а так же поля обеспечивающие взаимосвязь проекта и вовлеченных участников, информационного окружения (артефактов). Пользователю предоставлена возможность изменять основные поля проекта, поэтому в класс добавлен метод обновления этих данных.

Класс Member хранит основные данные об участниках и дает пользователю возможность изменять их с помощью метода ChangeMember.

Artifact хранит актуальные сведения об артефакте и историю его изменений. История представляет собой коллекцию (список) пар: размер - версия; заполненную в порядке изменения артефакта. Эти два поля объединены в структуру для удобства записи/чтения из файла. В дальнейшем будет создан класс, соответствующий журналу.

Управляющий класс Controller обеспечивает мобильный доступ ко всем полям всех классов. Передается на все формы программной системы. Методы класса контроллер обеспечивают изменения текущего проекта в соответствии с запросами пользователя. Кроме того, они обеспечивают сохранение данных о проекте в файлы, а так же их чтение из файлов.

Диаграмма содержит все вышеописанные классы.

Между классами Project и Member — отношение композитного агрегирования «один ко многим». Решение установить такое отношение между классами было принято, так как в предметной области понятие участник подразумевает, что он вовлечен хотя бы в один проект, если человек является участником проекта, то он не может существовать самостоятельно. Проект в свою очередь может включать в себя много участников или ни одного( например, когда проект только разрабатывается, уточняются его бюджет, сроки и т.д)

Между классами Project и Artifact — отношение композитного агрегирования «один ко многим». Информационное окружение каждого проекта уникально — каждый артефакт принадлежит только одному проекту, при этом на некоторых этапах разработки артефактов может вообще не быть, а может быть и множество.

На первой итерации Project включен в состав Controller и выполняет функцию контейнера для временного хранения данных о проекте, в процессе изменения их пользователем. После окончания работы с проектом Controller сохраняет все данные о проекте в файл и очищает поля объекта класса Project. В системе объявлен только 1 объект типа Controller. Данная концепция была пересмотренна в последующих итерациях.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]