Диаграмма состояний
Основные вопросы
Назначение диаграммы состояний
Диаграмма состояний
Элементы диаграммы состояний
Основные компоненты диаграммы состояний
Состояние
Состояние
Примеры состояний
Список внутренних действий
Начальное и конечное состояние
Особые состояния
Переход
Переход
Переходы
Пример диаграммы состояний
Действие, событие, условие
Событие
Событие сигнала (signal event)
Примеры событий сигналов
Событие вызова (call event)
Событие изменения (change event)
Событие времени (time event)
Условие
Пример диаграммы
Действия в состояниях
Составное состояние
Последовательные подсостояния
Параллельные подсостояния
Переход между параллельными состояниями
Составное состояние с параллельным выполнением
Построение Диаграмм Состояния
1.35M
Category: programmingprogramming

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

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

2. Основные вопросы

Сущность и назначение диаграммы
состояний
Основные компоненты
Примеры

3. Назначение диаграммы состояний

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

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

Диаграмма состояний (statechart diagram) используется для
описания поведения объектов (отдельных экземпляров класса)
Диаграмма состояний является графом специального вида,
который представляет некоторый автомат. Вершинами этого
графа являются состояния. Дуги графа служат для обозначения
переходов из состояния в состояние.
Переход объекта из состояния в состояние происходит в
результате наступления некоторого события
Смена состояний происходит мгновенно
Диаграммы состояний могут быть вложены друг в друга.
Состояние на диаграмме может быть описано с помощью
другой диаграммы состояний.
Выход из строя
Компьютер исправен
Компьютер не исправен
Ремонт

5. Элементы диаграммы состояний

Состояние
Начальное
состояние
Конечное
состояние
Входное
действие
Выходное
действие
Внутренняя
деятельность
Переход
Событие
Ограничивающие
условия
Действие

6. Основные компоненты диаграммы состояний

Основные компоненты диаграммы
состояний:
- состояния;
- переходы.

7. Состояние

Состояние (state) объекта определяется набором
значений его атрибутов и связей с другими
объектами
Состояние – это некоторый период времени жизни
объекта
Объекты класса имеют конечное число возможных
состояний
Находясь в определенном состоянии объект
воспринимает только определенные события, а
другие игнорирует
Находясь в некотором состоянии объект может
совершать некоторую деятельность

8. Состояние

Имя состояния – законченное
предложение, начинается с
заглавной буквы
Секция имени
Наименование
состояния
Ожидает
В качестве имени
состояния используют
глагол (звенит) или
причастие (занят)
Список внутренних
действий
Список внутренних
действий

9.

10. Примеры состояний

Телефон звонит
Набор номера
Студент сдает сессию
Счет открыт
На счете нет денег

11. Список внутренних действий

Формат:
<метка действия ‘/’ выражение действия>
Перечень меток в языке UML фиксирован:
entry;
exit;
do;
include.
Ввод пароля
entry / сделать символы
невидимыми
символ / получить символ
exit / сделать символы
видимыми

12. Начальное и конечное состояние

Особые состояния
на диаграмме состояний
Начальное
состояние
Конечное
состояние
Начальное состояние указывается обязательно и оно
должно быть одно. Конечных состояний может или
не быть, или может быть несколько.

13. Особые состояния

Начальное состояние (initial state) –
псевдосостояние, с которого начинается диаграмма
состояний. Оно соответствует моменту создания
объекта.
Реально объект никогда не находится в начальном
состоянии, а сразу переходит в следующее
состояние
Конечное состояние (final state) означает
уничтожение объекта
На диаграмме может быть несколько конечных
состояний
Начальное состояние
Конечное состояние

14. Переход

Переход – отношение между двумя
последовательными состояниями,
которое указывает на факт смены
одного состояния другим.
Синтаксическая метка перехода состоит
из трех частей, каждая из которых
является необязательной:
<событие> [<условие>] / <действие>

15. Переход

Переход – отношение между двумя
последовательными состояниями,
которое указывает на факт смены
одного состояния другим.
Синтаксическая метка перехода состоит
из трех частей, каждая из которых
является необязательной:
<событие> [<условие>] / <действие>

16. Переходы

Переход (transition) – это мгновенная смена одного
состояния (исходного) на другое состояние (целевое)
Переход запускается, когда происходит связанное с
ним событие
Переход может запускаться автоматически, когда
заканчиваются действия, выполняемые в состоянии
Исходное и целевое состояния могут совпадать
Одно событие может запускать переходы во
множестве объектов
Например, из состояния “звонит” телефон переходит
в состояние “разговор” при подъеме трубки
Подъем трубки()
Телефон звонит
Разговор

17. Пример диаграммы состояний

Дозвон и разговор с абонентом
Время ожидания
истекло
[ прошло 15 сек. ]
do/ издавать звук_сигнал
Тоновый сигнал
поднять трубку / подать тон-сигнал
do/ издавать тон-сигнал
набор цифры( n )[ номер неполный ]
Ожидание
[ прошло 15 сек. ]
набор цифры( n )
Набор
номера
[ номер полный ]
повесить трубку / разъединиться
Занято
[ номер занят ]
do/ выполнить соединение
do/ издавать короткие гудки
Абонент не
берет трубку
Соединение
[ номер свободен ]
[ прошло 30 сек. ]
запрос на окончание разговора[ подтвержедние ] / закончить разговор
Разговор
запрос ответа[ разговор доступен ]
Звонок у абонента
do/ издавать звонок

18. Действие, событие, условие

Действие
Действие (action) – это атомарное и, как правило,
быстрое вычисление
Действие может представлять собой
последовательность более простых действий
Действия могут выполняться:
При переходе из одного состояния в другое состояние
При входе в состояние (entry)
При выходе из состояния (exit)
При нахождении объекта в состоянии (do)
В Microsoft Visio do-действия описываются
внутренними переходами (internal transitions).
Внутренний переход не меняет состояния и ему
соответствует некоторое действие.

19. Событие

Событие (event) – некоторое явление, которое имеет
определенное положение во времени и пространстве
Например, поступление денег на счет, нажатие кнопки,
изменение температуры
Событие происходит в некоторый момент времени и не имеет
продолжительности
Событие влияет на состояния объектов системы
Конкретное событие называется экземпляром события и может
иметь свои собственные параметры
События бывают четырех видов:
Событие сигнала
Событие вызова
Событие изменения
Событие времени

20. Событие сигнала (signal event)

Сигнал (signal) – это некоторая сущность, которая
служит для передачи информации между объектами
Сигнал имеет имя и набор параметров (атрибутов)
Сигнал можно описать как класс со стереотипом
“signal”
Между сигналами могут быть отношения обобщения.
Сигналы-потомки наследуют параметры своих
предков и реализуют такие же переходы, что и их
предки
В Microsoft Visio сигнал нужно обязательно описать
как класс, чтобы использовать его на диаграмме
состояний

21. Примеры событий сигналов

«signal»
Вылет рейса
in Тип самолета
in Номер рейса
in Город
in Дата
«signal»
Нажатие кнопки мышки
in кнопка
in координаты
«signal»
Кнопка телефона
in цифра
«signal»
Символ клавиатуры
in символ
in время
«signal»
Управляющий символ
«signal»
Графический символ

22. Событие вызова (call event)

Событие вызова – это вызов операции объекта
С точки зрения вызывающего объекта (объекта-отправителя) такой
вызов не отличим от обычного обращения к операции, которая
реализуется методом
Объект-получатель сам определяет как реализовать вызываемую
операцию (метод или событие). Реализация в виде события означает
переход из одного состояния в другое состояние.
Параметры операции совпадают с параметрами события вызова
В отличие от обычного обращения к операции событие вызова
допускает параллельную работу объекта-отправителя и объектаполучателя
Примеры событий:
Показать на форме список студентов курса (номер курса)
Зажечь лампочку на кнопке телефонного аппарата (номер
телефона, номер лампочки)
Положить на счет некоторую сумму (номер счета, сумма)

23. Событие изменения (change event)

Событие изменения наступает, когда некоторое
логическое выражение принимает значение истина.
Некоторое логическое выражение постоянно
проверяется и, когда оно меняет свое значение с
FALSE на TRUE, происходит событие изменения
Примеры событий
when (температура в комнате < минимально допустимая)
when (давление в шинах < минимально допустимое)
when (давление газа > максимально допустимое)

24. Событие времени (time event)

Событие времени – это событие,
которое наступает в определенный
момент времени или по окончанию
некоторого интервала времени
Примеры событий
(дата = 1 января текущего года)
after (10 секунд)
when

25. Условие

Сторожевое условие (guard condition) –
это логическое условие, которое
должно быть истинным, чтобы переход
был осуществлен
Сторожевое условие проверяется в
момент возникновения события
Зачислить в институт()[Имеет проходной балл]
Абитуриент
Студент

26. Пример диаграммы

Снять деньги [отрицательный баланс]
Счет открыт
Положить деньги [положительный баланс]
Превышен счет
Клиент закрывает счет / Сохранить дату закрытия
Проверить баланс [отрицательный баланс в течение 30 дней]
Счет закрыт

27. Действия в состояниях

Состояние “Превышен счет”
заморозить счет
Do/Послать уведомление клиенту
Exit/Разморозить счет
Entry/Временно
Состояние “Счет закрыт”
Entry/Выдать
кредитную карточку

28. Составное состояние

Составное состояние (composite state) - такое
сложное состояние, которое состоит из
других вложенных в него состояний.
Последние будут выступать по отношению к
первому как подсостояния (substate). Хотя
между ними имеет место отношение
композиции.

29. Последовательные подсостояния

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

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

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

31. Переход между параллельными состояниями

32. Составное состояние с параллельным выполнением

33. Построение Диаграмм Состояния

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