ISSN 1812-3368. Вестник МГТУ им. Н.Э. Баумана. Сер. «Естественные науки». 2012
180
собой, наблюдать характеристики и других объектов и пользоваться
их методами, однако все это делается в некотором смысле «вруч-
ную». По сути, поведение коллектива программистов, приступающих
к созданию сложного проекта и вооруженных набором библиотек
полезных классов, можно уподобить человеку, имеющему несколько
компьютеров, каждый из которых оснащен большим набором полез-
ных прикладных программ, но из системных программ — только за-
грузчик, и поставили перед ним задачу сделать из этого распределен-
ную систему. Понятно, что современный программист возмутился бы
страшно: «Так не бывает! Где моя сетевая операционная система?
Где, наконец, ПО промежуточного уровня?» Однако при создании
сложной системы средствами ООП дело обстоит именно так: к слож-
ности содержательных вычислений предметной области добавляется
еще и сложность организации поведения объектов, а также их связей
и взаимодействий между собой.
Поведение компоненты сложной системы есть функциональный
аналог операционной системы в области системного ПО и функцио-
нальный аналог бытовой культуры в социальных системах, т. е. спо-
собность давать стандартные ответы на стандартные запросы внут-
ренней и окружающей среды. При имитационном моделировании
сложных систем очень важно уметь моделировать поведение компо-
нент. Как упоминалось ранее, именно из их поведения естественно
синтезировать поведение системы в целом.
В истории развития информатики известно несколько подходов к
объектному программированию, в силу которых они обладают пове-
дением. Эти подходы зародились в среде исследователей, занимав-
шихся проблемами искусственного интеллекта, и известны как ак-
торная модель [3] и агентное программирование [4, 5]. Несмотря на
то что авторы настоящей работы согласны с главным посылом этих
подходов — важностью моделирования поведения агентов систе-
мы — детали описания этого поведения [3—5], по их мнению, слиш-
ком окрашены спецификой проблематики искусственного интеллек-
та, т. е. недостаточно универсальны. Так, у Шохема [4, 5] поведе-
ние — это поведение ментальное, о состоянии которого рассуждают
в категориях «убеждения», «обязанности», «способности» и т. д. Ак-
торная модель Хьюитта [3] интересна своей ориентированностью на
параллельные вычисления, однако асинхронный обмен акторов сиг-
налами-сообщениями и порождение новых акторов представляются
нам избыточными конструкциями, затрудняющими реализацию по-
добных систем [6].
Проблема моделирования заключается в том, что, согласившись
на наличие поведения у компонент системы, нужно учиться описы-
вать и реализовывать это поведение. Такое поведение, с одной сторо-
ны, достаточно сложное, так как представляет собой поведение эле-