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

Лабораторная работа№ 8 Создание диаграмм состояний в Rational Rose

Диаграммы состояний

Диаграммы состояний определяют все возможные состояния, в которых может находиться конкретный объект, а также процесс смены состояний объекта в результате влияния некоторых событий. Обычно диаграммы состояний строятся для единственного класса и отражают динамику поведения единственного объекта.

Существует несколько форм диаграмм состояний. Пример диаграммы состояний, отражающей поведение объекта Заказ в Системе Обработки Заказов, приведен на рисунке 8.1. На этой диаграмме изображены различные состояния, в которых может находиться объект Заказ. Процесс начинается с Начальной точки, затем следует первый переход в состояние Проверка Позиции Заказа. Метка этого перехода /получить позицию Заказа. Синтаксис метки: <событие>[<условие>]/ <действие>.

Рисунок 8.1 - Диаграмма состояний

Каждая из этих трех частей является необязательной. В данном случае метка включает только действие. После выполнения этого действия объект попадает в состояние Проверка Позиции Заказа. С этим состоянием связана деятельность, которая обозначается меткой выполнить/ проверить позицию. Синтаксис этой метки: выполнить/<деятельность>. В данном случае деятельность называется проверить позицию.

Термин действие используется для перехода, термин деятельность – для состояния. Хотя и то и другое – это процессы, реализуемые некоторым методом класса Заказ, но они различаются между собой.

Действия связаны с переходами и рассматриваются как мгновенные и непрерываемые.

Деятельности связаны с состояниями и могут длиться достаточно долго. Деятельность может быть прервана в результате наступления некоторого события.

Если метка перехода не содержит никакого события, то переход происходит, как только завершается какая-то деятельность, связанная с данным состоянием (как только завершится Проверка Позиции Заказа).

Из состояния Проверка Позиции Заказа возможны 3 перехода. Метка каждого из них включает условие. Условие это логическое, оно может принимать 2 значения – «истина» и «ложь». Если условие принимает значение «истина», то выполняется условный переход.

Из конкретного состояния в данный момент времени может произойти только 1 переход, т.е. условия являются взаимно исключающими. В нашем примере 3 условия:

  1. если проверены не все позиции, входящие в Заказ, то мы получаем следующую позицию и возвращаемся в состояние Проверка Позиции Заказа;

  2. если проверены все позиции и все они имеются на складе, то переходим в состояние Выдача Заказа на Поставку;

  3. если проверены все позиции, но не все имеются на складе, то переходим в состояние Ожидание.

Рассмотрим состояние Ожидание. В этом состоянии нет деятельностей, поэтому Заказ находится в состоянии Ожидания, пока не наступит некоторое событие. Оба перехода из состояния Ожидание отмечены событием Позиция получена. Заказ ожидает до тех пор, пока он не обнаружит наступления данного события.

В состоянии Выдача Заказа на Поставку есть деятельность, которая инициирует поставку. Переход из этого состояния произойдет, если произойдет событие Поставлен.

В рассмотренном примере нет перехода под названием отмена. У нас должна быть возможность отменить любой Заказ в любой момент времени до завершения его выполнения. На рисунке 8.2 добавлено состояние Отмена Заказа. Чтобы отменить Заказ, нужно изобразить переходы из каждого состояния (Проверка Позиции Заказа, Выдача Заказа и Ожидание).

Рисунок 8.2 - Диаграмма состояний без суперсостояний

На рисунке 8.3 изображен другой вариант – для 3 вышеперечисленных состояний определено суперсостояние и единственный переход из него. Подсостояния наследуют любые переходы Суперсостояния.

Создание диаграмм состояний

Пример выполнения задания

В этом упражнении создается диаграмма Состояний для класса Order, показанная на рисунке 8.4.

Рисунок 8.3 - Диаграмма состояний с суперсостояниями

Рисунок 8.4 - Диаграмма Состояний для класса Order

Создание диаграммы

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

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

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

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

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

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

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

Добавление суперсостояния

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

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

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

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

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

  3. Назовите состояние Cancelled (Отменен).

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

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

  6. Назовите состояние Filled (Выполнен).

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

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

  9. Назовите состояние Initialization (Инициализация).

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

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

  12. Назовите состояние Pending (выполнение заказа приостановлено).