Простые переходы между состояниями

Простой переход из состояния 1 в состояние 2 показывает, что объект, находящийся в состоянии 1 перейдет в состояние 2 и выполнит определенные действия когда произойдет предопределенное для перехода событие и будут истинными специфицированные условия. Такая смена состояний называется срабатыванием перехода. Событие, помечающее переход, может иметь параметры, которые доступны внутри действий, сопоставленных переходу или тому состоянию, в который ведет переход. События, определяющие выполнение переходов, обрабатываются по одному в один момент времени. Если событие не приводит к выполнению ни одного перехода, то оно игнорируется. Переходы изображаются линией с указанием направления , и дополнительной текстовой информации, представленной с следующем виде:

имя - события ( параметры ) [ условие ] / выражение ^ посылка

Условие - это логическое выражение с участием параметров события, имен состояний автомата и атрибутов объекта или класса, которым назначен данный автомат. Выражение - это процедурное выражение, которое выполняется при выполнении перехода. Оно может включать в себя параметры события , методы поведения и атрибуты того объекта или класса, которым назначен данный автомат. Посылка описывает ту операцию или сигнал, которые могут быть посланы другим объектам. Она имеет следующий формат:

назначение . операция ( параметры )

Назначение - это имя объекта для которого выполняется операция, или посылается сообщение или сигнал. Операция - это имя вызываемого метода, посылаемого сигнала или сообщения. Примером текста, который может сопоставляться переходу является следующий:

нажата левая кнопка мыши ( позиция )

[ позиция внутри окна ]

/ выбор = выбрать ( позиция )

^ выбор . выделить.

Здесь “нажата левая кнопка мыши” - это имя события, “позиция“ - это параметр данного события, показывающий в какой позиции на экране произошло нажатие. “позиция внутри окна” - это условие которое должно быть выполнено для того, что бы переход мог выполниться, т.е. будут обрабатываться не все нажатия кнопки мыши, а только те которые произошли внутри заданного окна. Выражение “выбор = выбрать ( позиция )” представляет собой присвоение переменной “выбор” значения функции “выбрать” с параметром “позиция”. И, наконец “выбор . выделить” - это обращение к методу “выделить” объекта “выбор”.

Составные переходы между состояниями

Составные переходы предназначены для отражения операций распараллеливания и синхронизации. Составной переход может иметь несколько входных и несколько выходных состояний. Составной переход может выполниться только тогда, когда все его входные состояния активны. После выполнения составного перехода все его выходные состояния становятся активными, а все входные перестают быть активными. Таким образом автомат может одновременно находиться в нескольких состояниях. Составной переход изображается как прямоугольник, входные и выходные линии определяют входные и выходные состояния:

Простые переходы между состояниями - student2.ru

Рис. 7.18. Обозначение составного перехода.

На данном рисунке изображен один составной переход, имеющий два входных состояния ( A, B ) и два выходных состояния ( C, D ).

Вложенные автоматы

Если состоянию соответствует вложенный автомат, то после выполнения действий entry для этого состояния, начинает работать вложенный автомат, начиная со своего начального состояния. Когда достигается одно из конечных состояний вложенного автомата, то состояние считается законченным, выполняются действия по выходу ( exit ), и автомат готов к смене состояния под воздействием внешних воздействий.

Одному состоянию может соответствовать либо один вложенный автомат, либо несколько конкурирующих ( взаимно исключающих ) вложенных автоматов. Графически это обозначается следующим образом:

· один вложенный автомат изображается внутри прямоугольника для состояния,

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

Пример вложенного автомата приведен ниже:

Простые переходы между состояниями - student2.ru

Рис. 7.19. Пример изображения вложенного автомата

На данном рисунке состояние B является составным и содержит внутренний автомат, который состоит из начального, конечного состояний и состояний C и D.

Пример конкурирующих вложенных автоматов представлен на рисунке ниже:

Простые переходы между состояниями - student2.ru

Рис. 7.20. Пример изображения конкурирующих вложенных автоматов.

Здесь состояние “B” декомпозируется с помощью двух конкурирующих вложенных автоматов.

Пример диаграммы состояний представлен на рис. Здесь представлен конечный автомат, описывающий функционирование класса "Диаграммер" графического редактора диаграмм.

Простые переходы между состояниями - student2.ru Рис. 7.21. Диаграмма состояний для класса "Диаграммер"

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

Диаграммы действий ( activity diagrams ) показывают выполнение операций. Они являются разновидностью автомата. Предназначение данной диаграммы - показать поток управления, внутренний для операции, в противоположность показу реакции на внешние события ( как это делается в диаграмме состояний ).

Диаграмма действий состоит из следующих элементов:

Таблица 7.4.

Обозначение компонентов диаграммы действий.

Наименование Графическое обозначение Смысл
действие   Простые переходы между состояниями - student2.ru   Неделимая операция
условие   Простые переходы между состояниями - student2.ru   Выбор одного из вариантов в зависимости от условия
переход   Простые переходы между состояниями - student2.ru   передача управления от одного действия к другому, с возможностью распараллеливания
передача сигнала   Простые переходы между состояниями - student2.ru   Операция отправки сигнала при выполнении перехода
прием сигнала   Простые переходы между состояниями - student2.ru   ожидание прихода сигнала для выполнения перехода
Объект   Простые переходы между состояниями - student2.ru Объекты, используемые при выполнении действий

Действия

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

Условия

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

Переходы

Переходы имеют тот же смысл, что и в автоматной модели диаграммы состояний. Но здесь они не помечаются никаким событием и имеют условие только для специальных состояний - “условие”, т.е. они просто передают управление от одного действия к другому. Окончание входных действий непосредственно приводит к выполнению перехода. Возможность распараллеливания и синхронизации остается.

Полосы выполнения

Диаграмма действий может быть разделена на полосы ( swim lanes ), которые включают в себя определенный набор действий и переходов. Каждая полоса имеет собственное имя и тем самым позволяет группировать действия в единое целое. Ее можно сравнить с пакетом для классов. Графически каждая полоса представляет собой вертикальное разделение диаграммы действий с помощью сплошной линии. Каждое действие может находиться только в одной полосе, тогда как переходы могут пересекать полосы.

Ниже представлен пример, на котором используются практически все возможные элементы диаграммы действий. Здесь обсуждается процедура обслуживания клиента узла Internet, подающего заявку на обслуживания. Заявка может быть двух типов: заявка на регистрацию и заявка на предоставление некоторой услуги. Диаграмма содержит две полосы “клиент” и “отдел обслуживания”. После получения запроса на обслуживание клиент может подготовить платеж, а отдел обслуживания займется одновременно с этим выполнением заказа. В зависимости от типа запроса будет выполнено либо действие “создать услугу” либо действие “заполнить карточку регистрации”. Далее будет выполнена подготовка документов и после выполнения платежа, он будет учтен и обслуживание закончится.

Простые переходы между состояниями - student2.ru

Рис. 7.22. Пример диаграммы действий.

Наши рекомендации