Диаграмма состояний UML
Цели данного типа диаграмм
Автомат
Из чего состоит автомат
Торговый автомат с кофе
Связь с UML
Имя состояния
Список внутренних действий
Начальное состояние
Конечное состояние
Понятие перехода
Событие
Пример
Основные элементы
Когда использовать
ШАГ 0. Выбрать объект
ШАГ 1.
ШАГ 2. Выделить логические состояния (!не методы)
ШАГ 3. Найти события (методы), которые МОГУТ менять состояние
ШАГ 4. Определить переходы между состояниями
ШАГ 5. Добавить начальное и конечное состояния
Итог
278.92K

uml_state_diagram_presentation

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

2. Цели данного типа диаграмм

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

3.

• В большинстве случаев диаграмма
состояний строиться для одного класса,
чтобы показать динамику поведения
объектов этого класса. Диаграммы
состояний обычно используют для
описания поведения некоторого объекта в
различных вариантах использования.

4. Автомат

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

5. Из чего состоит автомат

У любого конечного автомата есть:
1.Множество состояний
например: Ожидание Работа Ошибка
2.Начальное состояние
откуда всё начинается
3.События (входные сигналы)
кнопка нажата, пришли данные, истёк таймер
4.Переходы
правила вида:
,
,
если произошло событие → перейти в другое состояние
5.(Иногда) действия
что выполняется при входе/выходе из состояния

6. Торговый автомат с кофе

Состояния:
Ожидание
Принятие денег
Приготовление
Выдача
Ошибка
Переходы:
Вставили деньги
Выбрали кофе
Готов
Нет воды

7. Связь с UML

Конечный автомат — теория
Диаграмма состояний UML — визуальное представление этого автомата

8. Имя состояния

Текст, используемый в качестве имени
состояния должен выражать содержательный
смысл действий, выполняемых системой в
этом конкретном состоянии (в конкретный
момент её функционирования).

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

Список внутренних действий содержит
перечисление действий, которые система
выполняет в соответствующем
Действия следует указывать в порядке их
выполнения системой.
имя_дейстивя/содержание_действия

10.

Снизу на рисунке показано как будет
выглядеть в графическом представлении
событие с указанным списком внутренних
действий для состояния передачи данных.

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

Начальное состояние – это частный случай
состояния, в котором объект находиться в
начальный момент времени. У начального
состояния отсутствуют внутренние действия,
потому что оно предшествует первым
выполняемым объектам действиям, а значит
и первому внутреннему состоянию объекта
```начальное и конечное состояние называют
псевдо-состояниями.```

12.

Начальное состояние изображается в виде
закрашенного круга.
Пример изображения начального состояния
приведён на изображении ниже.

13. Конечное состояние

Конечное значение, как и начальное,
является псевдосостоянием и отражает
момент завершения жизненного цикла
автомата. Графически конечное состояние
представляется в виде закрашенного круга

14. Понятие перехода

• Переход (transition) – это отношение между
двумя последовательными состояниями,
которое указывает на смену одного
состояния другим . Выполнение перехода
между состояниями принято называть
срабатыванием перехода.

15.

16.

• Если возле стрелки не указано никакой
подписи, то такой переход считается
нетриггерным (триггерные переходы – это
переходы, которые происходят как реакция
на некоторое событие.) Если переход
указан как нетриггерный, то из контекста
диаграммы должно быть однозначно
понятно, после какого действия он
осуществляется.

17. Событие

• Событие (event) представляет собой
декларацию некоторого факта, могущего
иметь место в пространстве и времени.
• События строго упорядочены во времени, а
значит, после того, как некоторое событие
произошло, то вернуться к предыдущему
уже невозможно (за исключением тех
случаев, когда в модели явно указана
цикличная последовательность событий).

18. Пример

19. Основные элементы

• - Состояние
• - Переход
• - Событие
• - Начальное и конечное состояние

20. Когда использовать

• - Логика аккаунтов
• - Статусы заказов
• - Жизненный цикл документов

21. ШАГ 0. Выбрать объект

class Character

22. ШАГ 1.

Найти ПЕРЕМЕННЫЕ, которые описывают
состояние
int hp;

23. ШАГ 2. Выделить логические состояния (!не методы)

• Ошибка: делать состояния
• Состояния — это условия, в которых объект
находится
•Alive — hp > 0
•Dead — hp == 0

24. ШАГ 3. Найти события (методы), которые МОГУТ менять состояние

• void takeDamage(int damage);
• void heal(int value);

25. ШАГ 4. Определить переходы между состояниями

• Что переводит Alive → Dead?

26. ШАГ 5. Добавить начальное и конечное состояния

• начальное состояние
• Dead можно считать конечным

27.

28.

• class BankAccount {
• private:
bool active;
bool blocked;
• public:
void open();
void deposit();
void withdraw();
void block();
void close();
• };

29.

30. Итог

• Диаграмма состояний показывает как
объект изменяется со временем
English     Русский Rules