1.64M
Категория: ПрограммированиеПрограммирование

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

1.

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

2.

Итоги этапа формирования требований
Для описания динамических особенностей взаимодействия
элементов модели применяются диаграммы взаимодействия,
позволяющие выделить объекты и сообщения, которыми они
обмениваются между собой в ходе реализации того или иного
варианта использования. При этом взаимодействующие объекты
способны изменять как свои характеристики, так и поведение. Как
следствие – возможное изменение реакции объекта в ответ на одно
и то же событие или другое значимое изменение его свойств в
других вариантах использования. Принято говорить, что объект
меняет свое состояние. Таким образом, для моделирования
процессов функционирования сложных систем ресурсов
предоставляемых диаграммами взаимодействия может оказаться
недостаточно.

3.

Из прошлой беседы я понял, что в
процессе выполнения своих
обязанностей Вам приходится иметь
дело с рядом различных объектов,
Правильно ли я понял, что картридер
свойства которых могут существенно
может
находиться
в одном
изнодвух
Начнем
сНе
простых
Вас,
меняться?
могли для
бы вы
рассказать
состояний,
которые
условновещей.
назовем
существенных
для проекта
подробнее, какими
параметрами эти
«Готов
прочитать
карту»
«Не
готов
Мы
с Вами
говорили
про картридер.
Теперь
можно
перейти
кине
объекты
характеризуются
и таким
как они
прочитать
карту»?
Чтовещам
нужно
сделать
Он считывает
клиента.
очевидным
влияют
на карточку
свойства
объекта?
для
того,ли
чтобы
картридер
перешел
Может
клиент
использовать
из
первого
состояния
во второе и
вторую
карточку,
не извлекая
наоборот?
первую?
Аналитик
Давайте попробуем. Мне кажется
я понял, что Вас интересует. Я
Это же элементарно! Для того»
предлагаю обсудить «Счет». Почтобы картридер перешел в
моему Вы его тоже называете
состояние «Готов прочитать
«объектом». Он явно может
карту» он должен быть пустым.
менять
свои
свойства.
Счет
Конечно
нет!
же очевидно!
После того
какЭто
клиент
поместил
может
быть
открыт
иначнем?
тогда все
Картридер
просто
позволит
ему
Сне
чего
вПожалуйста.
него свою
карту
картридер
предусмотренные
операции для
сделать!
«Не готовэто
прочитать
карту» до
него доступны. Его можно
тех пор пока не закончится
«заморозить» – и с него нельзя
транзакция и старая карта не
будет снять деньги. А можно и
будет возвращена владельцу
вообще закрыть
Исполнитель

4.

7.1. Основные определения и
нотационные соглашения
Диаграммы состояний (англ. Statechart Diagram) — представляет собой ориентированный
граф для конечного автомата, в котором вершины обозначают состояния, дуги показывают
переходы между двумя состояниями.
отражающий динамическое поведение сущностей на основе спецификации их реакции на
восприятие некоторых конкретных событий.
Основное назначение диаграмм состояния – описать возможные
последовательности состояний и переходов, которые в совокупности характеризуют
динамическое поведение моделируемой системы в течение всего ее
жизненного цикла. Диаграммы состояний связывают несколько прецедентов или сценариев и
определяют все возможные состояния, в которых может находиться объект, а также процесс
смены состояний объекта в результате некоторых событий.

5.

7.1. Основные определения и
нотационные соглашения
<Имя состояния>
Состояние (state) – период в жизни объекта, на протяжении которого
он удовлетворяет какому-то условию, выполняет определенную
деятельность или ожидает некоторого события.
Входное действие (entry action) - действие, которое выполняется в
момент перехода в данное состояние.
<Имя состояния>
entry/<входное действие>
do/<внутренняя деятельность>
exit<действие выхода>
Действие выхода (exit action) - действие, производимое при выходе
из данного состояния.
Внутренняя деятельность (do activity) - выполнение объектом
операций или процедур, выполняемых в течение всего времени,
пока объект находится в данном состоянии, или до тех пор, пока
внутренняя деятельность не будет прервана внешним событием.

6.

7.1. Основные определения и
нотационные соглашения
Псевдосостояние (pseudo-state) - вершина в конечном автомате, которая
имеет форму состояния, но не обладает поведением.
Начальное состояние (start state) - разновидность псевдосостояния,
обозначающее начало выполнения процесса изменения состояний
конечного автомата.
В этом состоянии находится объект по умолчанию в начальный момент
времени.
Конечное состояние (final state) - разновидность псевдосостояния, обозначающее
прекращение процесса изменения состояний конечного автомата.
В этом состоянии должен находиться моделируемый объект или система по
умолчанию после завершения работы конечного автомата.

7.

7.1. Основные определения и
нотационные соглашения
Исходное
состояние
Переход (transition) – отношение между двумя состояниями, которое указывает
на то, что объект в исходном состоянии должен выполнить определенные
действия и перейти в целевое состояние. Исходное и целевое состояния могут
совпадать (переход в себя). Срабатывание перехода может зависеть не только от
наступления события, но и от выполнения определенного условия,
называемого сторожевым.
<имя события>(<список параметров>)
[<сторожевое условие>]/<действия>.
Событие (event) – это описание существенного факта, имеющего определенное
местоположение во времени и пространстве.
Целевое
состояние
Действие (action)– выполнимое атомарное или мгновенное вычисление,
которое приводит к изменению состояния системы или возврату значения.
Действие – нельзя прервать извне.

8.

Пример. Диаграмма состояния картридера
АТМ
<Начать обслуживание>
[<карта в картридере>]/<чтение карты>.
Картридер готов
к приему
очередной
карты
Картридер не готов к
приему карты
<Закончить обслуживание>
[<картридер пуст>]<выдача карты>.

9.

Пример. Диаграмма состояния
банковского кредитного счета
Снятие денег
[отрицательный баланс]
Снятие денег
[Отрицательный баланс]
Счет открыт
Вклад денег
[Положительный баланс]
Клиент требует закрыть счет[Кредит
погашен]/Сохранить дату закрытия счета
Счет закрыт
Превышение кредита
entry\Приостановить расходные операции
do\Послать уведомление клиенту
entry\Восстановить расходные операции
Проверка баланса [Отрицательный
баланс более чем 30 дней]
Решение суда [Удовлетворить
иск]/Взыскать средства
Счет
заблокирован

10.

7.2. Составное состояние. Подсостояния.
Составное состояние (composite state) – это сложное состояние, состоящее из других
вложенных в него состояний. Последние по отношению к первому выступают как подсостояния
(substate).
Составное состояние
Подсостояние 1
Подсостояние 2

11.

7.2. Составное состояние. Подсостояния.
Составное состояние (composite state) – это сложное состояние, состоящее из других
вложенных в него состояний. Последние по отношению к первому выступают как подсостояния
(substate).
A
a
B
Б
e
Г
Д
f
d
b
с
g
Е
a – переход из состояния А в начальное состояние составного состояния, а из него в состояние В;
b – переход из состояние Б в состояние Г составного состояния;
c – выход из состояния В и составного состояния, переход в состояние Д;
d – переход из подсостояния В составного состояния в подсостояние Г составного состояния;
е– переход из подсостояния Г составного состояния в конечное состояние составного состояния;
f, g – переход относится к каждому из вложенных подсостояний при выполнении соответствующих
сторожевых условий

12.

7.3. Историческое состояние.
Историческое состояние (history state) применяется в контексте составного состояния. Оно
используется для запоминания того из последовательных подсостояний, которое было текущим
на момент выхода из составного состояния.
н
Неглубокое историческое состояние (shallow history state) является
первым подсостоянием в составном состоянии, и переход извне в это составное
состояние должен вести непосредственно в это историческое состояние. При
первом попадании в недавнее историческое состояние оно не хранит никакой
истории и оно работает как обычное начальное состояние. После нескольких
изменений вложенных подсостояний происходит выход из очередного
подсостояния, которое запоминается в истории состояний. При следующем
входе в это же составное состояние историческое подсостояние уже имеет
непустую историю и сразу отправляет подавтомат в запомненное подсостояние.
История теряется в тот момент, когда подавтомат доходит до своего конечного
состояния.

13.

7.3. Историческое состояние.
Историческое состояние (history state) применяется в контексте составного состояния. Оно
используется для запоминания того из последовательных подсостояний, которое было текущим
на момент выхода из составного состояния.
н*
Глубокое историческое состояние (deep history state) С другой стороны,
запомненное состояние, в свою очередь, также может являться составным
состоянием. Глубокое историческое состояние служит для запоминания всех
подсостояний любого уровня вложенности для текущего подавтомата.

14.

Пример. Диаграмма состояния окна
приложения Windows
Описываемые процессы вам хорошо знакомы, поэтому попытайтесь самрстоятельно дополнить
диаграмму событиями и сторожевыми условиями.
Окно активно
Окно не активно
Нормальный
размер
Нормальный
размер
Во весь экран
н
Во весь экран
Пиктограмма
English     Русский Правила