- •Пояснительная записка
- •1. Краткая характеристика предметной области
- •1.1 Общая характеристика
- •1.2 Актуальность разрабатываемой подсистемы
- •1.3 Формулировка задач проектирования
- •2. Создание диаграммы прецедентов
- •3. Создание диаграммы последовательности
- •4. Создание диаграммы сотрудничества
- •5. Создание диаграммы классов
- •6. Добавление деталей к описаниям операций и определение атрибутов классов
- •7. Создание диаграммы состояний для классов и диаграммы компонентов
- •Из диаграммы компонентов видно, что разрабатываемая подсистема будет работать по технологии «клиент-сервер».
- •8. Создание диаграммы размещения
7. Создание диаграммы состояний для классов и диаграммы компонентов
Диаграмма состояний (Statechart) предназначена для отображения состояний объектов системы, имеющих сложную модель поведения. Это одна из двух диаграмм State Machine, доступ к которой осуществляется из одного пункта меню. Этот тип диаграмм позволяет проектировать алгоритмы поведения объектов любой сложности, в том числе может использоваться для составления блок-схем.
Находясь в конкретном состоянии, объект может выполнять определенные действия. Например, может генерировать отчет, осуществлять некоторые вычисления или посылать событие другому объекту. С состоянием можно связывать действия пяти типов: деятельность, входное действие, выходное действие, событие и история состояния.
Многие требования к классу InputInformation значительно изменяются при изменении состояния его экземпляра.
На рисунке 7.1 приведена диаграмма состояния для класса InputInformation. Этапы создания диаграммы состояний:
-
Найти в браузере класс InputInformation.
-
Щелкнуть на классе правой кнопкой мыши и в открывшемся меню указать пункт Open State Diagram (Открыть диаграмму состояний).
Добавление начального и конечного состояний:
-
Нажать кнопку Start State (Начальное состояние) панели инструментов.
-
Поместить это состояние на диаграмму.
-
Нажать кнопку End State (Конечное состояние) панели инструментов.
-
Поместить это состояние на диаграмму.
Добавление состояний:
-
На панели инструментов нажать кнопку State (Состояние).
-
Поместить состояние на диаграмму.
-
Назвать состояние Otmenen.
-
На панели инструментов нажать кнопку State (Состояние).
-
Поместить состояние на диаграмму.
-
Назвать состояние Vipolnen.
-
На панели инструментов нажать кнопку State (Состояние).
-
Поместить состояние на диаграмму внутрь суперсостояния.
-
Назвать состояние Inizializaziya.
-
На панели инструментов нажать кнопку State (Состояние).
-
Назвать состояние Priostanovlen.
Рисунок 7.1 – Диаграмма состояния для класса InputIformation
Описание состояний:
-
Дважды щелкнуть мышью на состоянии Inizializaziya.
-
Перейти на вкладку Detail (Подробно).
-
Щелкнуть правой кнопкой мыши в окне Actions (Действия).
-
В открывшемся меню выберать пункт Insert (Вставить).
-
Дважды щелкнуть мышью на новом действии.
-
Назвать его StoreDate.
-
Убедиться, что в окне When (Когда) указан пункт On Entry (На входе).
-
Повторив шаги 3 — 7, добавить следующие действия:
-
Collect Student Info, в окне When указать Entry until Exit (Выполнять до завершения);
-
Add Information Items, указав Entry until Exit (Выполнять до завершения);
-
Нажать два раза на ОК, чтобы закрыть спецификацию.
-
Дважды щелкнуть мышью на состоянии Otmenen.
-
Повторив шаги 2 — 7, добавить действие Store cancellation data, указав On Exit (На выходе)
-
Нажать два раза на ОК, чтобы закрыть спецификацию.
-
Дважды щелкнуть мышью на состоянии Vipolnen.
-
Повторив шаги со второго по седьмой, добавить действие Create Otchet, указав Entry until Exit
-
Нажать два раза на ОК, чтобы закрыть спецификацию.
Добавление переходов:
-
Нажать кнопку Transition (Переход) панели инструментов.
-
Щелкнуть мышью на начальном состоянии.
-
Провести линию перехода к состоянию Inizializaziya.
-
Повторив шаги с первого по третий, создать следующие переходы:
-
от состояния Inizializaziya к состоянию Priostanovlen;
-
от Priostanovlen к состоянию Vipolnen;
-
от состояния Inizializaziya к состоянию Otmenen;
-
от состояния Otmenen к конечному состоянию;
-
от состояния Vipolnen к конечному состоянию;
-
На панели инструментов нажать кнопку Transition to Self (Переход к себе).
-
Щелкнуть мышью на состоянии Priostanovlen.
Описание переходов:
-
Дважды щелкнув мышью на переходе от состояния Inizializaziya к состоянию Priostanovlen, открыть окно спецификации перехода.
-
В поле Event (Событие) ввести фразу Dobavit' Informaciu.
-
Щелкнув на кнопке ОК, закрыть окно спецификации.
-
Повторив шаги с первого по третий, добавить событие Otmenit' zapolnenie к переходу между стоянием Inizializaziya и состоянием Otmenen.
-
Дважды щелкнув мышью на переходе от состояния Priostanovlen к состоянию Vipolnen, открыть окно его спецификации.
-
В поле Event (Событие) ввести фразу Dobavit' k zapisi novuu informaciu.
-
Перейти на вкладку Detail (Подробно).
-
В поле Condition (Условие) введите Ne ostalis nezapolnenie polya.
-
Щелкнув на кнопке ОК, закрыть окно спецификации.
-
Дважды щелкнуть мышью на рефлексивном переходе (Transition to Self) состояния Priostanovlen.
-
В поле Event (Событие) ввести фразу Dobavit' k zapisi novuu informaciu.
-
Перейти на вкладку Detail (Подробно).
-
В поле Condition (Условие) ввести ostautsya nezapolnenie polya.
-
Щелкнув на кнопке ОК, закрыть окно спецификации.
Была также создана диаграмма компонентов, отображающая распределение классов и объектов по компонентам при физическом проектировании. Как видно на рисунке 7.2 система была разложена на два компонента: сервер и клиент. К клиентской части приложения относятся классы FormStudent и FormExems и объекты этих классов. К серверной части приложения отнесены все остальные классы и объекты этих классов.
Рисунок 7.2 – Диаграмма компонентов
Выводы