SlideShare a Scribd company logo
Учебный курс
Язык UML в анализе и проектировании
программных систем и бизнес-процессов
Лекция 5
Диаграмма конечного автомата
Автор:
Леоненков Александр Васильевич
кандидат технических наук,
старший научный сотрудник
Диаграмма конечного автомата
- является графом, который представляет некоторый конечный
автомат
Конечный автомат (state machine) представляет собой некоторый
формализм для моделирования поведения отдельных элементов
модели или системы в целом
Поведение (behavior) является спецификацией того, как экземпляр
классификатора изменяет значения отдельных характеристик в
течение своего времени жизни
Состояние (state) – элемент модели поведения, предназначенный
для представления ситуации, в ходе которой поддерживается
некоторое условие инварианта
Переход (transition) является направленным отношением между
двумя состояниями, одно из которых является вершиной
источником (source vertex), а другое – целевой вершиной (target
vertex)
Основные обозначения на конечного
автомата
Примеры обозначений на конечного
автомата
Простое состояние (simple state)
- называется состояние, которое не имеет внутренних
регионов и подсостояний
На диаграмме конечного автомата допускается изображать
состояния без имени, которые называются анонимными
состояниями
Все анонимные состояния считаются различными
На одной диаграмме нежелательно показывать одно и то же
именованное состояние дважды, поскольку это может
привести к недоразумению
Ожидание
ввода
пароля
entry/установитьсимволыневидимыми
exit/установитьсимволывидимыми
символ/обработатьсимвол
помощь/открытьокнопомощи
НаборПароляОткрытиесчета
Простое состояние с внутренними
действиями
Секция внутренней деятельности
entry - эта метка специфицирует поведение, которое также
называют входным поведением. Это поведение выполняется
всякий раз, когда происходит вход в данное состояние
независимо от перехода, позволившего достичь это состояние
(действие на входе)
exit - эта метка специфицирует поведение, которое также
называют выходным поведением. Это поведение
выполняется всякий раз, когда происходит выход из данного
состояния независимо от перехода, который выводит из этого
состояния (действие на выходе)
do - эта метка специфицирует поведение, которое
выполняется до тех пор, пока моделируемый элемент
находится в данном состоянии, или до тех пор, пока не
закончится выполнение деятельности, специфицированной
соответствующим выражением (ду деятельность)
Спецификация внутренних действий
состояния
Внутренние переходы и отложенные
события
Внутренний (internal) переход выполняется без выхода из
состояние и без повторного входа в состояние, в котором он
определен
Событие, которое не инициирует никаких переходов в
текущем состоянии, не может быть обработано. Однако, если
его тип совпадает с одним из типов в множестве отложенных
событий этого состояния, то оно остается в пуле событий.
Отложенные события сохраняются до тех пор, пока не будет
достигнуто другое состояние, в котором эти события смогут
инициировать некоторый переход
Отложенное событие представляется отдельной строкой
текста в соответствии с рассмотренным ранее формальным
синтаксисом для триггера, после которой следует
разделитель “/” (обратный слэш) и ключевое слово defer
Спецификация перехода
Событие (event) является спецификацией некоторых
условий, которые оказывают влияние на поведение
моделируемой сущности
Триггер (trigger) устанавливает отношение события с
поведением, которое может оказывать влияние на экземпляр
классификатора
Спецификация перехода
Переход может быть помечен строкой текста, синтаксис которой
определяется следующим выражением (БНФ):
<переход>:: = <триггер> [‘,’<триггер>]* [‘[‘<сторожевое-
ограничение>’]’] [‘/’<выражение-деятельности>]
Здесь <триггер> представляет собой имя триггерного события,
вернее, его типа. В качестве имени триггера могут использоваться
имена операций с параметрами или без них.
Терм <сторожевое-ограничение>, которое в прежних версиях
языка UML 1.х называется сторожевым условием (guard condition),
является логическим выражением, записанным в терминах
параметров триггерного события, атрибутов и связей объекта
контекста.
Терм <выражение-деятельности>, который иногда называют
выражением поведения, выполняется, если и только если переход
срабатывает
Составной переход (compound transition)
- является производным семантическим понятием, которое
представляет “семантически полный” путь, совершаемый
одним или несколькими переходами.
Передача сигнала является действием, которое имеет
специальную графическую нотацию, описанную ранее при
рассмотрении диаграмм деятельности
Прием сигнала, который также называют приемом триггера,
является действием, которое имеет специальную
графическую нотацию, описанную ранее при рассмотрении
диаграмм деятельности
Синтаксис приема сигнала:
<прием-сигнала>:: = <триггер> [‘,’ <триггер>]*
[‘[‘<сторожевое-условие>‘]’]
Пример составного перехода
Конфликтующие переходы
Два и более разрешенных перехода называются
конфликтующими (conflicting), если все они выходят из
одного и того же состояния, или, более точно, пересечение
множеств их состояний источников не является пустым
Пример конфликта переходов и вариант устранения
конфликта
поступилзапрос
[обычныйзапрос]
Ожидание
запроса
Обработка
запроса
Формирование
отчета
поступилзапрос
[запроснаотчет]
[else]
Ожидание
запроса
Обработка
запроса
Формирование
отчета
[запроснаотчет]
поступилзапрос
Псевдосостояния (pseudo state)
– абстрактный элемент модели, который включает в себя
различные типы вспомогательных вершин в графе конечного
автомата
Начальное псевдосостояние (initial pseudo state)
представляет вершину графа конечного автомата, которая по
умолчанию является состоянием источником для начального
перехода моделируемого поведения
Узел завершения (terminate node) является
псевдосостоянием, вход в который означает завершение
выполнения поведения конечного автомата в контексте его
объекта
Финальное состояние (final state) – специальный вид
состояния, предназначенное для моделирования завершения
конечного автомата или региона, в котором оно содержится
Начальное псевдосостояние, узел
завершения и пример их использования
Принят
stm Заказ
Отменен
заполнить
Оплачен
Отгружен Закрыт
Заполнен
оплатить
отменить
отменить
отгрузить закрыть
удалить
удалить
Выбор и соединение
Псевдосостояние выбора (choice pseudo state)
предназначено для моделирования нескольких
альтернативных ветвей при реализации поведения конечного
автомата
Псевдосостояние соединения (junction pseudo state) является
вершиной со свободной семантикой, которая используется
для соединения вместе нескольких переходов
[Id>=10]
[Id<10]
[>=10]
[<10]
Id
[else]
[Id>10]
[Id<10]
e2[b>0]
Состояние1
[a<0]
Состояние2
Состояние3 Состояние5Состояние4
e1[b>0]
[a=5]
[else]
Разделение и слияние
Вершина разделения (fork vertex) – псевдосостояние,
предназначенное для разделения входящего перехода на два
или более перехода, которые имеют в качестве своих целей
вершины в ортогональных регионах композитного состояния.
Вершина слияния (join vertex) – псевдосостояние,
предназначенное для соединения нескольких переходов,
которые имеют в качестве своих источников вершины из
различных ортогональных регионов композитного состояния.
stm Процесс
A1 A2
B1 B2
Обработка
Установка Очистка
Точки входа и выхода
Точка входа (entry point) – псевдосостояние, предназначенное
для моделирования входа в некоторый конечный автомат или
композитное состояние
Точка выхода (exit point) – псевдосостояние, предназначенное
для моделирования выхода из некоторого конечного автомата
или композитного состояния
Выборсуммы
суммавведена
Вводдругой
суммы
выбордругой
суммы
отмена
stm ВводсуммыATM
отмена
суммавыбрана
повторныйввод отменен
Композитные состояния и регионы
Композитное состояние (composite state) – состояние,
содержащее в своем составе один регион или несколько
ортогональных регионов.
Регион (region) – специальный элемент модели, который
содержит состояния и переходы, и является частью
композитного состояния или конечного автомата.
Ортогональное (orthogonal) композитное состояние –
композитное состояние, содержащее более одного региона,
которые в этом случае называются ортогональными
регионами (orthogonal regions)
Обозначение простого композитного
состояния
Любое состояние, заключенное в регион композитного
состояния, называется подсостоянием (substate) этого
композитного состояния
Оно называется прямым подсостоянием (direct substate),
если оно не содержится в никаком другом состоянии; в
противном случае оно называется непрямым подсостоянием
(indirect substate).
Пример композитного состояния с регионом
и нотация ортогональных регионов
Дозвондоабонента
наборцифры(n)
[номерполный]
entry/номер.добавить(n)
Наборномера
entry/начатьтонвызов
exit/остановитьтонвызов
Начало
наборцифры(n)
[номерполный]
Имя
Ортогональный
регион1
Ортогональный
регион2
отменен
Вход в простое композитное состояние
Вход по умолчанию. Графически это изображается
некоторым входящим переходом, который оканчивается на
границе символа данного композитного состояния
Вход в простое композитное состояние
Явный вход. Если переход входит в некоторое подсостояние
простого композитного состояния, то такое подсостояние
становится активным, а его входное действие выполняется
после выполнения входного действия композитного
состояния.
Вход в простое композитное состояние
Вход в точку входа. Если переход входит в простое
композитное состояние через точку входа, то выполняется
входное поведение композитного состояния до действия,
ассоциированного с тем внутренним переходом, который
выходит из этой точки входа.
Выборсуммы
суммавведена
Вводдругой
суммы
выбордругой
суммы
отмена
stm ВводсуммыATM
отмена
суммавыбрана
повторныйввод отменен
Выход из простого композитного состояния
Выход по умолчанию. Графически это изображается
некоторым выходящим переходом, который берет начало на
границе символа простого композитного состояния и не
содержит имени триггерного события.
Выход из простого композитного состояния
Явный выход. Графически это также изображается
выходящим переходом, который берет начало на границе
символа простого композитного состояния и содержит имя
некоторого триггерного события. Такой переход также
называют внешним (external) переходом.
При этом выполняются выходные действия композитного
состояния после выполнения выходных действий
подсостояния источника. Это правило применяется
рекурсивно, если переход выходит из транзитивно
вложенного композитного состояния.
Выход из простого композитного состояния
Выход по верхнеуровневому переходу. Если переход
выходит из некоторого подсостояния и пересекает границу
простого композитного состояния, то срабатывание такого
перехода приводит к выходу из этого композитного
состояния и делает активным целевое состояние этого
перехода. Такой переход называется верхнеуровневым
переходом
Выход из простого композитного состояния
Выход из точки выхода. Если в простом композитном
состоянии происходит выход через точку выхода, то
выходные действия композитного состояния выполняются
перед действиями, ассоциированными с переходом,
выходящим из этой точки выхода.
Набортекста
[ошибокнет]
Проверка
правописания
наборзакончен
прерывано
Редактированиетекста
H
[ошибкиесть]
Внесение
исправлений
исправления
внесены
entry/перевестиредакторвактивныйрежим
exit/перевестиредакторвпассивныйрежим
проверказакончена
прерывание
Пример диаграммы конечного автомата
Псевдосостояние неглубокой истории
(shallow pseudo state)
- предназначено для представления самого последнего
активного подсостояния композитного состояния после
выхода из него
Набортекста
[ошибокнет]
Проверка
правописания
наборзакончен
прерывано
Редактированиетекста
H
[ошибкиесть]
Внесение
исправлений
исправления
внесены
entry/перевестиредакторвактивныйрежим
exit/перевестиредакторвпассивныйрежим
проверказакончена
прерывание
Вход в простое композитное состояние
Вход в неглубокую историю. Если переход оканчивается на
псевдосостоянии неглубокой истории, то активным
подсостоянием становится наиболее последнее активное
подсостояние до этого входа, за исключением, когда
наиболее последним активным подсостоянием является
финальное состояние или если это есть первый вход в
данное композитное состояние.
Вход в глубокую историю. Правило здесь такое же, что и для
неглубокой истории, за исключением того, что это правило
применяется рекурсивно ко всем уровням в этой
конфигурации активных состояний, начиная от уровня
рассматриваемого псевдосостояния глубокой истории и
ниже.
Псевдосостояние глубокой истории
(deep pseudo state)
- предназначено для представления последней активной
конфигурации композитного состояния после выхода из него
[ошибокнет]
Проверка
правописания
вводзакончен
прерывано
Редактированиетекста
H*
[ошибкиесть]
Внесение
исправлений
исправления
внесены
entry/перевестиредакторвактивныйрежим
exit/перевестиредакторвпассивныйрежим
проверказакончена
прерывание
Набортекста
Ввод
символов
Формати-
рование
форматирование
закончено
Ортогональное композитное состояние
– композитное состояние, содержащее более одного региона,
которые в этом случае называются ортогональными
регионами (orthogonal regions)
Изменение ортогональных подсостояний
Вход и выход в ортогональном композитном
состоянии
Вход в ортогональное композитное состояние и выход из него
осуществляются в соответствии с рассмотренными ранее
правилами входа и выхода простого композитного состояния, с
учетом наличия в нем нескольких ортогональных регионов.
Лабораторная
работа1
Обучение
выполнена Лабораторная
работа1
Курсовойпроект
выполнен
выполнена
Экзамен
сдан
Неудовлетво-
рительное
Успешное
несдан
stm Прохождениекурса
Исключительный выход из ортогонального
подсостояния
Передача и прием сигнала
Передача сигнала является действием, которое имеет
специальную графическую нотацию, аналогичную
используемой на диаграммах деятельности
Прием сигнала, который также называют приемом триггера,
является действием, которое имеет специальную
графическую нотацию, используемую также на диаграммах
деятельности
Синтаксис приема сигнала:
<прием-сигнала>:: = <триггер> [‘,’ <триггер>]*
[‘[‘<сторожевое-условие>‘]’]
Пример диаграммы конечного автомата с
символами приема сигнала и передачи
сигнала
[обычныйзапрос] [срочныйзапрос]
Ожидание
запроса
Запрос
срочный
Запрос
обычный
обычныйЗапрос:=id; срочныйЗапрос:=id;
Выполнение
запроса
запрос(id)
Композитные состояния с пиктограммой
скрытой декомпозиции
Композитное состояние может явно иметь секцию
декомпозиции
Эта секция содержит вложенную диаграмму, которая
показывает структуру внутреннего поведения в терминах
регионов, состояний и перехода
Редактированиетекста
entry/перевестиредакторвактивныйрежим
exit/перевестиредакторвпассивныйрежим
Имяскрытогокомпозита
Самостоятельное задание №6
Выполнить текущее тестирование: вопросы 24-29
Разработать диаграмму конечного автомата для ATM
Изобразить следующие состояния: Ожидание карточки,
Ожидание ввода ПИН-кода, Возврат карточки,
Блокирование карточки, Проверка ПИН-кода, Ожидание
выбора типа транзакции, Обработка транзакции.
Изобразить переходы между состояниями.
Детализировать композитное состояние: Обработка
транзакции

More Related Content

What's hot

5 1 диаграммы состояний
5 1 диаграммы состояний5 1 диаграммы состояний
5 1 диаграммы состояний
Maksim Nikitin
 
Collaboration diagram
Collaboration diagramCollaboration diagram
Collaboration diagram
aepetelin
 
Диаграмма компонентов
Диаграмма компонентовДиаграмма компонентов
Диаграмма компонентов
DEVTYPE
 
Vba программы
Vba программыVba программы
Vba программы
LidiKashka
 
Аспектно-Ориентированный Подход
Аспектно-Ориентированный ПодходАспектно-Ориентированный Подход
Аспектно-Ориентированный Подходakopium
 
Диаграмма развертывания
Диаграмма развертыванияДиаграмма развертывания
Диаграмма развертывания
DEVTYPE
 
РАЗРАБОТКА ПО С ИСПОЛЬЗОВАНИЕМ FINITE STATE MACHINE.
РАЗРАБОТКА ПО С ИСПОЛЬЗОВАНИЕМ FINITE STATE MACHINE.РАЗРАБОТКА ПО С ИСПОЛЬЗОВАНИЕМ FINITE STATE MACHINE.
РАЗРАБОТКА ПО С ИСПОЛЬЗОВАНИЕМ FINITE STATE MACHINE.
Pavel Tsukanov
 
Классы и объекты в Java
Классы и объекты в JavaКлассы и объекты в Java
Классы и объекты в Javametaform
 
Gang of four review.Structural patterns
Gang of four review.Structural patternsGang of four review.Structural patterns
Gang of four review.Structural patterns
Mykyta Hopkalo
 
Работа с БД в Java
Работа с БД в JavaРабота с БД в Java
Работа с БД в Java
metaform
 

What's hot (11)

5 1 диаграммы состояний
5 1 диаграммы состояний5 1 диаграммы состояний
5 1 диаграммы состояний
 
Collaboration diagram
Collaboration diagramCollaboration diagram
Collaboration diagram
 
Диаграмма компонентов
Диаграмма компонентовДиаграмма компонентов
Диаграмма компонентов
 
Vba программы
Vba программыVba программы
Vba программы
 
Аспектно-Ориентированный Подход
Аспектно-Ориентированный ПодходАспектно-Ориентированный Подход
Аспектно-Ориентированный Подход
 
Диаграмма развертывания
Диаграмма развертыванияДиаграмма развертывания
Диаграмма развертывания
 
РАЗРАБОТКА ПО С ИСПОЛЬЗОВАНИЕМ FINITE STATE MACHINE.
РАЗРАБОТКА ПО С ИСПОЛЬЗОВАНИЕМ FINITE STATE MACHINE.РАЗРАБОТКА ПО С ИСПОЛЬЗОВАНИЕМ FINITE STATE MACHINE.
РАЗРАБОТКА ПО С ИСПОЛЬЗОВАНИЕМ FINITE STATE MACHINE.
 
лр4 uml
лр4 umlлр4 uml
лр4 uml
 
Классы и объекты в Java
Классы и объекты в JavaКлассы и объекты в Java
Классы и объекты в Java
 
Gang of four review.Structural patterns
Gang of four review.Structural patternsGang of four review.Structural patterns
Gang of four review.Structural patterns
 
Работа с БД в Java
Работа с БД в JavaРабота с БД в Java
Работа с БД в Java
 

Similar to Диаграмма конечного автомата

Операторы в Turbo Pascal
Операторы в Turbo PascalОператоры в Turbo Pascal
Операторы в Turbo PascalOlgaDask
 
Cтатический анализ кода (на примере DDD-фреймворка)
Cтатический анализ кода (на примере DDD-фреймворка)Cтатический анализ кода (на примере DDD-фреймворка)
Cтатический анализ кода (на примере DDD-фреймворка)
ngrebnev
 
Алгоритмизация
АлгоритмизацияАлгоритмизация
Алгоритмизация
Lebedeva_Zoya
 
Метапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.Такси
Метапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.ТаксиМетапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.Такси
Метапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.Такси
Mail.ru Group
 
Метапрограммирование: строим конечный автомат. Сергей Федоров ➠ CoreHard Aut...
Метапрограммирование: строим конечный автомат. Сергей Федоров ➠  CoreHard Aut...Метапрограммирование: строим конечный автомат. Сергей Федоров ➠  CoreHard Aut...
Метапрограммирование: строим конечный автомат. Сергей Федоров ➠ CoreHard Aut...
corehard_by
 
Базовые операторы Java
Базовые операторы JavaБазовые операторы Java
Базовые операторы Javametaform
 
диаграмма деятельности
диаграмма деятельностидиаграмма деятельности
диаграмма деятельности
Viktoria Alhimenko
 
Prez
PrezPrez
Prez
elvi42
 
Statements in VHDL - Sequential Statements
Statements in VHDL - Sequential StatementsStatements in VHDL - Sequential Statements
Statements in VHDL - Sequential Statements
vitaliykulanov
 

Similar to Диаграмма конечного автомата (12)

Step 2
Step 2Step 2
Step 2
 
Конечные автоматы - Владимир Кожаев
Конечные автоматы - Владимир КожаевКонечные автоматы - Владимир Кожаев
Конечные автоматы - Владимир Кожаев
 
Операторы в Turbo Pascal
Операторы в Turbo PascalОператоры в Turbo Pascal
Операторы в Turbo Pascal
 
п2 06 07
п2 06 07п2 06 07
п2 06 07
 
Cтатический анализ кода (на примере DDD-фреймворка)
Cтатический анализ кода (на примере DDD-фреймворка)Cтатический анализ кода (на примере DDD-фреймворка)
Cтатический анализ кода (на примере DDD-фреймворка)
 
Алгоритмизация
АлгоритмизацияАлгоритмизация
Алгоритмизация
 
Метапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.Такси
Метапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.ТаксиМетапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.Такси
Метапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.Такси
 
Метапрограммирование: строим конечный автомат. Сергей Федоров ➠ CoreHard Aut...
Метапрограммирование: строим конечный автомат. Сергей Федоров ➠  CoreHard Aut...Метапрограммирование: строим конечный автомат. Сергей Федоров ➠  CoreHard Aut...
Метапрограммирование: строим конечный автомат. Сергей Федоров ➠ CoreHard Aut...
 
Базовые операторы Java
Базовые операторы JavaБазовые операторы Java
Базовые операторы Java
 
диаграмма деятельности
диаграмма деятельностидиаграмма деятельности
диаграмма деятельности
 
Prez
PrezPrez
Prez
 
Statements in VHDL - Sequential Statements
Statements in VHDL - Sequential StatementsStatements in VHDL - Sequential Statements
Statements in VHDL - Sequential Statements
 

More from DEVTYPE

Рукописные лекции по линейной алгебре
Рукописные лекции по линейной алгебреРукописные лекции по линейной алгебре
Рукописные лекции по линейной алгебре
DEVTYPE
 
1.4 Точечные оценки и их свойства
1.4 Точечные оценки и их свойства1.4 Точечные оценки и их свойства
1.4 Точечные оценки и их свойства
DEVTYPE
 
1.3 Описательная статистика
1.3 Описательная статистика1.3 Описательная статистика
1.3 Описательная статистика
DEVTYPE
 
1.2 Выборка. Выборочное пространство
1.2 Выборка. Выборочное пространство1.2 Выборка. Выборочное пространство
1.2 Выборка. Выборочное пространство
DEVTYPE
 
Continuity and Uniform Continuity
Continuity and Uniform ContinuityContinuity and Uniform Continuity
Continuity and Uniform Continuity
DEVTYPE
 
Coin Change Problem
Coin Change ProblemCoin Change Problem
Coin Change Problem
DEVTYPE
 
Recurrences
RecurrencesRecurrences
Recurrences
DEVTYPE
 
D-кучи и их применение
D-кучи и их применениеD-кучи и их применение
D-кучи и их применение
DEVTYPE
 
Диаграммы Юнга, плоские разбиения и знакочередующиеся матрицы
Диаграммы Юнга, плоские разбиения и знакочередующиеся матрицыДиаграммы Юнга, плоские разбиения и знакочередующиеся матрицы
Диаграммы Юнга, плоские разбиения и знакочередующиеся матрицы
DEVTYPE
 
ЖАДНЫЕ АЛГОРИТМЫ
ЖАДНЫЕ АЛГОРИТМЫ ЖАДНЫЕ АЛГОРИТМЫ
ЖАДНЫЕ АЛГОРИТМЫ
DEVTYPE
 
Скорость роста функций
Скорость роста функцийСкорость роста функций
Скорость роста функций
DEVTYPE
 
Asymptotic Growth of Functions
Asymptotic Growth of FunctionsAsymptotic Growth of Functions
Asymptotic Growth of Functions
DEVTYPE
 
Кучи
КучиКучи
Кучи
DEVTYPE
 
Кодирование Хаффмана
Кодирование ХаффманаКодирование Хаффмана
Кодирование Хаффмана
DEVTYPE
 
Жадные алгоритмы: введение
Жадные алгоритмы: введениеЖадные алгоритмы: введение
Жадные алгоритмы: введение
DEVTYPE
 
Разбор задач по дискретной вероятности
Разбор задач по дискретной вероятностиРазбор задач по дискретной вероятности
Разбор задач по дискретной вероятности
DEVTYPE
 
Разбор задач модуля "Теория графов ll"
Разбор задач модуля "Теория графов ll"Разбор задач модуля "Теория графов ll"
Разбор задач модуля "Теория графов ll"
DEVTYPE
 
Наибольший общий делитель
Наибольший общий делительНаибольший общий делитель
Наибольший общий делитель
DEVTYPE
 
Числа Фибоначчи
Числа ФибоначчиЧисла Фибоначчи
Числа Фибоначчи
DEVTYPE
 
О-символика
О-символикаО-символика
О-символика
DEVTYPE
 

More from DEVTYPE (20)

Рукописные лекции по линейной алгебре
Рукописные лекции по линейной алгебреРукописные лекции по линейной алгебре
Рукописные лекции по линейной алгебре
 
1.4 Точечные оценки и их свойства
1.4 Точечные оценки и их свойства1.4 Точечные оценки и их свойства
1.4 Точечные оценки и их свойства
 
1.3 Описательная статистика
1.3 Описательная статистика1.3 Описательная статистика
1.3 Описательная статистика
 
1.2 Выборка. Выборочное пространство
1.2 Выборка. Выборочное пространство1.2 Выборка. Выборочное пространство
1.2 Выборка. Выборочное пространство
 
Continuity and Uniform Continuity
Continuity and Uniform ContinuityContinuity and Uniform Continuity
Continuity and Uniform Continuity
 
Coin Change Problem
Coin Change ProblemCoin Change Problem
Coin Change Problem
 
Recurrences
RecurrencesRecurrences
Recurrences
 
D-кучи и их применение
D-кучи и их применениеD-кучи и их применение
D-кучи и их применение
 
Диаграммы Юнга, плоские разбиения и знакочередующиеся матрицы
Диаграммы Юнга, плоские разбиения и знакочередующиеся матрицыДиаграммы Юнга, плоские разбиения и знакочередующиеся матрицы
Диаграммы Юнга, плоские разбиения и знакочередующиеся матрицы
 
ЖАДНЫЕ АЛГОРИТМЫ
ЖАДНЫЕ АЛГОРИТМЫ ЖАДНЫЕ АЛГОРИТМЫ
ЖАДНЫЕ АЛГОРИТМЫ
 
Скорость роста функций
Скорость роста функцийСкорость роста функций
Скорость роста функций
 
Asymptotic Growth of Functions
Asymptotic Growth of FunctionsAsymptotic Growth of Functions
Asymptotic Growth of Functions
 
Кучи
КучиКучи
Кучи
 
Кодирование Хаффмана
Кодирование ХаффманаКодирование Хаффмана
Кодирование Хаффмана
 
Жадные алгоритмы: введение
Жадные алгоритмы: введениеЖадные алгоритмы: введение
Жадные алгоритмы: введение
 
Разбор задач по дискретной вероятности
Разбор задач по дискретной вероятностиРазбор задач по дискретной вероятности
Разбор задач по дискретной вероятности
 
Разбор задач модуля "Теория графов ll"
Разбор задач модуля "Теория графов ll"Разбор задач модуля "Теория графов ll"
Разбор задач модуля "Теория графов ll"
 
Наибольший общий делитель
Наибольший общий делительНаибольший общий делитель
Наибольший общий делитель
 
Числа Фибоначчи
Числа ФибоначчиЧисла Фибоначчи
Числа Фибоначчи
 
О-символика
О-символикаО-символика
О-символика
 

Диаграмма конечного автомата

  • 1. Учебный курс Язык UML в анализе и проектировании программных систем и бизнес-процессов Лекция 5 Диаграмма конечного автомата Автор: Леоненков Александр Васильевич кандидат технических наук, старший научный сотрудник
  • 2. Диаграмма конечного автомата - является графом, который представляет некоторый конечный автомат Конечный автомат (state machine) представляет собой некоторый формализм для моделирования поведения отдельных элементов модели или системы в целом Поведение (behavior) является спецификацией того, как экземпляр классификатора изменяет значения отдельных характеристик в течение своего времени жизни Состояние (state) – элемент модели поведения, предназначенный для представления ситуации, в ходе которой поддерживается некоторое условие инварианта Переход (transition) является направленным отношением между двумя состояниями, одно из которых является вершиной источником (source vertex), а другое – целевой вершиной (target vertex)
  • 3. Основные обозначения на конечного автомата
  • 4. Примеры обозначений на конечного автомата
  • 5. Простое состояние (simple state) - называется состояние, которое не имеет внутренних регионов и подсостояний На диаграмме конечного автомата допускается изображать состояния без имени, которые называются анонимными состояниями Все анонимные состояния считаются различными На одной диаграмме нежелательно показывать одно и то же именованное состояние дважды, поскольку это может привести к недоразумению Ожидание ввода пароля entry/установитьсимволыневидимыми exit/установитьсимволывидимыми символ/обработатьсимвол помощь/открытьокнопомощи НаборПароляОткрытиесчета
  • 6. Простое состояние с внутренними действиями
  • 7. Секция внутренней деятельности entry - эта метка специфицирует поведение, которое также называют входным поведением. Это поведение выполняется всякий раз, когда происходит вход в данное состояние независимо от перехода, позволившего достичь это состояние (действие на входе) exit - эта метка специфицирует поведение, которое также называют выходным поведением. Это поведение выполняется всякий раз, когда происходит выход из данного состояния независимо от перехода, который выводит из этого состояния (действие на выходе) do - эта метка специфицирует поведение, которое выполняется до тех пор, пока моделируемый элемент находится в данном состоянии, или до тех пор, пока не закончится выполнение деятельности, специфицированной соответствующим выражением (ду деятельность)
  • 9. Внутренние переходы и отложенные события Внутренний (internal) переход выполняется без выхода из состояние и без повторного входа в состояние, в котором он определен Событие, которое не инициирует никаких переходов в текущем состоянии, не может быть обработано. Однако, если его тип совпадает с одним из типов в множестве отложенных событий этого состояния, то оно остается в пуле событий. Отложенные события сохраняются до тех пор, пока не будет достигнуто другое состояние, в котором эти события смогут инициировать некоторый переход Отложенное событие представляется отдельной строкой текста в соответствии с рассмотренным ранее формальным синтаксисом для триггера, после которой следует разделитель “/” (обратный слэш) и ключевое слово defer
  • 10. Спецификация перехода Событие (event) является спецификацией некоторых условий, которые оказывают влияние на поведение моделируемой сущности Триггер (trigger) устанавливает отношение события с поведением, которое может оказывать влияние на экземпляр классификатора
  • 11. Спецификация перехода Переход может быть помечен строкой текста, синтаксис которой определяется следующим выражением (БНФ): <переход>:: = <триггер> [‘,’<триггер>]* [‘[‘<сторожевое- ограничение>’]’] [‘/’<выражение-деятельности>] Здесь <триггер> представляет собой имя триггерного события, вернее, его типа. В качестве имени триггера могут использоваться имена операций с параметрами или без них. Терм <сторожевое-ограничение>, которое в прежних версиях языка UML 1.х называется сторожевым условием (guard condition), является логическим выражением, записанным в терминах параметров триггерного события, атрибутов и связей объекта контекста. Терм <выражение-деятельности>, который иногда называют выражением поведения, выполняется, если и только если переход срабатывает
  • 12. Составной переход (compound transition) - является производным семантическим понятием, которое представляет “семантически полный” путь, совершаемый одним или несколькими переходами. Передача сигнала является действием, которое имеет специальную графическую нотацию, описанную ранее при рассмотрении диаграмм деятельности Прием сигнала, который также называют приемом триггера, является действием, которое имеет специальную графическую нотацию, описанную ранее при рассмотрении диаграмм деятельности Синтаксис приема сигнала: <прием-сигнала>:: = <триггер> [‘,’ <триггер>]* [‘[‘<сторожевое-условие>‘]’]
  • 14. Конфликтующие переходы Два и более разрешенных перехода называются конфликтующими (conflicting), если все они выходят из одного и того же состояния, или, более точно, пересечение множеств их состояний источников не является пустым Пример конфликта переходов и вариант устранения конфликта поступилзапрос [обычныйзапрос] Ожидание запроса Обработка запроса Формирование отчета поступилзапрос [запроснаотчет] [else] Ожидание запроса Обработка запроса Формирование отчета [запроснаотчет] поступилзапрос
  • 15. Псевдосостояния (pseudo state) – абстрактный элемент модели, который включает в себя различные типы вспомогательных вершин в графе конечного автомата Начальное псевдосостояние (initial pseudo state) представляет вершину графа конечного автомата, которая по умолчанию является состоянием источником для начального перехода моделируемого поведения Узел завершения (terminate node) является псевдосостоянием, вход в который означает завершение выполнения поведения конечного автомата в контексте его объекта Финальное состояние (final state) – специальный вид состояния, предназначенное для моделирования завершения конечного автомата или региона, в котором оно содержится
  • 16. Начальное псевдосостояние, узел завершения и пример их использования Принят stm Заказ Отменен заполнить Оплачен Отгружен Закрыт Заполнен оплатить отменить отменить отгрузить закрыть удалить удалить
  • 17. Выбор и соединение Псевдосостояние выбора (choice pseudo state) предназначено для моделирования нескольких альтернативных ветвей при реализации поведения конечного автомата Псевдосостояние соединения (junction pseudo state) является вершиной со свободной семантикой, которая используется для соединения вместе нескольких переходов [Id>=10] [Id<10] [>=10] [<10] Id [else] [Id>10] [Id<10] e2[b>0] Состояние1 [a<0] Состояние2 Состояние3 Состояние5Состояние4 e1[b>0] [a=5] [else]
  • 18. Разделение и слияние Вершина разделения (fork vertex) – псевдосостояние, предназначенное для разделения входящего перехода на два или более перехода, которые имеют в качестве своих целей вершины в ортогональных регионах композитного состояния. Вершина слияния (join vertex) – псевдосостояние, предназначенное для соединения нескольких переходов, которые имеют в качестве своих источников вершины из различных ортогональных регионов композитного состояния. stm Процесс A1 A2 B1 B2 Обработка Установка Очистка
  • 19. Точки входа и выхода Точка входа (entry point) – псевдосостояние, предназначенное для моделирования входа в некоторый конечный автомат или композитное состояние Точка выхода (exit point) – псевдосостояние, предназначенное для моделирования выхода из некоторого конечного автомата или композитного состояния Выборсуммы суммавведена Вводдругой суммы выбордругой суммы отмена stm ВводсуммыATM отмена суммавыбрана повторныйввод отменен
  • 20. Композитные состояния и регионы Композитное состояние (composite state) – состояние, содержащее в своем составе один регион или несколько ортогональных регионов. Регион (region) – специальный элемент модели, который содержит состояния и переходы, и является частью композитного состояния или конечного автомата. Ортогональное (orthogonal) композитное состояние – композитное состояние, содержащее более одного региона, которые в этом случае называются ортогональными регионами (orthogonal regions)
  • 21. Обозначение простого композитного состояния Любое состояние, заключенное в регион композитного состояния, называется подсостоянием (substate) этого композитного состояния Оно называется прямым подсостоянием (direct substate), если оно не содержится в никаком другом состоянии; в противном случае оно называется непрямым подсостоянием (indirect substate).
  • 22. Пример композитного состояния с регионом и нотация ортогональных регионов Дозвондоабонента наборцифры(n) [номерполный] entry/номер.добавить(n) Наборномера entry/начатьтонвызов exit/остановитьтонвызов Начало наборцифры(n) [номерполный] Имя Ортогональный регион1 Ортогональный регион2 отменен
  • 23. Вход в простое композитное состояние Вход по умолчанию. Графически это изображается некоторым входящим переходом, который оканчивается на границе символа данного композитного состояния
  • 24. Вход в простое композитное состояние Явный вход. Если переход входит в некоторое подсостояние простого композитного состояния, то такое подсостояние становится активным, а его входное действие выполняется после выполнения входного действия композитного состояния.
  • 25. Вход в простое композитное состояние Вход в точку входа. Если переход входит в простое композитное состояние через точку входа, то выполняется входное поведение композитного состояния до действия, ассоциированного с тем внутренним переходом, который выходит из этой точки входа. Выборсуммы суммавведена Вводдругой суммы выбордругой суммы отмена stm ВводсуммыATM отмена суммавыбрана повторныйввод отменен
  • 26. Выход из простого композитного состояния Выход по умолчанию. Графически это изображается некоторым выходящим переходом, который берет начало на границе символа простого композитного состояния и не содержит имени триггерного события.
  • 27. Выход из простого композитного состояния Явный выход. Графически это также изображается выходящим переходом, который берет начало на границе символа простого композитного состояния и содержит имя некоторого триггерного события. Такой переход также называют внешним (external) переходом. При этом выполняются выходные действия композитного состояния после выполнения выходных действий подсостояния источника. Это правило применяется рекурсивно, если переход выходит из транзитивно вложенного композитного состояния.
  • 28. Выход из простого композитного состояния Выход по верхнеуровневому переходу. Если переход выходит из некоторого подсостояния и пересекает границу простого композитного состояния, то срабатывание такого перехода приводит к выходу из этого композитного состояния и делает активным целевое состояние этого перехода. Такой переход называется верхнеуровневым переходом
  • 29. Выход из простого композитного состояния Выход из точки выхода. Если в простом композитном состоянии происходит выход через точку выхода, то выходные действия композитного состояния выполняются перед действиями, ассоциированными с переходом, выходящим из этой точки выхода. Набортекста [ошибокнет] Проверка правописания наборзакончен прерывано Редактированиетекста H [ошибкиесть] Внесение исправлений исправления внесены entry/перевестиредакторвактивныйрежим exit/перевестиредакторвпассивныйрежим проверказакончена прерывание
  • 31. Псевдосостояние неглубокой истории (shallow pseudo state) - предназначено для представления самого последнего активного подсостояния композитного состояния после выхода из него Набортекста [ошибокнет] Проверка правописания наборзакончен прерывано Редактированиетекста H [ошибкиесть] Внесение исправлений исправления внесены entry/перевестиредакторвактивныйрежим exit/перевестиредакторвпассивныйрежим проверказакончена прерывание
  • 32. Вход в простое композитное состояние Вход в неглубокую историю. Если переход оканчивается на псевдосостоянии неглубокой истории, то активным подсостоянием становится наиболее последнее активное подсостояние до этого входа, за исключением, когда наиболее последним активным подсостоянием является финальное состояние или если это есть первый вход в данное композитное состояние. Вход в глубокую историю. Правило здесь такое же, что и для неглубокой истории, за исключением того, что это правило применяется рекурсивно ко всем уровням в этой конфигурации активных состояний, начиная от уровня рассматриваемого псевдосостояния глубокой истории и ниже.
  • 33. Псевдосостояние глубокой истории (deep pseudo state) - предназначено для представления последней активной конфигурации композитного состояния после выхода из него [ошибокнет] Проверка правописания вводзакончен прерывано Редактированиетекста H* [ошибкиесть] Внесение исправлений исправления внесены entry/перевестиредакторвактивныйрежим exit/перевестиредакторвпассивныйрежим проверказакончена прерывание Набортекста Ввод символов Формати- рование форматирование закончено
  • 34. Ортогональное композитное состояние – композитное состояние, содержащее более одного региона, которые в этом случае называются ортогональными регионами (orthogonal regions)
  • 36. Вход и выход в ортогональном композитном состоянии Вход в ортогональное композитное состояние и выход из него осуществляются в соответствии с рассмотренными ранее правилами входа и выхода простого композитного состояния, с учетом наличия в нем нескольких ортогональных регионов. Лабораторная работа1 Обучение выполнена Лабораторная работа1 Курсовойпроект выполнен выполнена Экзамен сдан Неудовлетво- рительное Успешное несдан stm Прохождениекурса
  • 37. Исключительный выход из ортогонального подсостояния
  • 38. Передача и прием сигнала Передача сигнала является действием, которое имеет специальную графическую нотацию, аналогичную используемой на диаграммах деятельности Прием сигнала, который также называют приемом триггера, является действием, которое имеет специальную графическую нотацию, используемую также на диаграммах деятельности Синтаксис приема сигнала: <прием-сигнала>:: = <триггер> [‘,’ <триггер>]* [‘[‘<сторожевое-условие>‘]’]
  • 39. Пример диаграммы конечного автомата с символами приема сигнала и передачи сигнала [обычныйзапрос] [срочныйзапрос] Ожидание запроса Запрос срочный Запрос обычный обычныйЗапрос:=id; срочныйЗапрос:=id; Выполнение запроса запрос(id)
  • 40. Композитные состояния с пиктограммой скрытой декомпозиции Композитное состояние может явно иметь секцию декомпозиции Эта секция содержит вложенную диаграмму, которая показывает структуру внутреннего поведения в терминах регионов, состояний и перехода Редактированиетекста entry/перевестиредакторвактивныйрежим exit/перевестиредакторвпассивныйрежим Имяскрытогокомпозита
  • 41. Самостоятельное задание №6 Выполнить текущее тестирование: вопросы 24-29 Разработать диаграмму конечного автомата для ATM Изобразить следующие состояния: Ожидание карточки, Ожидание ввода ПИН-кода, Возврат карточки, Блокирование карточки, Проверка ПИН-кода, Ожидание выбора типа транзакции, Обработка транзакции. Изобразить переходы между состояниями. Детализировать композитное состояние: Обработка транзакции