Анализ предметной области, Инструменты разработки, Проектирование, цикл жизнедеятельности ПО

Автор работы: Пользователь скрыл имя, 14 Марта 2014 в 13:46, курсовая работа

Краткое описание

Есть спортивный зал, в котором проводятся занятия. Необходимо закреплять тренеров за группами, занимающихся определёнными видами спорта. Имеются тренера и группы. Каждый тренер получает определенный гонорара за проведенное занятие. При закреплении тренера за группой составляется договор, в котором прописывается дата закрепления тренера и длительность занятий с группой. По окончании занятий рассчитывается и выплачивается тренеру оговоренная сумма. Субъектом системы является администратор.

Прикрепленные файлы: 1 файл

!!ПЗ.docx

— 579.08 Кб (Скачать документ)

Основные исполнители состояний деятельности:

  • Пользователь;
  • Администратор;
  • Программный модуль справки;
  • Демонстрационный программный модуль;
  • Модуль управления.

Определим деятельности системы (таблица 2).

Таблица 2 – Определение деятельностей

Прецедент

Последовательность деятельностей

Условие перехода

Исполнитель

Получить справку

Выбор раздела

 

Пользователь

Поиск файла справки

 

Модуль справки

Чтение файла справки

Файл найден

Модуль справки

Выдача файла справки

Файл прочтён

Модуль справки

Посмотреть список групп

Запрос на просмотр списка групп

 

Демонстрац. модуль

Подтверждение на запрос

 

Пользователь

Демонстрация списка групп

Подтверждение

Демонстрац. Модуль

Управлять тренерами

Запрос на удаление тренера

 

Модуль управления

Удаление тренера

Подтверждение

Администратор

Запрос на добавление тренера

 

Модуль управления

Добавление тренера

Подтверждение

Администратор

Запрос на изменение тренера

 

Модуль управления

Изменение тренера

Подтверждение

Администратор

Управлять группами

Запрос на удаление группы

 

Модуль управления

Удаление группы

Подтверждение

Администратор

Запрос на добавление группы

 

Модуль управления

Добавление группы

Подтверждение

Администратор

Запрос на изменение группы

 

Модуль управления

Изменение группы

Подтверждение

Администратор

Управлять закреплением групп

Запрос на удаление закрепления группы

 

Модуль управления

Удаление закрепления группы

Подтверждение

Администратор

Запрос на добавление закрепления группы

 

Модуль управления

Добавление закрепления группы

Подтверждение

Администратор

Запрос на изменение закрепления группы

 

Модуль управления

Изменение закрепления группы

Подтверждение

Администратор

Авторизация Admina

Запрос на ввод логина и пароля

 

Модуль управления

Ввод логина и пароля

Подтверждение

Администратор

А) если проверка прошла удачно, то вход в систему

Б) если проверка прошла неудачно, то выход из системы

 

Модуль управления


 

 

 

После описания последовательности деятельностей, составляем общую диаграмму деятельности администратора (рисунок 4).

Рисунок 4 - Общая диаграмма деятельностей администратора

 

 

 

 

 

 

 

 

  1. Построение DOM
    1. Выбор классов

Построим диаграмму классов для сценария «Скорректировать информацию о закреплении тренеров за группами».

Заполнение диаграммы начнём с определения класса-сущностей. Рассматриваемый сценарий состоит из:

- администратора, который выполняет  коррекцию информации;

- управляющего закреплением групп;

- всей информации, которую можно  скорректировать.

Создадим класс-сущность Admin (администратор), ManagerZakreplenieGrupp (управляющий закреплением групп) и StructureFirm (структура фирмы). Поскольку в структуре фирмы могут быть различные комплектующие, то введём ещё три (необходимых нам по описанию предметной области) класса-сущности: ListTreners (список тренеров), ListGrupps (список групп), ListZakreplenieGrupps (список закрепления нрупп). В каждый из этих классов может входить ещё по классу, их характеризующему: Trener (тренер), Grupp (группа), ZakreplenieGrupp (закрепление группы).

Получим классы предметной области (рисунок 5).

Рисунок 5 –Классы предметной области

Добавим отношения между классами:

  • Класс Admin и StructureFirm – отношение ассоциации, поскольку данные два класса просто связанны друг с другом и никакие другие типы связей здесь применить нельзя;
  • Класс Admin и ManagerZakreplenieGrup – отношение ассоциации. У одного администратора может быть несколько управляющих закреплением групп, но у всех их может быть только один администратор, поэтому кратность связи со стороны ManagerZakreplenieGrup- *, со стороны Admin – 1.

- Класс StructureFirm с классами ListTreners, ListGrupps, ListZakreplenieGrupps – связь композиция, так как классы список тренеров список групп, список закрепления групп не могут выступать в отрыве от целого, при уничтожении класса структуры фирмы, уничтожаться и они. Структура фирмы одна, и она может содержать лишь по одному списку, поэтому связь со стороны классов ListTreners, ListGrupps, ListZakreplenieGrupps – 1, а со стороны StructureFirm – 1.

  • Класс ListTreners и Trener – связь агрегация, поскольку список тренеров является контейнером тренеров, но и те и другие являются самостоятельными классами. Связь со стороны Trener– 0..*, а со стороны ListTreners – 1.
  • Связи между классами ListGrupps и Grupp и классами ListZakreplenieGrupps и ZakreplenieGrupp аналогичны как класс ListTreners и Trener.

Построим классы предметной области и связи между ними (рисунок 6).

Рисунок 5 –Классы предметной области и связи между ними

    1. Определение атрибутов и методов классов

Опишем каждый класс предметной области, указав атрибуты и операции.

Класс Trener:

Параметр

Значение

Комментарий

Класс, представляющий собой тренера

Атрибуты

NameTrener:String – ФИО тренера

SpecializaciuTrener:Srting – специализация

KvaliwikaciuTrener:String – квалификация

GonorarTrener:int – гонорар

Все атрибуты имеют модификатор доступа - private

Операции

«create» Trener() – конструктор умолчания

«destroy» Trener() - деструктор

Все операции имеют модификатор доступа - public


 

Класс Grupp:

Параметр

Значение

Комментарий

Класс, представляющий собой группу

Атрибуты

NumberGrupp:int – номер группы

VidZanutiiGrupp:String – вид занятий

ageName:String – название возрастной категории

StatusGrupp:String – статус

Все атрибуты имеют модификатор доступа - private

Операции

«create» Grupp() – конструктор умолчания

«destroy» Grupp() - деструктор

Все операции имеют модификатор доступа - public


 

Класс Age:

Параметр

Значение

Комментарий

Класс, представляющий собой возрастную категорию группы

Атрибуты

ageName:String – название возрастной категории

ageMax: int – максимальное значение возраста

ageMin: int – минимальное значение возраста

Все атрибуты имеют модификатор доступа - private

Операции

«create» Age() – конструктор умолчания

«destroy» Age() - деструктор

Все операции имеют модификатор доступа - public


Класс Grupp и Age – связь композиция, так как класс Age не может выступать в отрыве от целого, при уничтожении класса группа, уничтожится и класс возрастная категория. Группа одна, и она может содержать только одну возрастную категорию, поэтому связь со стороны класса Grupp – 1, а со стороны Age – 1.

Класс ZakreplenieGrupp:

Параметр

Значение

Комментарий

Класс, представляющий собой закрепление группы

Атрибуты

NameTrener:String – ФИО тренера

NumberGrupp:int – номер группы

NumberDogovora: int– номер договора

dataZakrepleniu:TDate – дата закрепления

DlitelnistZanatii: int – длительность занятий

Все атрибуты имеют модификатор доступа - private

Операции

«create» ZakreplenieGrupp() – конструктор умолчания

«destroy» ZakreplenieGrupp() - деструктор

Все операции имеют модификатор доступа - public


 

 

Класс ListTreners:

Параметр

Значение

Комментарий

Класс, представляющий собой список тренеров

Атрибуты

Все атрибуты имеют модификатор доступа - private

Операции

AdditionTrener(Trener*):bool – добавление тренера

AccentTrener(Trener*) – удаление тренера

FindTrener(NameTrener str): Trener* - найти тренера по ФИО

«create» ListTreners() – конструктор умолчания

«destroy» ListTreners() - деструктор

Все операции имеют модификатор доступа - public


 

Класс ListGrupps:

Параметр

Значение

Комментарий

Класс, представляющий собой список групп

Атрибуты

Все атрибуты имеют модификатор доступа - private

Операции

AdditionGrupp(Grupp*):bool – добавление группы

AccentGrupp(Grupp*) – удаление группы

FindGrupp(NumberGrupp int): Grupp* - найти группу по номеру

«create» ListGrupps() – конструктор умолчания

«destroy» ListGrupps() - деструктор

Все операции имеют модификатор доступа - public


 

 

 

Класс ListZakreplenieGrupps:

Параметр

Значение

Комментарий

Класс, представляющий собой список закрепления групп

Атрибуты

Все атрибуты имеют модификатор доступа - private

Операции

AdditionZakreplenieGrupp(ZakreplenieGrupp*):bool – добавление закрепления группы

AccentZakreplenieGrupp(ZakreplenieGrupp*) – удаление закрепления группы

FindZakreplenieGrupp(dataZakrepleniu TDate): ZakreplenieGrupp* - найти закрепление группы по дате

«create» ListZakreplenieGrupp() – конструктор умолчания

«destroy» ListZakreplenieGrupp() - деструктор

Все операции имеют модификатор доступа - public


 

Класс List:

Параметр

Значение

Комментарий

Класс, представляющий собой базовый класс для контейнеров

Атрибуты

Все атрибуты имеют модификатор доступа - private

Операции

«create» List() – конструктор умолчания

«destroy» List() – деструктор

Все операции имеют модификатор доступа - public


Класс List с классами ListTreners, ListGrupps, ListZakreplenieGrupps – связь обобщение.

Класс StructureFirm:

Параметр

Значение

Комментарий

Класс, представляющий собой структуру фирмы

Атрибуты

firmName:String – название

listTrenes:ListTreners – список тренеров

listZakreplenieGrupps:ListZakreplenieGrupps– список закреплённых групп

listGrupps:ListGrupps – список групп

Все атрибуты имеют модификатор доступа - private

Операции

«create» StructureFirm() – конструктор умолчания

«destroy» StructureFirm() - деструктор

Все операции имеют модификатор доступа - public


 

 

 

 

Класс Admin:

Параметр

Значение

Комментарий

Класс, представляющий собой администратора фирмы

Атрибуты

adminName:String – название администратора

Все атрибуты имеют модификатор доступа - private

Операции

«create» Admin() – конструктор умолчания

«destroy» Admin() - деструктор

Все операции имеют модификатор доступа - public

Информация о работе Анализ предметной области, Инструменты разработки, Проектирование, цикл жизнедеятельности ПО