Разработка MDA-приложения с использованием машин состояний


Цель работы– научиться использовать машины состояний при создании MDA-приложений.

Введение

Автоматы

Работа объектов программы описывается с помощью автоматов (или машин состояний). Существует хорошо развитая теория автоматов, в которой изучают­ся вопросы их построения и анализа работы.

Автомат — это элемент системы, который характеризуется двумя базо­выми понятиями: состояние и переход.

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

Схожесть автоматной модели с программированием в том, что переменные (ячейки памяти) в каждый момент работы процессора всегда хранят конкретные значения из допустимых диапазонов значений. Эти значения фактически являют­ся состояниями переменных.

Разрешенные над значениями переменных вычислительные операции при­водят к переходу этих переменных в новые состояния (в новые значения). Этот алгоритмический принцип может быть распространен на большое число управ­ленческих задач. В общем случае автоматный подход позволяет описать любую, сколь угодно сложную последовательность операций.

Познакомимся с базовыми правилами работы автоматов в языке UML.

– Автомат в определенный момент времени может находиться только в одном состоянии. Это правило соответствует принципу императивного програм­мирования, согласно которому любая переменная в каждый момент време­ни (такт процессора, шаг работы программы) хранит только одно из множе­ства допустимых значений.

– Число состояний автомата конечно.

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

– В рамках диаграммы у каждого состояния должен быть предшественник (за исключением начального состояния). Это правило запрещает размещение на диаграмме состояний, никак не связанных друг с другом.

– В определенном состоянии автомат может находиться сколь угодно долго. Переходы между состояниями считаются мгновенными.

– На диаграмме состояний не регистрируется путь (история состояний), при­ведший автомат в текущее состояние (в отличие от диаграмм последова­тельности и кооперации). Это правило показывает, что по текущему значе­нию переменной нельзя определить те значения (состояния), в которых она находилась ранее.

Состояния

Конкретное состояние (в общем случае – статический срез системы) формируется инструментом State (Состояние). На диаграмме оно изображается в виде прямоугольника с закругленными углами. Состояние имеет имя, начинающееся с заглавной буквы. Под ним могут записываться условие и действия. Условия про­веряются, а действия выполняются, когда автомат находится в соответствующем состоянии.

Отметим принятые правила оформления элементов диаграммы состояний. Элемент State представляет не действие, а описание статического состо­яния, в котором автомат может находиться неограниченно долго. Автомат может переходить из текущего состояния в другие состояния при выполнении опреде­ленных действий пользователя или условий, которые должны быть выполнены. Действия и условия отображаются только на линиях переходов между состояни­ями.

Подавтоматы

Внутри каждого состояния разрешается формировать собственный автомат (под­автомат) – мини-диаграмму состояний. Благодаря этому возможно проектиро­вать систему постепенно, раскрывая отдельные ее элементы по мере необходимо­сти.

Подавтомат – это автомат, вложенный в другой автомат и описываю­щий поведение конкретного состояния.



Дата добавления: 2021-12-14; просмотров: 282;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.007 сек.