Слайд 2
Основные вопросы
Сущность и назначение диаграммы состояний
Основные компоненты
Примеры
Слайд 3
Назначение диаграммы состояний
Диаграммы UML, отражающие поведение элементов модели
Диаграмма
последовательности
(временной аспект)
Диаграмма кооперации (информационное взаимодействие)
Диаграмма состояний. Описывает все
возможные состояния, в которых может находиться объект, а также процесс смены состояний в результате наступления некоторого события
Диаграмма деятельности
Слайд 4
Диаграмма состояний
Диаграмма состояний (statechart diagram) используется для описания
поведения объектов (отдельных экземпляров класса)
Диаграмма состояний является графом
специального вида, который представляет некоторый автомат. Вершинами этого графа являются состояния. Дуги графа служат для обозначения переходов из состояния в состояние.
Переход объекта из состояния в состояние происходит в результате наступления некоторого события
Смена состояний происходит мгновенно
Диаграммы состояний могут быть вложены друг в друга. Состояние на диаграмме может быть описано с помощью другой диаграммы состояний.
Слайд 5
Элементы диаграммы состояний
Состояние
Начальное состояние
Конечное состояние
Входное
действие
Выходное действие
Внутренняя деятель-
ность
Переход
Событие
Ограничивающие условия
Действие
Слайд 6
Основные компоненты диаграммы состояний
Основные компоненты диаграммы состояний:
- состояния;
-
переходы.
Слайд 7
Состояние
Состояние (state) объекта определяется набором значений его атрибутов
и связей с другими объектами
Состояние – это некоторый период
времени жизни объекта
Объекты класса имеют конечное число возможных состояний
Находясь в определенном состоянии объект воспринимает только определенные события, а другие игнорирует
Находясь в некотором состоянии объект может совершать некоторую деятельность
Слайд 8
Состояние
Ожидает
Имя состояния – законченное предложение, начинается с заглавной
буквы
В качестве имени состояния используют глагол (звенит) или причастие
(занят)
Секция имени
Список внутренних действий
Слайд 11
Список внутренних действий
Формат:
Перечень меток
в языке UML фиксирован:
entry;
exit;
do;
include.
Слайд 12
Начальное и конечное состояние
Особые состояния
на диаграмме состояний
Начальное
состояние
Конечное состояние
Начальное состояние указывается обязательно и оно должно быть
одно. Конечных состояний может или не быть, или может быть несколько.
Слайд 13
Особые состояния
Начальное состояние (initial state) – псевдосостояние, с
которого начинается диаграмма состояний. Оно соответствует моменту создания объекта.
Реально
объект никогда не находится в начальном состоянии, а сразу переходит в следующее состояние
Конечное состояние (final state) означает уничтожение объекта
На диаграмме может быть несколько конечных состояний
Слайд 14
Переход
Переход – отношение между двумя последовательными состояниями, которое
указывает на факт смены одного состояния другим.
Синтаксическая метка перехода
состоит из трех частей, каждая из которых является необязательной:
<событие> [<условие>] / <действие>
Слайд 15
Переход
Переход – отношение между двумя последовательными состояниями, которое
указывает на факт смены одного состояния другим.
Синтаксическая метка перехода
состоит из трех частей, каждая из которых является необязательной:
<событие> [<условие>] / <действие>
Слайд 16
Переходы
Переход (transition) – это мгновенная смена одного состояния
(исходного) на другое состояние (целевое)
Переход запускается, когда происходит связанное
с ним событие
Переход может запускаться автоматически, когда заканчиваются действия, выполняемые в состоянии
Исходное и целевое состояния могут совпадать
Одно событие может запускать переходы во множестве объектов
Например, из состояния “звонит” телефон переходит в состояние “разговор” при подъеме трубки
Слайд 18
Действие, событие, условие
Действие
Действие (action) – это атомарное и,
как правило, быстрое вычисление
Действие может представлять собой последовательность более
простых действий
Действия могут выполняться:
При переходе из одного состояния в другое состояние
При входе в состояние (entry)
При выходе из состояния (exit)
При нахождении объекта в состоянии (do)
В Microsoft Visio do-действия описываются внутренними переходами (internal transitions). Внутренний переход не меняет состояния и ему соответствует некоторое действие.
Слайд 19
Событие (event) – некоторое явление, которое имеет определенное
положение во времени и пространстве
Например, поступление денег на счет,
нажатие кнопки, изменение температуры
Событие происходит в некоторый момент времени и не имеет продолжительности
Событие влияет на состояния объектов системы
Конкретное событие называется экземпляром события и может иметь свои собственные параметры
События бывают четырех видов:
Событие сигнала
Событие вызова
Событие изменения
Событие времени
Событие
Слайд 20
Сигнал (signal) – это некоторая сущность, которая служит
для передачи информации между объектами
Сигнал имеет имя и набор
параметров (атрибутов)
Сигнал можно описать как класс со стереотипом “signal”
Между сигналами могут быть отношения обобщения.
Сигналы-потомки наследуют параметры своих предков и реализуют такие же переходы, что и их предки
В Microsoft Visio сигнал нужно обязательно описать как класс, чтобы использовать его на диаграмме состояний
Событие сигнала (signal event)
Слайд 22
Событие вызова (call event)
Событие вызова – это вызов
операции объекта
С точки зрения вызывающего объекта (объекта-отправителя) такой вызов
не отличим от обычного обращения к операции, которая реализуется методом
Объект-получатель сам определяет как реализовать вызываемую операцию (метод или событие). Реализация в виде события означает переход из одного состояния в другое состояние.
Параметры операции совпадают с параметрами события вызова
В отличие от обычного обращения к операции событие вызова допускает параллельную работу объекта-отправителя и объекта-получателя
Примеры событий:
Показать на форме список студентов курса (номер курса)
Зажечь лампочку на кнопке телефонного аппарата (номер телефона, номер лампочки)
Положить на счет некоторую сумму (номер счета, сумма)
Слайд 23
Событие изменения
(change event)
Событие изменения наступает, когда некоторое
логическое выражение принимает значение истина.
Некоторое логическое выражение постоянно проверяется
и, когда оно меняет свое значение с FALSE на TRUE, происходит событие изменения
Примеры событий
when (температура в комнате < минимально допустимая)
when (давление в шинах < минимально допустимое)
when (давление газа > максимально допустимое)
Слайд 24
Событие времени (time event)
Событие времени – это событие,
которое наступает в определенный момент времени или по окончанию
некоторого интервала времени
Примеры событий
when (дата = 1 января текущего года)
after (10 секунд)
Слайд 25
Условие
Сторожевое условие (guard condition) – это логическое условие,
которое должно быть истинным, чтобы переход был осуществлен
Сторожевое
условие проверяется в момент возникновения события
Слайд 27
Действия в состояниях
Состояние “Превышен счет”
Entry/Временно заморозить счет
Do/Послать уведомление
клиенту
Exit/Разморозить счет
Состояние “Счет закрыт”
Entry/Выдать кредитную карточку
Слайд 28
Составное состояние
Составное состояниеСоставное состояние (composite state) - такое сложное состояние,
которое состоит из других вложенных в него состояний. Последние
будут выступать по отношению к первому как подсостояния (substate). Хотя между ними имеет место отношение композиции.
Слайд 29
Последовательные подсостояния
Последовательные подсостояния (sequential substates) используются для моделирования такого
поведения объекта, во время которого в каждый момент времени
объект может находиться в одном и только одном подсостояний.
составное состояние с двумя вложенными последовательными подсостояниями
Слайд 30
Параллельные подсостояния
Параллельные подсостояния (concurrent substates) позволяют специфицировать два и
более подавтомата, которые могут выполняться параллельно внутри составного события.
Слайд 31
Переход между параллельными состояниями
Слайд 32
Составное состояние с параллельным выполнением