Диаграммы состояний Конечные автоматы (state mashine)












![Охранное (сторожевое) условие (guard condition) <имя события> ‘[‘<охранное условие>‘]’ Охранное (сторожевое) условие (guard condition) <имя события> ‘[‘<охранное условие>‘]’](https://present5.com/presentation/3/-12922665_30540382.pdf-img/-12922665_30540382.pdf-13.jpg)










ТРПО - Лекция 15 (диаграммы состояний).ppt
- Количество слайдов: 23
Диаграммы состояний Конечные автоматы (state mashine)
Жизнь объектов 2
Обязательные условия для обычного конечного автомата (КА) • в каждый момент времени КА может находиться только в одном состоянии (моделирование последовательного поведения, конечные подавтоматы для параллельных процессов) • КА не запоминает историю перемещения из состояния в состояние (явным образом сохраняются сведения о предыдущем состоянии) • концепция времени явно не учитывается • граф КА не должен содержать изолированных состояний. Каждый переход должен соединять два состояния (рефлексивный переход или петля) • граф КА не должен содержать конфликтующих переходов (для этого используются сторожевые (охранные) условия) 3
Состояние (state) может быть задано набором конкретных значений атрибутов объекта некоторого класса. При этом изменение отдельных (инвариантное условие) значений этих атрибутов будет отражать изменение состояния объекта или всей системы. 4
Находясь в определенном состоянии, объект выполняет следующие действия: • осуществляет вид деятельности • ожидает событие • удовлетворяет одному или нескольким условиям 5
Событие Сигнал – асинхронное взаимодействие между объектами. Событие вызова – синхронное взаимодействие. Объект вызывает метод другого объекта или собственный метод. Эквивалентно действию вызова. Временное событие происходит через определенный промежуток времени. . after (15 мин с момента последнего нажатия на клавишу) Событие изменения происходит при выполнении какого-либо условия. when maximum. Loops = 100 6
Внутренние действия < метка действия ‘/’ выражение действия > entry – входное действие exit – выходное действие do – некоторая деятельность выполняется в течение всего времени, пока объект находится в данном состоянии include – используется для обращения к конечному подавтомату внутренние переходы 7
Ввод пароля entry / сделать символы невидимыми символ / получить символ exit / сделать символы видимыми 8
Начальное состояние Конечное состояние (псевдосостояния) initial state final state 9
Переход -- -- изменение одного состояния объекта (исходное состояние) на другое (целевое состояние). Переходы бывают условными и безусловными. 10
Безусловный переход происходит, когда: • объект “готов” перейти в следующее состояние. Обычно это происходит после завершения вида деятельности, связанного с исходным состоянием 11
Условный переход происходит, когда: • реализуется событие, “интересующее” объект С инициированным переходом может быть связано действие. Действие осуществляется до перехода объекта в целевое состояние. самопереход 12
Охранное (сторожевое) условие (guard condition) <имя события> ‘[‘<охранное условие>‘]’ <выражение действия> Если охранное условие принимает значение TRUE, то при наступлении соответствующего события или завершения деятельности происходит переход в целевое состояние с выполнением указанного действия. Если охранное условие принимает значение FALSE , то объект игнорирует событие, не совершает переход и не предпринимает действие. Выражение действия происходит только в том случае, когда переход срабатывает 13
Выражение действия • представляет собой вызов метода или передачу какого-либо сообщения • имеет атомарный характер • выполняется сразу после срабатывания перехода до начала каких бы то ни было действий в целевом состоянии 14
Машина состояний обозначает комбинацию следующий сущностей: • состояния, в которых находится объект в процессе жизни • события, на которые реагирует объект • возможные реакции объекта на эти события • переходы между состояниями объекта
Диаграмма состояний 16
Составные состояния (composite state) суперсостояние или состояние-композит подсостояние Последовательные подсостояния (sequential substates) реализуются, когда объект находится в составном состоянии, и в одном и только в одном подсостоянии в каждый момент времени Параллельные подсостояния (concurrent substates) позволяют специфицировать два и более конечных подавтомата, которые могут выполняться параллельно внутри составного состояния. 17
Пример последовательных подсостояний Получение книг exit / отправка уведомления 18
Запоминающие (исторические) состояния (history state) неглубокое (shallow history state) H глубокое (deep history state) H* 19
Запоминающие (исторические) состояния Получение книг Н exit / отправка уведомления 20
Параллельные подсостояния Если на диаграмме состояний имеется составное состояние с вложенными параллельными состояниями, то объект может одновременно находиться в каждом из этих подсостояний Составное состояние Допустимо: (1, 3, 4) (2, 3, 4) (1, 3, 5) (2, 3, 5) Недопустимо: (1, 2, 3) (3, 4, 5) 21
Параллельные подсостояния (пример) Получение книг Физический Финансовый 22
Телефонный разговор 23

