таймера к работе. Однако присутствие таймера во внутренней структуре Субъекта совсем не обязательно! Достаточно наличия метода (имеющего определенную структуру) обработки события от таймера. А «оживляться» этот метод может как по событию от внутреннего таймера, так и внешним вызовом.

Блок формирования состояния может понадобиться тогда, когда логика выбора состояния будет достаточно сложна (либо требуется наличие временных функций – задержек). И здесь самым подходящим языком описания алгоритма формирования состояния может служить язык из стандарта IEC 61131-3, применяемый в некоторых контроллерах. Например, для удобства описания интерфейсов СОМ-объектов был даже создан свой язык – Interface Definition Language. Однако этот момент является только предположением, поэтому говорить о нем пока рано. А вот без создания нового краткого «языка общения» между различными Субъектами, возможно, не обойтись.

Действительно, Субъектам достаточно обмениваться сообщениями о состояниях, а не сериями команд управления, как принято при управлении Объектами.

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

Однако уже сейчас можно сформулировать несколько правил, которые могут использоваться при создании Субъекта.

в каждом Субъекте должен присутствовать как минимум один «счетчик жизни»;

в каждом Субъекте должны присутствовать роли запуска и завершения работы приложения;

в каждом Субъекте должна присутствовать «пустая роль» или «роль по умолчанию», которая выполняется в неопределенных состояниях либо в режиме ожидания;

алгоритм выполнения той или иной последовательности действий (роли) не должен быть вшит или «размазан» по программному коду, он должен иметь вид отдельной структурной секции программы;

вызов отдельных методов Субъекта извне допускается, но нежелателен;

в каждом Субъекте должен быть предусмотрен интерфейс обмена информацией с другими Субъектами системы;

все роли Субъекта должны быть подробно документированы в секции описания ролей.

По мере развития глобальных информационных систем и систем компьютерного моделирования реальной действительности субъектное программирование становится все более востребованным. Затраты на расширение функциональности таких систем растут в геометрической прогрессии, поэтому удешевление их разработки весьма актуально.

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

Любопытно, что упоминаемая в статье switch-технология предложена российским ученым, представителем Гавриловской школы[ Школа по теории дискретных устройств была организована членом-корреспондентом АН СССР Михаилом Александровичем Гавриловым в конце 1960-х годов] А. А. Шалыто. Она основана на применении в программировании идей теории систем управления. Автор первоначально предложил ее для алгоритмизации и программирования систем логического управления, в которых ввод входных воздействий выполняется по опросу (как, например, в программируемых логических контроллерах и других подобных задачах).

В этой технологии базовым является понятие «состояние». Добавляя к нему понятие «входное воздействие», мы получаем «автомат без выхода». А дополнив технологию «выходным воздействием», мы получаем: автомат = состояния + входные воздействия +выходные воздействия. Соответствующий подход был назван «автоматным программированием».

В дальнейшем Шалыто и Н. И. Туккель развили этот подход для программирования более широкого класса задач. Авторы приводят пример применения switch-технологии при разработке системы управления дизель-генератором, реализуемой на промышленном компьютере с операционной системой QNX, в которой управляющая программа выполняется как один процесс, а программа, моделирующая объект, – как другой процесс. При этом был создан вариант switch-технологии для разработки программного обеспечения более широкого класса систем управления – «реактивных» (reactive), реагирующих на события. Такие системы обычно реализуются на промышленных компьютерах, работающих под управлением ОС реального времени. Рассмотренный подход является процедурным, а соответствующий стиль программирования был назван «программирование с явным выделением состояний»; существует и объектно-ориентированное программирование с явным выделением состояний.

Еще одна область применения автоматного программирования – классические алгоритмы, и в частности, построение визуализаторов алгоритмов.

У автоматных методов большое будущее, и хотя это научное направление все еще находится в стадии становления, switch-технология имеет все шансы занять достойное место в программировании.

Подробнее на эту тему можно прочитать в книге Шалыто А.А. Switch-технология. Алгоритмизация и программирование задач логического управления. – СПб.: Наука, 1998. Или на сайтеis.ifmo.ru.

ИГРЫ: Ролевые игры: Жизнь офлайн

Автор: Эмма Михейкина [email protected]

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

Объяснить человеку, который никогда не играл в ролевые игры, что это такое, – весьма непросто. Рассказать об этом явлении в одной статье и нигде не погрешить против истины – практически невозможно. Всегда найдутся люди, которые скажут, что «все было совсем не так, я знаю, я там был!»

Следует понимать, что все сказанное в этой статье – только одна из версий, которых существует великое множество. Ролевые игры как явление с трудом поддаются определению, описанию и классификации. Это одна из тех вещей, которые необходимо хоть раз попробовать самому. Потому что всякий опыт в данном случае уникален и не похож на предыдущие, поскольку каждый участник процесса приходит в игры за чем-то своим.

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

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

Мы поступим точно так же. Для дальнейшего понимания текста нам придется разграничить два понятия: ролевые игры и живые ролевые игры.

Ролевые игры – живые и не очень

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

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

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

Отметить Добавить цитату