Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
moya - копия.docx
Скачиваний:
91
Добавлен:
13.02.2016
Размер:
1.34 Mб
Скачать

3.4 Создание диаграммы классов

На диаграммах классов отображаются классы и пакеты системы. Это статические картины фрагментов системы и связей между ними.

Для более наглядного представления, они были сгруппированы по стереотипу (рисунок 10). Стереотипы - это механизм, позволяющий разделять классы на категории. Таким образом, были созданы следующие пакеты: Entities(Сущности),Boundaries(Границы) иControl(Управление). В эти пакеты были помещены советующие им классы.

Рисунок 10 – Диаграмма пакетов

Граничные классы(boundary classes) - это классы, которые расположены на границе системы и окружающей среды. Они включают все формы, отчеты, интерфейсы с аппаратурой (такой, как принтеры или сканеры) и интерфейсы с другими системами. В пакет «Boundaries» были добавлены следующие классы:

  • CategoryOfSearch,

  • FormExems,

  • FormStudent,

  • GroupStud,

  • Lesson,

  • SearchInfo.

Классы-сущности(entityclasses) отражают основные понятия (абстракции) предметной области и, как правило, содержат хранимую информацию. В данный пакет были добавлены следующие классы:

  • InformationItem,

  • InputInformation,

  • TimetableInfo.

Также был создан и добавлен в пакет вспомогательный класс InformationItem, предназначенный для того, чтобы облегчить контроль вводимых данных.

Управляющие классы(controlclasses) отвечают за координацию действий других классов. Обычно у каждого варианта использования имеется один управляющий класс, контролирующий последовательность событий этого варианта использования. В данном проекте данную функцию выполняют классы AuthForm, DBManager, а также TransactionManager.

Выводы:

  1. В процессе разработки диаграммы классов был применен механизм пакетов. Были созданы три основных пакета, объединяющих классы по стереотипам.

  2. Также разработана диаграмма пакетов, являющаяся одной из форм диаграммы классов.

    1. Добавление деталей к описаниям операций и определение атрибутов классов

После того как была, разработана диаграмма классов для варианта использования «Ввод данных о студенте», начинается ее заполнение. В качестве языка программирования был выбран C++, что позволило добавить к классам параметры операций, типы данных и типы возвращаемых значений.

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

Рисунок 11 – Диаграмма классов для сценария «Ввод данных о студенте»

Как видно из диаграммы, для добавления новой записи о студенте, необходимо ввести следующую информацию (атрибуты класса InputInformation):

  • Record_Number: Integer – номер записи;

  • Student_Name: String – имя студента;

  • Student_Sername: String – фамилия студента;

  • Student_Lastname: String – отчество студента;

  • Group: Integer – группа;

  • Fakulty:String – факультет;

  • Course: Integer – курс;

  • Date:Date– датаcдачи экзамена;

  • Subject:String – предмет;

  • Kurs:Int – курс;

  • Marks: Intrger– оценка.

На рисунке 12 представлена диаграмма классов для сценария «Ввод данных о расписании занятий».

Рисунок 12 – Диаграмма классов для сценария «Ввод данных о расписании занятий»

Как видно из диаграммы, для добавления новой записи о расписании занятий, необходимо ввести следующую информацию (атрибуты класса TimetableInfo):

  • Date: Date – дата занятий;

  • Subject: String – предмет;

  • Time: Integer – время занятия;

  • Group: String – группа;

  • Teacher:String – преподаватель;

  • Auditorium: Integer – аудитория;

  • Lk/Pz:String– лекция или практическое занятие.

На рисунке 13 представлена диаграмма классов для сценария «Поиск данных актером «Ректор»».

Рисунок 13 – Диаграмма классов для сценария «Поиск данных актером «Ректор»»

Как видно из диаграммы, для добавления новой записи о расписании занятий, необходимо ввести следующую информацию (атрибуты класса CategoryOfSearch):

  • Name: String – поиск по ФИО;

  • Group: String – по группе;

  • Faculty: String –по факультету;

  • Department: String – по кафедре.

Выводы

  1. Разработаны диаграммы классов для сценариев «Ввод данных о студенте», «Ввод данных о расписании занятий», «Поиск данных актером «Ректор»». Если взглянуть на диаграммы, можно увидеть, что между классами существует определенная семантическая связь.

  2. На диаграмме для каждой семантической связи также отображена множественность, показывающая, сколько экземпляров одного класса взаимодействует с помощью этой связи с одним экземпляром другого класса в определенный момент времени.

    1. Создание диаграммы состояний для классов

Диаграмма состояний (Statechart) предназначена для отображения состояний объектов системы, имеющих сложную модель поведения. Это одна из двух диаграмм State Machine, доступ к которой осуществляется из одного пункта меню. Этот тип диаграмм позволяет проектировать алгоритмы поведения объектов любой сложности, в том числе может использоваться для составления блок-схем.

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

Многие требования к классу InputInformation значительно изменяются при изменении состояния его экземпляра.

На рисунке 14 приведена диаграмма состояния для класса InputInformation. Этапы создания диаграммы состояний:

  1. Найти в браузере класс InputInformation.

  2. Щелкнуть на классе правой кнопкой мыши и в открывшемся меню указать пункт Open State Diagram (Открыть диаграмму состояний).

Добавление начального и конечного состояний:

  1. Нажать кнопку Start State (Начальное состояние) панели инструментов.

  2. Поместить это состояние на диаграмму.

  3. Нажать кнопку End State (Конечное состояние) панели инструментов.

  4. Поместить это состояние на диаграмму.

Добавление состояний:

  1. На панели инструментов нажать кнопку State (Состояние).

  2. Поместить состояние на диаграмму.

  3. Назвать состояние – Отменен.

  4. На панели инструментов нажать кнопку State (Состояние).

  5. Поместить состояние на диаграмму.

  6. Назвать состояние – Выполнен..

  7. На панели инструментов нажать кнопку State (Состояние).

  8. Поместить состояние на диаграмму внутрь суперсостояния.

  9. Назвать состояние - Инициализация.

  10. На панели инструментов нажать кнопку State (Состояние).

  11. Назвать состояние - Приостановлен.

Рисунок 14 – Диаграмма состояния для класса InputIformation

Описание состояний:

  1. Дважды щелкнуть мышью на состоянии Инициализация.

  2. Перейти на вкладку Detail (Подробно).

  3. Щелкнуть правой кнопкой мыши в окне Actions (Действия).

  4. В открывшемся меню выберать пункт Insert (Вставить).

  5. Дважды щелкнуть мышью на новом действии.

  6. Назвать его StoreDate.

  7. Убедиться, что в окне When (Когда) указан пункт On Entry (На входе).

  8. Повторив шаги 3 — 7, добавить следующие действия:

  • Collect Student Info, в окне When указать Entry until Exit (Выполнять до завершения);

  • Add Information Items, указав Entry until Exit (Выполнять до завершения);

  1. Нажать два раза на ОК, чтобы закрыть спецификацию.

  2. Дважды щелкнуть мышью на состоянии Отменен.

  3. Повторив шаги 2 — 7, добавить действие Store cancellation data, указав On Exit (На выходе)

  4. Нажать два раза на ОК, чтобы закрыть спецификацию.

  5. Дважды щелкнуть мышью на состоянии Выполнен.

  6. Повторив шаги со второго по седьмой, добавить действие Create Otchet, указав Entry until Exit

  7. Нажать два раза на ОК, чтобы закрыть спецификацию.

Добавление переходов:

  1. Нажать кнопку Transition (Переход) панели инструментов.

  2. Щелкнуть мышью на начальном состоянии.

  3. Провести линию перехода к состоянию Инициализация.

  4. Повторив шаги с первого по третий, создать следующие переходы:

  • от состояния Инициализация к состоянию Приостановлен;

  • от Приостановлен к состоянию Выполнен;

  • от состояния Инициализация к состоянию Отменен;

  • от состояния Отменен к конечному состоянию;

  • от состояния Выполнен к конечному состоянию;

  1. На панели инструментов нажать кнопку Transition to Self (Переход к себе).

  2. Щелкнуть мышью на состоянии Приостановлен.

Описание переходов:

  1. Дважды щелкнув мышью на переходе от состояния Инициализация к состоянию Приостановлен, открыть окно спецификации перехода.

  2. В поле Event (Событие) ввести фразу «Add to record new information».

  3. Щелкнув на кнопке ОК, закрыть окно спецификации.

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

  5. Дважды щелкнув мышью на переходе от состояния Приостановлен к состоянию Выполнен, открыть окно его спецификации.

  6. В поле Event (Событие) ввести фразу «Add to record new information».

  7. Перейти на вкладку Detail (Подробно).

  8. В поле Condition (Условие) введите «Не остались незаполненные поля».

  9. Щелкнув на кнопке ОК, закрыть окно спецификации.

  10. Дважды щелкнуть мышью на рефлексивном переходе (Transition to Self) состояния Приостановлен.

  11. В поле Event (Событие) ввести фразу «Add to record new information».

  12. Перейти на вкладку Detail (Подробно).

  13. В поле Condition (Условие) ввести «Остаются незаполненные поля».

  14. Щелкнув на кнопке ОК, закрыть окно спецификации.

Оставшиеся 2 диаграммы состояния для классов TimetableInfo и SearchInfo представлены на рисунках 15 и 16 соответственно.

Рисунок 15 – Диаграмма состояния для класса TimetableInfo

Рисунок 16 – Диаграмма состояния для класса SearchInfo

    1. Создание диаграммы компонентов

Диаграммы компонентов (component diagram), представляют организацию совокупности компонентов и существующие между ними зависимости.

Диаграммы компонентов показывают, как выглядит модель на физическом уровне. На них изображены компоненты программного обеспечения и связи между ними. При этом на такой диаграмме выделяют два типа компонентов: исполняемые компоненты и библиотеки кода.

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

На рисунке 17 изображены пакеты и их взаимосвязи.

Рисунок 17- Взаимосвязь пакетов

На основании взаимосвязей пакетов, можно связать компоненты между собой.

На рисунке 18 представлена диаграмма компонентов для секретаря деканата.

Рисунок 18- Диаграмма компонентов (для секретаря деканата)

На рисунке 19 представлена диаграмма компонентов для диспетчера.

Рисунок 19- Диаграмма компонентов (для диспетчера)

На рисунке 20 представлена диаграмма компонентов для ректора.

Рисунок 20- Диаграмма компонентов (для ректора)

Как видно на рисунках 18, 19 и 20 система была разложена на два компонента: сервер и клиент. К клиентской части приложения относятся соответствующие классы и объекты этих классов. К серверной части приложения отнесены все остальные классы и объекты этих классов.

Выводы:

  1. Согласно созданным диаграммам объекты классов могут находиться в одном из четырех состояний: инициализации, приостановки, отмены и завершения. Также разработаны диаграммы компонентов, разделяющие систему на 2 компонента: клиент и сервер.

  2. Из диаграммы компонентов видно, что разрабатываемая подсистема будет работать по технологии «клиент-сервер».

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