- •220400 «Программное обеспечение вычислительных комплексов и автоматизированных систем»
- •Глава 1. Понятие и сущность моделирования. Место компьютерного моделирования в задачах изучения процессов и явлений
- •§ 1. Понятие модели. Функции моделей и их классификация
- •1.1. Понятие и функции моделей
- •1.2. Классификация моделей
- •§ 2. Структура моделей
- •2.1. Структура модели и ее основные составляющие
- •2.2. Анализ и синтез
- •§ 3. Виды моделирования. Понятие и сущность компьютерного моделирования
- •3.1. Виды моделирования
- •2.3. Требования к модели
- •3.2. Понятие и сущность компьютерного моделирования
- •3.3. Искусство моделирования. Действия, выполняемые в процессе моделирования
- •§ 4. Моделирование как искусство. Этапы процесса моделирования
- •4.1. Этапы процесса моделирования
- •4.2. Постановка задачи и определение типа модели
- •4.3. Формулирование модели
- •4.4. Проверка модели
- •4.5. Стратегическое и тактическое планирование
- •4.6. Экспериментирование и анализ чувствительности
- •4.7. Реализация замысла и документирование
- •Глава 2. Объектно-ориентированная технология как современная парадигма компьютерного моделирования. Основные сведения о языке uml
- •§ 5. Объектно-ориентированная технология как современная парадигма компьютерного моделирования
- •5.1. Обстоятельства и причины появления объектно-ориентированной технологии. Основные термины
- •В общем случае объекты обладают двумя качествами:
- •5.2. Принципы объектно-ориентированной технологии
- •§ 6. Назначение и цели унифицированного языка моделирования. Основные концепции uml
- •6.1. Назначение и цели uml
- •6.2. Основные концепции uml
- •§ 7. Статическое представление модели
- •7.1. Классификаторы
- •Типы классификаторов
- •7.2. Отношения
- •7.3. Ограничения
- •§ 8. Структурные представления модели
- •8.1. Представление вариантов использования
- •Виды отношений вариантов использования
- •8.2. Представления программной реализации и развертывания
- •§ 9. Представление в виде конечного автомата как один из видов динамического представления модели
- •9.1. Понятие конечного автомата. Определение события и состояния
- •9.2. Понятие и структура перехода. Типы переходов
- •§ 10. Представления деятельности и взаимодействия как виды динамического представления модели
- •10.1. Представление деятельности
- •10.2. Представление взаимодействия
- •§ 11. Представление управления моделью и дополнительные возможности языка uml
- •11.1. Представление управления моделью
- •11.2. Расширение возможностей языка uml
- •Глава 3. Понятие и виды имитационного моделирования. Инструментарий имитационного моделирования: назначение и краткий обзор
- •§ 12. Понятие и виды имитационного моделирования. Роль языков имитационного моделирования в решении задач компьютерного моделирования
- •12.1. Понятие и виды имитационного моделирования
- •12.2. Роль языков имитационного моделирования в решении задач компьютерного моделирования
- •§ 13. Классификация и краткая характеристика языков имитационного моделирования. Среда и функциональная структура языка моделирования gpss
- •13.1. Классификация языков имитационного моделирования
- •13.2. Принципы организации системы gpss
- •Глава 4. Общие понятия о графическом моделировании и геоинформационных системах
- •§ 14. Способы представления и принципы обработки графических данных на персональных эвм
- •14.1. Представление в компьютере графической информации. Растровая и векторная графика
- •14.2. Модели представления цвета в графических изображениях
- •14.3. Форматы графических файлов
- •14.4. Принципы обработки графических данных на персональных компьютерах
- •§ 15. Геоинформационные системы и особенности моделирования земной поверхности
- •15.1. Основные понятия и организация гис
- •15.2. Проблемы качества векторных цифровых карт для гис
- •§ 16. Классификация программного обеспечения гис и реализация гис-проектов
- •16.1. Классификация и краткая характеристика программного обеспечения гис
- •16.2. Порядок создания гис-проектов
- •Компьютерные модели в информационных технологиях на железнодорожном транспорте
- •127994, Москва, ул.Образцова, 15
9.2. Понятие и структура перехода. Типы переходов
Переход (transition) из некоторого состояния представляет собой реакцию объекта, находящегося в этом состоянии, на событие. В таблице № 7 приведены типы переходов и те действия, которые они вызывают.
Таблица № 7
Типы переходов и неявных действий
Тип перехода |
Описание |
Синтаксис |
Действие при входе (Entry action) |
Действие, которое происходит при входе в состояние. Используется, как правило, для того, чтобы произвести начальные установки для состояния. Уклониться от осуществления действия при входе невозможно, поэтому все действия, протекающие в данном состоянии, принимают начальные установки, вне зависимости от того, как был осуществлен вход в состояние*). |
entry/действие |
Действие при выходе (Exit action) |
Действие, которое происходит при выходе из состояния. Действие при выходе выполняется перед действием, прикрепленным к переходу, и перед действием при входе в новое состояние. Является возможностью провести очистку состояния*). |
exit/действие |
Внешний переход (External transition) |
Внешним называется переход, меняющий активное состояние объекта. Внешний переход может также привести к переходу в то же самое состояние или к действиям при входе в целевое состояние и/или при выходе из исходного. На диаграмме внешний переход изображают в виде стрелки, идущей от исходного состояния к целевому. Свойства перехода указываются в виде текста, расположенного у этой стрелки (рис. 19). |
Событие (атрибут:Тип) [выражение]/действие |
Внутренний переход (Internal transition) |
Реакция на событие, которое приводит в выполнению действия, но не изменению состояния объекта или выполнению действий при входе или выходе. Внутренние переходы удобны при моделировании действий прерывания, не требующих изменения состояния, например при подсчете количества каких-либо событий или выдаче на экран справочной информации. |
Событие (атрибут:Тип) [выражение]/действие |
Переход по завершению (Completion transition) |
Переходом по завершению называется такой переход, для которого не существует явного переключающего события и который может запускаться по завершении деятельности в данном состоянии. Для этого перехода определяется сторожевое условие, которое вычисляется только один раз — при завершении деятельности в этом состоянии. Не является внутренним переходом переход в себя (self-transition), так как он вызывает действия при входе и выходе (объект существует в некоем состоянии, а потом входит в него повторно). |
|
Примечание: *) Действия при входе и выходе можно назначать входящим и исходящим переходам, однако когда эти действия принадлежат всему состоянию, это дает возможность определять действия независимо от переходов, то есть инкапсулированно.
Переход определяется переключающим событием, сторожевым условием, действием и целевым состоянием.
Переключающее событие (trigger event) – событие, запускающее переход. Это событие может обладать параметрами, которые доступны действию, приписанному переходу. Каждый объект за один раз может обрабатывать только одно событие. Если объект в момент получения события не может обработать его сразу (по причине занятости), он сохраняет его. Переход запускается фактически только тогда, когда объект его обрабатывает, после чего событие «стирается» из памяти объекта (за исключением специального случая отложенных событий, которые сохраняются до тех пор, пока они не запустят переход или пока объект не выйдет из состояния, в котором события являются отложенными). Если два события происходят одновременно, объект все равно будет обрабатывать их по одному. Событие, которое не инициирует переход, просто игнорируется.
Рис. 19. Внешние переходы
Сторожевое условие (guard condition) представляет собой логическое выражение. Это выражение может использовать как параметры переключающего события, так и атрибуты объекта, для которого строится данный конечный автомат. Если логическое выражение истинно, то осуществляется переход объекта в другое состояние, в противном случае перехода не происходит. Вычисляется оно всего один раз — когда происходит переключающее событие. Если при этом условия не удовлетворяли логическому выражению, переход не произойдет, даже если впоследствии условия изменятся и выражение станет истинным.
Одно и то же событие может инициировать несколько переходов из одного начального состояния. При этом каждый из переходов, относящихся к одному и тому же событию, должен иметь свое собственное сторожевое условие. При возникновении события инициируется тот переход, чье сторожевое условие в этот момент истинно. Зачастую сторожевые условия охватывают все возможные варианты, поэтому при возникновении любого события обязательно начнется какой-либо переход. Если же ни одно логическое выражение не истинно (то есть если при проектировании не были учтены некоторые возможные события), тогда событие просто игнорируется. Если событие запускает одновременно несколько различных переходов, инициируется только один из них. Если для события существует два равноправных конфликтных перехода, то срабатывает только один из них. Выбор перехода при этом может произойти случайным образом или зависеть от конкретных деталей реализации.
Действие. При фактическом запуске перехода совершается выполнение приписанных к нему действий. Действие (action) — это атомарное и, как правило, быстрое вычисление, которое часто описывается выражением присваивания определенного значения или простого арифметического выражения. К действиям относятся отправка сигнала, вызов операции, установка возвращаемых значений, создание или уничтожение объекта, а также произвольные действия, относящиеся к управлению, которые определяются во внешнем языке.
Действие может представлять собой последовательность (список более простых действий). Действие (или последовательность действий) не может быть прервано другими одновременными действиями. Теоретически совершение действия занимает ничтожно малое время по сравнению с продолжительностью всего события, поэтому считается, что два (или более) события в течение одного действия произойти не могут. В реальности совершение действий занимает некое время, поэтому все входящие события должны быть организованы в очередь.
Виды действий и их краткое описание приведены в таблице № 8.
Таблица № 8
Виды действий
Вид действия |
Описание |
Синтаксис |
Присваивание (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. Состояние – ссылка на подавтомат
Переход в состояние, описываемое ссылкой на вложенный автомат, активизирует исходное состояние в целевом вложенном автомате. Однако иногда возникает необходимость перейти в другое состояние этого вложенного автомата. Чтобы перейти в другие вложенные состояния автомата, нужно поместить в состояние со ссылкой одну или несколько «заглушек». «Заглушка» служит для идентификации определенного состояния во вложенном автомате.
