Звоните! 
 (926)274-88-54 
 Бесплатная доставка. 
 Бесплатная сборка. 
Ассортимент тканей

График работы:
Ежедневно. С 8-00 до 20-00.
Почта: soft_hous@mail.ru
Читальный зал -->  Диаграммы параллельных состояний 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 [ 38 ] 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

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

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

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

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

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

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

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

Наконец, рассмотрим переход с именем отмена . Мы должны располагать возможностью отменить заказ в любой момент, пока заказ не доставлен клиенту. Это можно сделать, изобразив отдельные переходы из каждого состояния: Проверка, Ожидание и Отправка. Удобный альтернативный вариант - определить некоторое суперсостояние для трех перечисленных состояний, после чего нарисовать единственный выходящий из него переход. В этом случае подсостояния просто наследуют любые переходы суперсостояния.

Оба подхода изображены на рис. 8.2 и 8.3. Они описывают одно и то же поведение системы.



[Не все позиции проверены] /получить следующую позицию

Проверка

[все позиции проверены &&

все позиции доступны] / Отправка

выполнить проверку/ проверить позицию V заказа у

выполнить отправку/

инициировать ч доставку J

[Все позиции проверены && некоторые позиции отсутствуют на складе]

Позиция получена [некоторые позиции отсутствуют на складе]


отмена

Отмена

Доставка

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

Рис. 8.2 выглядит довольно перегруженным, хотя на нем изображено всего три дублирующих перехода. На рис. 8.3 картина в целом выглядит гораздо яснее, и если впоследствии потребуется внести какие-либо изменения, то будет значительно труднее упустить из вида событие отмена .

В данных примерах я изобразил деятельность внутри состояния в виде текста выполнить/деятельность*. Внутри состояния также можно указать и другую информацию.

Если состояние реагирует на событие, связанное с действием, которое не влечет за собой никакой переход, этот факт можно изобразить, поместив текст вида ИмяСобытия / ИмяДействия* в прямоугольник состояния.

Помимо событий с именами существуют еще два других типа событий:

Событие может быть инициировано после завершения определенного периода времени. Такое событие можно пометить ключевым словом после. Например, можно записать после (20 минут).



Имя суперсостояния

Активное

[Не все позиции проверены] /получить следующую позицию

Проверка

[Все позиции проверены && все позиции доступны] /


Отправка

выполнить проверку/ проверить позицию

выполнить отправку/

инициировать ч доставку у

[Все позиции проверены && некоторые позиции отсутствуют на складе]

Позиция получена [некоторые позиции отсутствуют на складе]

Ожидание

отмена

Отмена Заказа

Доставка

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

Событие может быть инициировано в результате выполнения того или иного логического условия. Такое событие можно пометить ключевым словом если. Например, можно записать если (температура >100 градусов ).

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



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 [ 38 ] 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57



ООО «Мягкий Дом» - это Отечественный производитель мебели. Наша профильная продукция - это диваны еврокнижка. Каждый диван можем изготовить в соответствии с Вашими пожеланияи (размер, ткань и материал). Осуществляем бесплатную доставку и сборку.



Звоните! Ежедневно!
 (926)274-88-54 
Продажа и изготовление мебели.


Копирование контента сайта запрещено.
Авторские права защищаются адвокатской коллегией г. Москвы
.