РЕФЛЕКСИВНАЯ АДАПТАЦИЯ В ПРОГРАММНЫХ СИСТЕМАХ

Аннотация: Предложена классификация основных механизмов адаптации в программных системах. Подробно описан механизм рефлексивной адаптации, его особенности, преимущества и способы возможной реализации.

Ключевые слова: адаптивные программные системы, системная инженерия.

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

Проведенный анализ программных систем различных предметных областей и типов позволил выделить 4 основных механизма адаптации: 1. Адаптация предметной области. Заключается в неавтоматизированной модификации разработчиком моделей предметной области системы (например, моделей бизнес-процессов в ERP-системах ). 2. Runtime-адаптация. Представляет собой автоматическую реструктуризацию системы в процессе выполнения на основе информации, получаемой в текущем сеансе работы с пользователем (например, изменение поведения виртуальным тренажером в зависимости от уровня квалификации обучающегося). 3. Рефлексивная адаптация. Основная идея данного типа адаптации заключается в анализе поведенческой продукции системы на определенном промежутке времени. К поведенческой продукции относятся, например, лог-файлы с протоколами взаимодействий с программой различных пользователей. 4. Адаптация на основе наблюдения за информационной средой. Данный механизм адаптации использует различные методов сбора и анализа большого количества данных, относящихся к предметной области программы, и на основе проанализированной информации осуществляет реструктуризацию системы.

Как можно заметить, рефлексивная адаптация является эффективным механизмом самооптимизации программной системы. Способность системы к самонаблюдению и последующему формированию решений о реструктуризации - свойство, наличие которого позволяет максимально исключить участие разработчиков в сопровождении программы и увеличить время ее непрерывной эксплуатации. Формально механизм рефлексивной адаптации определяется следующим соотношением: где AS - модифицированная структура системы; A- функция анализа поведенческой продукции системы и модификации ее первоначальной структуры; L- функция вычисления поведенческой продукции системы; S - исходная структура системы); V- совокупность внешних воздействий на адаптируемые объекты.

Рефлексивная адаптация может затрагивать не систему в целом, а только отдельные ее компоненты.  Например, для совокупности интерфейсов системы рефлексивная адаптация будет описываться следующим выражением: где AI - адаптированная структура системы на уровне интерфейсов; IL - функция сбора информации о функционировании интерфейсов на некотором временном промежутке.

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