Конспект «Диаграммы автомата, деятельности и взаимодействия»
Диаграмма автомата
= Диаграммы состояний в 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)
Простой переход
Событие [Сторожевое условие] / Действие
Диаграмма деятельности
Вторичны по отношению к диаграммам состояний
+ Дополнительные средства
Область применения — широка
Сущность: состояние деятельности
Отношение: переход по завершении
Деятельность — описание поведения в форме графа деятельности.
Общее понятие — активность
Диаграммы деятельности UML 1
Состояние действия — это состояние, внутренняя активность которого является действием.
Состояние деятельности — это состояние, внутренняя активность которого является деятельностью.
Объект в состоянии — является аргументом и/или результатом работы некоторого действия или деятельности.
Граф деятельности в 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 объекта участвуют во взаимодействии. Здесь можно указать реальный масштаб времени, в котором происходит взаимодействия.