Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Компьютерное моделирование.Лекция 9.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
507.9 Кб
Скачать

Виды действий

Вид действия

Описание

Синтаксис

Присваивание (Assignment)

Устанавливает значение переменной

переменная:=выражение

Вызов (Call)

Вызывает операцию в целевом объекте; ожидает окончание выполнения операции; может возвращать значение

Имя_операции (аргумент, …, аргумент)

Создание (Create)

Создает новый объект

new Имя_объекта (аргумент, …, аргумент)

Уничтожение (Destroy)

Уничтожает объект

Имя_объекта.destroy()

Возврат (Return)

Определяет возвращаемые значения для вызывающего объекта

Return значение

Отправка (Send)

Создаст экземпляр сигнала и посылает его целевому объекту или нескольким объектам

Имя_сигнала (аргумент, …, аргумент)

Завершение (Terminate)

Самоуничтожение объекта

terminate

Неинтерпретируемое (Uninterpreted)

Действие, специфическое для языка, например, условный оператор или итерация

[специфика языка]

Целевое состояние. После завершения действия становится активным целевое состояние перехода. В момент входа в целевое состояние выполняется действие при входе, которое относится к этому состоянию. В момент выхода выполняется действие при выходе.

Различают состояния простые и композитные. У простого состояния нет внутренней структуры, только набор переходов и, возможно, действия при входе и выходе. Композитным (composite state) называется состояние, в котором имеется несколько последовательных или параллельных подсостояний (таблица № 9).

Таблица № 9

Виды состояний

Вид состояния

Описание

Нотация

Простое состояние (Simple state)

Состояние без внутренней структуры

Параллельное композитное состояние (Concurrent composite state)

Состояние, которое разделяется на два (или более) подсостояния, каждое из которых активно все время, когда активно композитное состояние

Последовательное композитное состояние (Sequential composite state)

Состояние, которое содержит одно или несколько подсостояннй, причем только одно из этих состояний активно тогда, когда активно композитное состояние

Исходное состояние (Initial state)

Псевдосостояние*), которое указывает на начальное состояние при вызове внешнего состояния (enclosing state)

Конечное состояние (Final state)

Особое состояние, указывающее на то, что внешнее состояние (enclosing state) завершило свою деятельность

Переходное состояние (Junction state)

Псевдосостояние*), соединяющее сегменты перехода в один

Историческое состояние (History state)

Псевдосостояние*), которое восстанавливает предыдущее активное состояние в композитном состоянии

Состояние, описываемое ссылкой на вложенный автомат (Submashine reference state)

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

«Заглушка» (Stub state)

Псевдосостояние*) в состоянии, описываемом ссылкой на вложенный автомат. Идентифицирует состояние в автомате, на который производится ссылка

Примечание: псевдосостояние – это фиктивное состояние, которое помогает структурировать конечный автомат. К псевдосостояниям относятся исходное состояние, переходное состояние, состояние «заглушки» и историческое состояние. Их назначение – соединение фрагментов перехода. Переход к одному из псевдосостояний подразумевает, что дальнейший переход к следующему состоянию будет сделан автоматически, без помощи события.

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

У композитного состояния может также быть исходное состояние. Переход на границу композитного состояния является неявным переходом в исходное состояние. Новый объект начинает существование в наиболее внешнем исходном состоянии. Аналогично, у композитного состояния есть и конечное состояние. Переход в конечное состояние приводит к запуску перехода по завершению (переход без переключающего события) из композитного состояния. Когда объект приходит в самое конечное из всех своих внешних состояний, он разрушается. Исходные и конечные состояния, а также состояния при входе и выходе позволяют определять состояние объекта независимо от переходов.

На рис. 20 изображено последовательное деление состояния на составные части, включая исходное. Изображенная система представляет собой управление автоматом по приобретению товаров. Оплата стоимости приобретенных товаров производится через банковскую карточку.

Рис. 20. Конечный автомат

Рис. 21. Конечный автомат с параллельным композитным состоянием

Деление композитного состояния на параллельные независимые под-состояния описывает процесс независимых параллельных вычислений. При входе в параллельное суперсостояние количество нитей управления увеличивается, а при выходе уменьшается. Часто параллельность реализуется в каждом из подсостояний с помощью отдельного объекта. Параллельные подсостояния могут также представлять логический параллелизм внутри одного объекта. На рис. 21 изображено разбиение композитного состояния «Учебный_процесс» на параллельные.

Часто фрагмент одного конечного автомата можно использовать в другом. Автомату можно дать имя и ссылаться на него из других автоматов. В этом случае целевой автомат называется вложенным автоматом, а состояние, которое на него ссылается, — ссылкой на вложенный автомат. Это подразумевает (теоретически) подстановку копии того автомата, на который ссылаются (описывающую его функцию или процедуру), в место, откуда делается ссылка. Вместо вложенного автомата состояние может содержать в себе деятельности. Деятельности (activities) — это продолжительные вычисления или явления, для совершения которых требуется время и которые могут быть прерваны другими событиями. На рис. 22 изображена ссылка на конечный автомат.

Рис. 22. Состояние – ссылка на подавтомат

Переход в состояние, описываемое ссылкой на вложенный автомат, активизирует исходное состояние в целевом вложенном автомате. Однако иногда возникает необходимость перейти в другое состояние этого вложенного автомата. Чтобы перейти в другие вложенные состояния автомата, нужно поместить в состояние со ссылкой одну или несколько «заглушек». «Заглушка» служит для идентификации определенного состояния во вложенном автомате.