- •Введение
- •Управление моделью
- •Сноски (Note)
- •Общие механизмы расширения
- •Ограничение (constraint)
- •Комментарии (comment)
- •Свойства элементов
- •Стереотипы
- •Диаграммы статических структур
- •Диаграмма классов
- •Диаграмма объектов
- •Классификатор (Classifier)
- •Семантика
- •Нотация
- •Варианты представления
- •Рекомендации по оформлению
- •Секция названия Нотация
- •Секция список Нотация
- •Варианты представления
- •Атрибут
- •Семантика
- •Нотация
- •Варианты представления
- •Нотация
- •Интерфейсы Семантика
- •Нотация
- •Параметризованный класс (шаблон) Семантика
- •Нотация
- •Варианты представления
- •Связанный элемент Семантика
- •Нотация
- •Импортирование пакета Семантика
- •Нотация
- •Варианты представления
- •Варианты представления
- •Рекомендации по оформлению
- •Варианты
- •Варианты представления
- •Рекомендации по оформлению
- •Семантика
- •Нотация
- •Нотация
- •Рекомендации по проектированию
- •Варианты представления
- •Подробности
- •Нотация
- •Диаграммы последовательности Виды диаграмм взаимодействия
- •Диаграмма последовательности Семантика
- •Нотация
- •Варианты представления
- •Варианты представления
- •Время переходов Семантика
- •Нотация
- •Диаграммы сотрудничества
- •Сотрудничество Семантика
- •Нотация
- •Диаграмма сотрудничества Семантика
- •Нотация
- •Структура шаблона Семантика
- •Нотация
- •Взаимодействия
- •Семантика
- •Нотация
- •Активный объект
- •Варианты представления
- •Нотация
- •Составные состояния Семантика
- •Нотация
- •События Семантика
- •Нотация
- •Простые переходы Семантика
- •Нотация
- •Переходы во вложенные состояния Семантика
- •Нотация
- •Варианты представления
- •Внутренние переходы Семантика
- •Состояние действия Семантика
- •Нотация
- •Пиктограммы управления
- •Стереотипы
- •Диаграммы реализации
- •Компонентная диаграмма Семантика
- •Нотация
- •Диаграммы развертывания Семантика
- •Нотация
- •Узлы Семантика
- •Нотация
- •Компоненты Семантика
- •Нотация
Нотация
События сигнала или вызова могут быть определены, используя следующий формат:
event-name '(' comma-separated-parameter-list ')' название-события '(' разделенный-запятыми-список-параметров ')'
Параметр имеет формат:
parameter-name ':' type-expression название-параметра ':' выражение-типа
Сигнал может объявляться на диаграмме классов с помощью ключевого слова на символе класса. Параметры определяются как атрибуты. Сигнал может быть определен как подкласс другого сигнала. Это означает, что возникновение подсобытия инициирует переходы, которые зависят от события или любого из его предков.
Событие времени работы может задаваться ключевым словом after с последующим выражением, которое вычисляет (в моделируемом времени) величину времени, например "after (5 секунд)" или "after (10 секунд после выхода из состояния А)". Если стартовая точка не указана, то берется момент наступления текущего состояния. Другие события времени могут задаваться как условия, например when (дата = 1 янв 2000).
Становящееся истинным условие показывается ключевым словом when с последующим логическим выражением. Оно может рассматриваться как непрерывная проверка на выполнение условия. Хотя практически проверка должна выполняться только при изменении значений (и есть способы определить, когда условие необходимо проверить). Условие отображается в Событие Изменения модели.
Сигналы могут объявляться на диаграмме классов ключевым словом в символе прямоугольника. Это определяет названия сигналов, которые могут использоваться для инициирования переходов. Их параметры показываются в секции атрибутов. Они не имеют операций. Они могут показываться в обобщающей иерархии. Заметим, что они не являются настоящими классами и не могут вступать в отношения с настоящими классами.
Пример
Рисунок 43. Объявление сигнала
Простые переходы Семантика
Простой переход является отношением между двумя состояниями, показывающим, что объект будет переходить из первого состояния во второе и выполнять некоторые заданные действия, когда возникнет заданное событие, если выполняются заданные условия. О таком изменении состояния перехода говорят "возбуждается". Условием инициирования для перехода является наличие помечающего переход события. Событие может иметь параметры, которые доступны определенным для перехода действиям или действиям, начинающимся в последующем состоянии. События обрабатываются по одному. Если событие не удовлетворяет условиям некоторого перехода, то оно просто игнорируется. Если оно удовлетворяет условиям более чем одного перехода в одной последовательной области (т.е. не в различных параллельных областях), то только один будет возбуждаться; выбор может быть недетерминированным, если не задан приоритет возбуждения.
Нотация
Переход изображается как сплошная стрелка из одного состояния (исходного состояния) к другому состоянию (целевому состоянию) помеченная строкой перехода. Строка имеет следующий формат:
event-signature '[' guard-condition ']' '/' action-expression '^' send-clause сигнатура-события '[' условие-защиты ']' '/' выражение-действия '^' операция-отправки
Сигнатура-события описывает с его параметрами:
event-name '(' parameter ',' ... ')' название-события '(' параметр ',' ... ')'
Условие-защиты является логическим выражением, описанным в терминах параметров условия инициирования события, а так же атрибутов и связей объекта, которому принадлежит конечный автомат. Условие защиты также может включать проверки параллельных состояний текущего автомата (или явно назначенные состояния некоего достижимого объекта): например, "in State1" или "not in State2". Названия состояний могут быть полностью представлены, содержащими их, вложенными состояниями, создающими путь названий в форме "State1::State2::State3"; это может применяться в случае, когда в различных областях составных состояний полного автомата встречаются одинаковые названия состояний.
Выражение-действия является процедурным выражением, которое выполняется, если и когда возбуждается переход. Оно может быть описано в терминах операций, атрибутов и связей владеющего объекта и параметров условий инициирования события. Операция-действия должна быть атомарной операцией, то есть, она не может прерываться; Она должна быть выполнена до того, как будет рассмотрено любое другое действие. Переход может содержать более чем одну операцию действия (с разделителем).
Операция-отправки является специальным случаем действия, с форматом
destination-expression '.' destination-message-name '(' argument '.' ... ')' выражение-назначения '.' название-сообщения-назначения '(' параметр '.' ... ')'
Переход может содержать более одной операции отправки (с разделителем). Относительный порядок операции действия и операции отправки существенен и устанавливает порядок их выполнения.
Выражение-назначения является выражением, которое определяет объект или множество объектов.
Название-сообщения-назначения является названием сообщения (операции или сигнала) осмысленным для объекта(ов) назначения.
Выражение-назначения и параметры могут быть описаны в терминах параметров условий инициирования события, а так же атрибутов и связей владеющего объекта.
Ветви. Простой переход может быть расширен таким образом, чтобы включать дерево решающих символов. Это является эквивалентом множества отдельных переходов, по одному для каждого пути через дерево, чьи условия защиты есть логическое "И" всех условий по пути.
Время переходов. В переход могут быть помещены названия определяющие время их возбуждения.
Пример
right-mouse-down (location) [location in window] / object := pick-object (location) ^ object.highlight ()
Событие может иметь любой из типов; выбор типа зависит от синтаксиса названия (например, для временных событий), но События Сигналы и События Вызовы синтаксически не различимы и должны различаться по их объявлению в другом месте.
Составные переходы
Составные переходы могут иметь многочисленные исходные и целевые состояния. Он представляет синхронизацию и/или разбиение управления на параллельные нити без параллельных подсостояний.
Семантика
Составной переход допустим, когда все исходные состояния заняты. После возбуждения составного перехода занимаются все его состояния назначения.
Нотация
Составной переход изображается как короткая толстая полоса (полоса синхронизации, которая представляет синхронизацию, ветвление, или оба вместе). Полоса может иметь одну или более сплошных стрелок из состояний к полосе (эти состояния исходные); полоса может иметь одну или более сплошных стрелок из полосы к состояниям (это состояния назначения). Строка перехода может показываться рядом с полосой. Отдельные стрелки не имеют собственных строк перехода.
Пример
Рисунок 44. Составной переход
