Диаграмма автомата

= Диаграммы состояний в UML 1

  • Сущности — состояния
    • простые (simple), составные (composite)
    • специальные (pseudo), ссылочные (submachine)
  • Отношения — переходы: простые / составные
    • исходное состояние (source), событие перехода (trigger event), сторожевое условие (guard), действие на переходе (effect), целевое состояние (target)

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

Простое состояние
  • Имя (name)
  • Действие при входе (entry action): entry
  • Действие при выходе (exit action): exit
  • Множество внутренних переходов (internal transitions)
  • Внутренняя деятельность (do activity): do
  • Множество отложенных событий (defer events): defer

Пример: простое состояние сотрудника. Обычный переход (1), внутренний переход (2). Различие состоит в том, что при выполнении внутреннего перехода мы не покидаем состояние, а значит не выполняем действие при выходе и не выполняем действие при входе.

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

События
Переход может быть нагружен: событием перехода, сторожевым условием и действиями на переходе.
События в UML:

  • событие вызова (call event)
  • событие сигнала (signal event)
  • событие таймера (time event)
  • событие изменения (change event)

Простой переход

Событие [Сторожевое условие] / Действие

Дерево сегментированных переходов (i)

Переходы бывают не только простыми, но и сегментированными. Сегментированный переход графически состоит из нескольких стрелок (сегментов), которые соединены переходными состояниями (1).

В сегментированном переходе вместо переходного состояния можно использовать символ решения (1). Такая нотация похожа на привычную нотацию блок-схем.

Множество простых переходов

Данная модель полностью эквивалентна двум предыдущим моделям и не содержит сегментированных переходов.

Составные состояния
Составное состояние — это состояние, в которое вложена машина состояний.
  • Вложена одна машина — последовательное состояние
  • Несколько — параллельное состояние
  • Глубина вложенности неограниченна

Пример
Составные состояния: светофор. Он находится в одном из двух состояний: либо включен (одно из двух состояний: либо желтый мигающий (простое состояние), либо работает по-настоящему и регулирует движение), либо выключен (простое состояние).

Светофор без составных состояний

 

Пример
Переход из составного состояния. Здесь имеется два перехода по событию е (1) и (2).

 

Диаграмма деятельности
  • Вторичны по отношению к диаграммам состояний
  • + Дополнительные средства
  • Область применения — широка
  • Сущность: состояние деятельности
  • Отношение: переход по завершении

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

Действие vs деятельность

Общее понятие — активность

Диаграммы деятельности UML 1
Состояние действия — это состояние, внутренняя активность которого является действием.
Состояние деятельности — это состояние, внутренняя активность которого является деятельностью.
Объект в состоянии — является аргументом и/или результатом работы некоторого действия или деятельности.

Узлы управления UML 1 (i)

Узлы управления UML 1 (ii)

Пример
Реализация варианта использования увольнения по собственному желанию

Граф деятельности в UML 2

  • Семантика определена через сети Петри
  • Маркер (token) — абстрактные конструкции:
    • Маркер управления (control flow token)
    • Маркер данных (data flow token)
  • Узлы:
    • Узлы действий, узлы объектов и узлы управления
    • Области — составные узлы

Узлы управления UML 2

Те же, что и в UML 1 +

Пример
Реализация варианта использования увольнения по собственному желанию (UML 2). Узел данных (1), который является параметром на вход этой операции. Начальный узел (7), который вырабатывает маркер управления. Первая деятельность имеет все условия для того чтобы начаться. В неё поступает узел управления из начального узла и маркер данных (2). Эта деятельность выполняется. В результате получается три маркера данных (6). Маркер данных pos попадает в специальный узел (3). Маркер данных fnd поступает на узел управления ветвления, где анализируется его значение. Линейка синхронизации (9). Параллельно запускается две деятельности (10) и (11). Независимо от того, в каком порядке выполняются действия после того, как они выполнятся, они вырабатывают маркер управления, который поглощается узлом завершения потока (12).

Дорожки и разбиения
Дорожка (swim lane) — в UML 1 это графический комментарий, позволяющее классифицировать по некоторому признаку сущности.
Разбиение (partition) — в UML 2 это разбиение в математическом смысле (то есть дизъюнктное покрытие) множества сущностей на диаграмме.
Пример
Процесс найма на работу
Та же диаграмма, но деятельности на это диаграмме классифицированы на две категории:  на те, которые выполняются при непосредственном контакте с принимаемым сотрудником, и на те, которые выполняются без непосредственного контакта с принимаемым сотрудником. (дорожки)
Несколько классификаций (ортогональные дорожки)
Траектория объекта (i). На диаграммах деятельности можно указать не только последовательность выполнения деятельностей, но и аргументы и результаты этих деятельностей.

Траектория объекта(ii)

Применение контактов. Эта диаграмма эквивалентна предыдущим.

 

Диаграммы взаимодействия

Диаграммы взаимодействия (i)

  • Моделируют поведение описывая взаимодействия объектов (экземпляров классов, действующих лиц, вариантов использования, подсистем, компонентов, узлов) на уровне ролей, а не на уровне конкретных экземпляров.
  • Моделируют поведение «по индукции», от частного к общему
  • Взаимодействие происходит путем обмена сообщениями
  • «Ближе» к реальному выполнению программы

Диаграммы взаимодействия (ii)

  • Графические формы: диаграммы последовательности и диаграммы коммуникации — семантически эквиваленты
  • Сущности: экземпляры классификаторов
  • Отношения: ассоциации, по которым передаются сообщения
  • Обзорные диаграммы взаимодействия — смесь диаграмм деятельности и последовательности
  • Диаграммы синхронизации — смена состояний объекта во времени

Сообщения
предшественники / повторность номер :
атрибуты = ИМЯ ( аргументы ) : переменные
Сообщение (message) — передача управления и данных от отправителя к получателю

  • Отправка сообщения — действие
  • Получение сообщения — событие

Передача управления

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

  • Моделируют поведение в форме описания протокола
    • сеанса обмена сообщениями
    • между взаимодействующими экземплярами
    классификаторов
    • во время выполнения сценария
  • На диаграмме: только те экземпляры, связи и сообщения, которые участвуют во взаимодействии

Связь
Связь (link) — это экземпляр отношения = набор ссылок на экземпляры классификаторов, связанных этим отношением

  • Постоянные связи — экземпляры ассоциаций
  • Временные связи могут ими не быть…

Линия жизни

Линия жизни (lifeline): по оси времени

  • Представляет объект во взаимодействии:

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

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

Задержанная доставка сообщения

Активации и возвраты

Активация (1), двойная активация (2), возврат управления (3)

Составной шаг взаимодействия

Составные вложенные шаги взаимодействия

Циклический шаг (1), параллельный шаг (3)

Диаграммы коммуникации

  • Сущность: объект
    • конкретный индивидуальный объект → конкретное взаимодействие
    • слот во фрейме взаимодействия → множество взаимодействий = роль (классификатора)
  • Отношения: связи
    • связывает роли классификаторов → сама является слотом = роль ассоциации

Диаграммы синхронизации

Диаграммы синхронизации (timing diagram) — описание желаемого поведения системы объектов с изменениями их состояний.

Состояния:

  • дискретны
  • непрерывны

Диаграмма синхронизации для нескольких объектов

3 объекта участвуют во взаимодействии. Здесь можно указать реальный масштаб времени, в котором происходит взаимодействия.


Юткина Дарья

Меня зовут Даша. Мне 18 лет. Я студентка первого курса ЮУрГУ. Учусь по специальности "Бизнес-информатика". Не особо в этом не разбираюсь, но думаю, что всё впереди.

1 комментарий

Свежинцев Владислав · 10.05.2021 в 23:10

Это действительно круто! Как считаешь?

Добавить комментарий

Avatar placeholder

Ваш адрес email не будет опубликован. Обязательные поля помечены *