Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции Введение в ПИ / ЛК 3.4a UML-Диаграммы состояний.ppt
Скачиваний:
46
Добавлен:
26.02.2016
Размер:
1 Mб
Скачать

Неглубокое историческое состояние

Неглубокое историческое состояние является первым под-состоянием в составном состоянии, и переход извне в это составное состояние должен вести непосредственно в это историческое состояние.

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

Если в некоторый момент происходит выход из составного состояния (например, в случае некоторого внешнего события), то это историческое состояние запоминает то из под-состояний, которое являлось текущим на момент выхода.

При следующем входе в это же составное состояние историческое под- состояние уже имеет непустую историю и сразу отправляет подавтомат в запомненное под-состояние, минуя все предшествующие ему под-состояния.

Историческое состояние теряет свою историю в тот момент, когда подавтомат доходит до своего конечного состояния.

31

Глубокое историческое состояние

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

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

Глубокое историческое состояние (deep history state) служит для запоминания всех под-состояний любого уровня вложенности для текущего подавтомата.

32

Параллельные под-состояния

(concurrent substates)

Параллельные под-состояния позволяют специфицировать два и более подавтомата, которые могут выполняться параллельно внутри составного состояния.

Моделируемый объект может одновременно находиться в каждом из параллельных под-состояний одного составного состояния.

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

33

Параллельные под-состояния

Каждое из вложенных параллельных под-состояний может состоять из нескольких последовательных под-состояний (подавтоматы 1 и 2). В этом случае (по определению последовательных под-состояний) в каждый момент времени объект может находиться в одном и только одном таком под- состоянии.

Для нашего примера допустимо одновременное нахождение объекта в под- состояниях (1, 3, 4), (2, 3, 4), (1, 3, 5), (2, 3, 5),

а в под-состояниях (1, 2, 3), (3, 4, 5) - НЕ допустимо.

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

Выход из составного состояния будет возможен лишь в том случае, когда все подавтоматы будут находиться в своих конечных под-состояниях.

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

34

Скрытые составные состояния

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

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

35

Параллельные переходы

Если переход имеет несколько состояний-источников и/или несколько целевых состояний, то такой переход называют параллельным. Параллельные

переходы позволяют синхронизировать и/или разделить отдельные параллельные под-процессы.

На рисунке представлены два составных состояния («Процесс_1» и «Процесс_2»), каждое из которых состоит из двух параллельных под-

состояний.

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

(join), если же он имеет две или более исходящих из него дуги, то его называют

ветвлением (fork).

36

Параллельные переходы

Срабатывание параллельных переходов происходит по следующей схеме.

1. Переход-соединение срабатывает в случае, если наступили события-триггеры для всех исходных состояний этого перехода, и выполнены (при их наличии) соответствующие сторожевые условия.

При срабатывании такого перехода одновременно покидаются все исходные состояния перехода (состояния 1 и 2) и происходит переход в целевое состояние.

2. При срабатывании перехода-ветвления происходит расщепление автомата на два подавтомата, образующих параллельные под-состояния (состояния 3 и 4) составного состояния (процесс_2).

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

37

Переходы между составными состояниями

Переход, стрелка которого соединена с границей составного состояния, обозначает переход в составное состояние (переход b), что соответствует переходу в начальное состояние каждого из под-состояний, входящих в состав данного суперсостояния.

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

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

Аналогично, допускается изображение переходов, входящих извне составного состояния в отдельное вложенное состояние (переход а).

38

Синхронизирующие Состояния

Для моделирования синхронизации наступления отдельных событий используется специальное псевдосостояние, которое называется синхронизирующим состоянием (synch state) и обозначается небольшой окружностью, внутри которой помещен символ звездочки "*".

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

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

39

Пример

Рассмотрим диаграмму состояний, которая представляет собой пример моделирования поведения конкретного объекта – процесса функционирования телефонного аппарата (следующий слайд).

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

Кратко прокомментируем основные особенности этого примера.

•Данная диаграмма состояний представляет единственный автомат с двумя состояниями – одним простым и одним составным.

•Состояние «ожидание» характеризует исправный и подключенный к телефонной сети телефонный аппарат.

•Переход с атомарным действием «подать тоновый сигнал» происходит при поднятии телефонной трубки и переводит аппарат в начальное под-состояние составного состояния.

40

41