Диаграммы состояний и последовательности

Состояния, переходы, сторожевые условия; линии жизни, синхронные и асинхронные сообщения, фреймы alt и loop. Когда какую диаграмму применять.

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

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

Жизненный цикл заявки:

  ●
  │ создать
  ▼
┌──────────┐  отправить  ┌─────────────┐  одобрить  ┌──────────┐
│ Черновик │────────────▶│ На проверке │───────────▶│ Принята  │
└──────────┘             └─────────────┘            └──────────┘
                                │ отклонить [есть замечания]
                                ▼
                         ┌─────────────┐
                         │ Отклонена   │──── доработать ──┐
                         └─────────────┘                  │
                                ▲                         │
                                └─────────────────────────┘

Такая диаграмма особенно уместна, когда в системе есть объект со статусами — заказ, заявка, документ. Она прямо переводится в проверку допустимых переходов в коде.

Диаграмма последовательности

Сценарий «Оформление заявки»:

Студент      Форма        Сервер        БД          ВК-бот
   │           │             │            │             │
   │─заполнить▶│             │            │             │
   │           │─POST /lead─▶│            │             │
   │           │             │─сохранить─▶│             │
   │           │             │◀──── id ───│             │
   │           │             │────────── уведомить ────▶│
   │           │◀── ok, id ──│            │             │
   │◀─ «принято»│            │            │             │

Фреймы: ветвления и циклы

ФреймСмысл
altАльтернатива: если условие — одна ветка, иначе другая
optНеобязательный блок: выполняется при условии
loopЦикл с указанием числа повторений или условия
parПараллельное выполнение
refСсылка на другую диаграмму, чтобы не дублировать
Не пытайтесь уместить все сценарии в одну диаграмму последовательности. Правильно — по диаграмме на ключевой вариант использования: обычно хватает двух-трёх самых показательных.

Какую выбрать

ВопросДиаграмма
Какие статусы бывают у документа и как он между ними ходит?Состояний
Что происходит при нажатии кнопки «Оформить»?Последовательности
Как устроен алгоритм расчёта?Деятельности
Кто из пользователей что может делать?Вариантов использования

Частые вопросы

Чем диаграмма состояний отличается от блок-схемы?

Блок-схема описывает алгоритм — последовательность действий. Диаграмма состояний описывает объект: в каких состояниях он бывает и по каким событиям переходит между ними.

Можно ли заменить диаграмму последовательности коммуникационной?

Они несут одну информацию в разной форме. Последовательности читается легче, поэтому в учебных работах берут её.

Читайте также

Сделаем работу по этой теме

Опишите задачу — ответим в течение 15 минут в личных сообщениях ВКонтакте, назовём срок и цену. Предоплаты за оценку нет.

  • Оценка заявки бесплатно
  • Правки по замечаниям преподавателя
  • Работы по всем техническим и IT-дисциплинам

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