Метод рефлексивной самоадаптации программных систем

УДК 004.4

Б01 10.21685/2072-3059-2018-2-7

А. С. Бождай, Ю. И. Евсеева

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

Аннотация.

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

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

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

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

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

1 Исследование выполнено при финансовой поддержке РФФИ в рамках научного проекта № 18-07-00408.

© 2018 Бождай А. С., Евсеева Ю. И. Данная статья доступна по условиям всемирной лицензии Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), которая дает разрешение на неограниченное использование, копирование на любые носители при условии указания авторства, источника и ссылки на лицензию Creative Commons, а также изменений, если таковые имеют место.

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

A. S. Bozhday, Yu. I. Evseeva

REFLEX SELF-ADAPTATION METHOD OF SOFTWARE SYSTEMS

Abstract.

Background. The increasing dynamics of subject areas and the complexity of the corresponding application software generate the actual problem of creating universal methods for self-adaptation of software systems without recompiling the source code. The life cycle of such programs will be much longer and more productive, and their support will require substantially less time and material costs. Moreover, self-adaptive software systems are able to solve a qualitatively different task - to reveal hidden knowledge and factors about their own subject area, which at the design stage of the application may not be known even by experts. The aim of the work is to create a new universal method for self-adaptation of software systems that can take into account the experience accumulated by the system during the operational period and, on the basis of this experience, to create new feedbacks.

Materials and methods. To implement the proposed method, the technologies of data mining and engineering of software product lines were used, as well as the mathematical apparatus of graph theory.

Results. The main theoretical results include: the concept of reflexive self-adaptation of software systems, which is based on the idea of the possibility of an analogy between the functioning of software and the activities of the human mind; universal architectural principles of building adaptive software; mathematical model of reflexion and a universal method of reflexive self-adaptation of software systems, based on the theory of graphs, technologies of programming lines of software and data mining and allowing to implement the main provisions of the proposed concept. The main practical result is the developed adaptive software system in the field of education, capable of independently identifying the dependencies between the results of the student's psychological testing and the training algorithms suitable to him.

Conclusions. The developed method of self-adaptation is based on the use of data mining technology, is universal and can be used to identify the system of new knowledge about its own domain in the process of operation. The practical application of the method in the sphere of education is shown: a training system has been created capable of independently identifying the dependencies between the results of the student's psychological testing and the learning algorithms suitable for him.

Key words: software self-adaptation, software engineering, program cybernetics, software systems, data mining, engineering of rulers of software product lines, variability models.

Введение

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

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

Большинство попыток разработать универсальный аппарат для реализации адаптивного поведения в программных системах нельзя считать удачными, поскольку они предпринимались в основном специалистами-практиками для создания частных архитектурных решений, а не фундаментальных принципов, пригодных для построения широкого класса самоадаптивного ПО. К изданиям, посвященным разработке адаптивной архитектуры, относится прежде всего ряд публикаций о создании адаптивных компьютерных игр и виртуальных тренажеров [1-5]. Малочисленные работы, посвященные формализации процессов адаптации в программных системах, к сожалению, в настоящий момент не предлагают универсальных подходов. Так, широко известная концепция автономных вычислений (autonomic computing), подробно изложенная в работе [6], применима в основном для задач конфигурирования в режиме реального времени крупных программно-аппаратных комплексов. Ряд других публикаций, например работы P. Wang, K. Cai и Q. Yang, посвященные использованию нечеткой логики и конечных автоматов при проектировании адаптивных программ [7-9], или методы, основанные на агентных технологиях [10], также не являются достаточно гибкими и применимы далеко не во всех предметных областях.

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

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

1. Концепция рефлексии и математическая модель рефлексивной программной системы

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

• Инвариантность к предметной области, типу и назначению программной системы.

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

ным: от простейшей утилиты до программного комплекса на основе нескольких систем. Также необходимо учесть, что адаптироваться может как система в целом, так и отдельные ее компоненты, при этом должны использоваться одни и те же методы адаптации.

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

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

Разработка нового метода в нашем случае подразумевает предварительное создание математической модели адаптивного поведения (рефлексии) программной системы. В качестве ядра предлагаемой модели было принято использовать аппарат моделирования изменчивости ПО [11]. Модель изменчивости представляет собой своеобразное морфологическое множество адаптивной программной системы, т.е. множество его потенциальных конфигураций.

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

Рис. 1. Диаграмма характеристик

Формально модель характеристик представляет собой ориентированный прямой гиперграф

F = (N, E, А, Ч>):

где N = (Nj,N2,...,Nn} - конечное множество вершин, каждая из которых представляет собой характеристику диаграммы; E = (Ej,E2,...,Em} - конечное множество ребер графа (отношений модели характеристик); Де N -вершина, представляющая корневую характеристику диаграммы.

¥ : E ^ M, M с N X N - функция маркировки, которая присваивает значение мощности mv(Ei) = (min, max) е M , где M - конечное множество значений мощности модели характеристик, N - конечное множество вершин гиперграфа, так что min, max е Z л min > 0, max > 0, min < max л max < qq, где Z - множество целых чисел.

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

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

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

• Рефлексивная программная система может состоять из одного или нескольких рефлексивных компонентов. Их количество будет определять адаптивное разнообразие и рефлексивную сложность программы.

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

Формально блоку изменчивости соответствует следующее определение:

Vb =

где SubF - гиперграфовое представление модели характеристик блока изменчивости, который может описывать адаптивное поведение отдельного компонента либо целостной системы; BlockParams = (BlockParamj, BlockParam2,..., BlockParam k} - множество параметров, влияющих на состояние блока; BlockStates = (BlockStatej,BlockState2,...,BlockStatez} - множество состояний блока, при этом BlockStatet с SubF V i = 1,...,z ; Rule: BlockParams' ^ BlockStates - функция, ставящая в соответствие каждому элементу множества BlockParams' некоторый элемент множества BlockStates . Множество BlockParams' представляет собой множество подмножеств BlockParams .

Множество влияющих параметров BlockParams можно также представить следующим образом:

BlockParams = ExtParams U InnerParams U TargetParams ,

где ExtParams = {ExtParamj,ExtParam2,...,ExtParam kj} - множество внешних по отношению к рассматриваемому блоку параметров; InnerParams = = {InnerParamj, InnerParam2,..., InnerParamk 2} - множество внутренних варьируемых параметров блока; TargetParams = {TargetParamsj, TargetParams2,...,TargetParamsk3} - множество целевых параметров. Элементы множества TargetParams , как правило, связаны с некоторыми целевыми функциями и определяются (в отличие от других подмножеств множества Params ) экспертным путем.

Изменчивость всех архитектурных уровней рефлексивной программной системы будет описываться единой математической моделью:

Ve =

где F - гиперграфовое представление модели изменчивости рассматриваемого архитектурного уровня; Vbs = VbiVb2,...Увг} - множество блоков изменчивости архитектурного уровня; States = {Statej,State2,...,State f} - множество состояний архитектурного уровня, при этом State{ с F V i = 1,..., f ; GenStates : GenParams, F ^ NewState - функция генерации нового состояния

NewState с F на основе множества параметров GenParams = Ur=i ExtParami, где r - число точек вариации рассматриваемого архитектурного элемента, и гиперграфа F ; Trans : TransParams,MX ^ States - функция перехода системы в состояние Statei с F V i = 1,..., f на основе множества влияющих на смену состояния параметров TransParams = GenParams и матрицы переходов MX.

Можно выделить следующие базовые архитектурные уровни рефлексивной системы:

1. Уровень компонентов.

2. Уровень внутрисистемный (межкомпонентный).

3. Уровень межсистемный.

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

Первый и второй уровни будут описываться математической моделью в соответствии с формулой (4). Таким образом, общая математическая модель рефлексивной системы будет иметь следующий вид:

MS = {Si,S3,S3,..,Si},i = 1,..,n ,

где MS - метасистема как совокупность отдельных систем Si .

При этом каждая система Si описывается моделью изменчивости в соответствии с формулой (4), где F - гиперграфовое представление диаграммы характеристик, вершинами которой являются компоненты i-й системы.

В свою очередь каждый из компонентов i-й системы также описывается формулой (4), но в случае с компонентами F в качестве вершин будет включать в себя непосредственно элементы программного приложения (функции, объекты классов, модели, алгоритмы и т.д.).

2. Метод рефлексивной самоадаптации программной системы

Основное назначение предлагаемого метода - формирование функции Rule для последующего выбора необходимой конфигурации путем оценки множества ExtParams . Метод включает в себя следующие основные этапы:

1. Определение множеств ExtParams, InnerParams и TargetParams . Осуществляется вручную разработчиком или экспертом.

2. Задание условий для целевых параметров TargetParams. Также

осуществляется вручную.

3. Определение количества (в процентах) оставляемых на пятом этапе метода значений. Осуществляется вручную.

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

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

6. Использование алгоритма интеллектуального анализа данных для получения зависимостей между ExtParams и InnerParams. Может использоваться один из следующих алгоритмов [12]:

а) кластеризация;

б) ассоциативные правила;

в) деревья решений;

г) нейронная сеть.

7. Формирование функции Rule : BlockParams' ^ BlockStates на основе проведенного анализа. По сути, Rule будет представлять собой функцию-обертку над функцией, возвращаемой алгоритмом Data Mining. Ее назначение -подавать на вход сформированной функции анализа множество ExtParams и на основе получаемых выходных значений формировать подграф из множества BlockStates .

3. Практическое приложение разработанного метода

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

В качестве примера рассмотрим две программные системы, применяемые в сфере образования. Назначение одной - непосредственное обучение

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

Система тестирования в качестве основного метода определения основного рисунка личности использует Миннесотский многоаспектный личностный опросник, или MMPI (англ. Minnesota Multiphasic Personality Inventory) - личностный опросник, разработанный в конце 1930-х - начале 1940-х гг. в Университете Миннесоты Старком Хатуэйем и Джоном МакКин-ли. MMPI - наиболее изученная и одна из самых популярных психодиагностических методик, предназначенная для исследования индивидуальных особенностей и психических состояний личности. Широко применяется в клинической практике [13].

MMPI включает в себя 14 базовых шкал (10 клинических и 4 оценочных) [13]:

1. Шкала ипохондрии (HS) определяет «близость» обследуемого к астено-невротическому типу личности.

2. Шкала депрессии (D) предназначена для определения степени субъективной депрессии, морального дискомфорта (гипотимический тип личности).

3. Шкала истерии (Hy) разработана для выявления лиц, склонных к невротическим реакциям конверсионного типа (использование симптомов физического заболевания в качестве средства разрешения сложных ситуаций).

4. Шкала психопатии (Pd) направлена на диагностику социопатиче-ского типа личности.

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

6. Шкала паранойи (Pa) - позволяет судить о наличии «сверхценных» идей, подозрительности (паранойяльный тип личности).

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

8. Шкала шизофрении (Sc) - направлена на диагностику шизоидного (аутического) типа личности.

9. Шкала гипомании (Ma) - определяет степень «близости» обследуемого гипертимному типу личности.

10. Шкала социальной интроверсии (Si) диагностирует степень соответствия интровертированному типу личности. Клинической шкалой не является, добавлена в опросник в ходе его разработки.

11. Шкала «?» - шкалой может быть названа условно, так как не имеет относящихся к ней утверждений. Регистрирует количество утверждений, которые обследуемый не смог отнести ни к «верным», ни к «неверным».

12. Шкала «лжи» (L) предназначена для оценки искренности обследуемого.

13. Шкала достоверности (Б) создана для выявления недостоверных результатов (связанных с небрежностью обследуемого), а также аггравации и симуляции.

14. Шкала коррекции (К) введена для того, чтобы сгладить искажения, вносимые чрезмерной недоступностью и осторожностью обследуемого.

В то же время система обучения предлагает три возможных варианта обучения математике в средней школе:

1) абстрактный вариант (без вспомогательных визуальных методов);

2) графический вариант (со множеством дополнительных иллюстраций и конкретных примеров);

3) смешанный вариант.

Фрагмент диаграммы характеристик блока изменчивости обучающего приложения, отвечающего за выбор варианта обучения, представлен на рис. 2.

Вариант обучения

Рис. 2. Варианты обучения

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

Множество параметров блока изменчивости BlockParams представлено на рис. 3, из которого видно, что значения клинических шкал MMPI входят в множество ExtParams , возможный вариант обучения образует множество InnerParams , а множество TargetParams включает в себя время, затрачиваемое на процесс обучения, и число ошибок, полученных при тестировании знаний.

Данные для рефлексивного анализа собираются в таблицу, столбцы которой представляют элементы множества BlockParams. Фрагмент таких данных показан в табл. 1.

В конкретном случае нас интересуют те записи, в которых значения времени и числа ошибок будут малыми. Было принято решение отбирать 20 % записей с малыми значениями.

Значения клинических шкал MMPI в диапазоне 50-60 баллов относятся к «среднему» коридору нормы, в диапазоне 40-50 - к «нижнему» коридору

нормы, в диапазоне 60-70 - к «верхнему». Шкалы со значениями в области 60-80 баллов можно считать представляющими акцентуированные черты личности (при этом значение в диапазоне 70-80 баллов отвечает за явную акцентуацию), а значения выше 80 баллов говорят либо о соответствующих психопатических чертах [13], либо о наличии психоза (например, шизофренического психоза в случае с явно повышенной шкалой Sc) или тяжелого невроза (например, истерического расстройства в случае со значительным повышением Hy).

BlockParams

ExtParams InnerParams

Рис. 3. Множество BlockParams

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

Множество возможных состояний блока изменчивости BlockStates будет содержать три элемента, т.е. три подграфа исходного графового представления изображенной на рис. 2 модели изменчивости Е. Каждый подграф будет включать соответствующую стратегию обучения.

Таблица 1

Фрагмент массива данных для рефлексивного анализа

Hs D Hy Pd Mf Pa Pt Sc Ma Si Вариант обучения Время Число ошибок

52 60 53 57 55 56 60 60 51 60 0 10 1

55 55 62 54 52 52 51 55 60 52 0 14 3

51 53 51 50 57 55 48 54 55 58 0 12 2

65 75 65 85 60 88 79 90 70 81 0 20 7

48 51 66 56 60 56 52 59 60 54 1 11 1

67 77 57 53 56 59 70 61 59 70 1 15 4

72 91 83 82 70 96 88 98 92 98 1 22 10

46 60 56 45 62 40 60 53 50 58 1 12 2

58 46 58 62 50 67 55 40 58 67 2 15 3

46 63 59 53 67 53 58 60 45 67 2 16 3

63 56 58 53 56 59 64 77 67 64 2 17 4

87 118 80 70 65 92 100 115 60 65 2 21 8

Для анализа применялся алгоритм поиска ассоциативных правил Apriori. Полученные зависимости выглядят следующим образом:

1. Если Hy e [60; 80], то наиболее выгодной является визуальная стратегия обучения.

2. Если Sc e [60; 80] или Pt e [60; 80], то наиболее выгодной является абстрактная стратегия обучения.

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

Заключение

Разработанный метод рефлексивной самоадаптации программных систем является универсальным и масштабируемым, позволяет находить зависимости как в рамках одной системы, так и во взаимодействиях между различными системами. Это позволит программному обеспечению совершенствоваться на протяжении жизненного цикла без привлечения специалистов в области программирования [14]. Помимо метода, значимыми теоретическими результатами работы также являются формулировка базовых принципов концепции рефлексивной самоадаптации программных систем; универсальные архитектурные принципы построения адаптивного программного обеспечения; математическая модель рефлексии, используемая в предложенном методе. К основному практическому результату следует отнести разработанную адаптивную программную систему в сфере образования, способную самостоятельно выявлять зависимости между результатами психологического тестирования учащегося и подходящими ему алгоритмами обучения.

Библиографический список

1. Hogg, C. Game AI for domination games / C. Hogg и др. // Artificial intelligence for computer games / под ред. P. A. Gonzalez-Galero, M. A. Gomez-Martin. - New York : Springer, 2011. - С. 83-101.

2. Wang, A. L. Software architectures and the creative processes in game development / A. L. Wang, N. Nordmark // Entertainment computing / ed. by K. Chorianopoulos et al. - Cham : Springer International Publishing, 2015. - P. 272-285.

3. Riener, R. Virtual reality in medicine / R. Riener, M. Harders. - London : Springer London, 2012. - 294 p.

4. Harris, A. Simulation and training in minimal access surgery / A. Harris, F. Bello, R. Kneebone // Training in minimal access surgery / ed. by N. Francis et al. - London : Springer London, 2015. - P. 35-47.

5. Torbeyns, J. Describing and studying domain-specific serious games / J. Torn-beyns, E. Lehitinen, J. Elen. - Cham : Springer International Publishing, 2015. - 250 p.

6. Ahuja, K. Autonomic Computing: An emerging perspective and issues / K. Ahuja, H. Dangey // IEEE International Conference on Issues and Challenges in Intelligent Computing Techniques (ICICT 2014). - Washington : IEEE Computer Society, 2014. -P. 471-475.

7. Wang, P. Representing extended finite state machines for SDL by a novel control model of discrete event systems / P. Wang, K. Y. Cai // Sixth IEEE International Conference on Quality Software (QSIC 2006). - Washington : IEEE Computer Society, 2006. - P. 159-166.

8. Wang, P. Supervisory control of a kind of extended finite state machines / P. Wang, K. Y. Cai // 24th IEEE Chinese Control and Decision Conference (CCDC). - Washington : IEEE Computer Society, 2012. - P. 775-780.

9. Yang, Q. Fuzzy control-based software self-adaptation: A case study in mission critical systems / Q. Yang, J. Lu, J. Xing, X. Tao, H. Hu, Y. Zou // IEEE 35th Annual Computer Software and Applications Conference Workshops (COMPSACW). - Washington : IEEE Computer Society, 2011. - P. 13-18.

10. Sim, K. M. Agent-based cloud computing / K. M. Sim // IEEE Transactions on Services Computing. - Washington : IEEE Computer Society, 2012. - P. 564-567.

11. Schobbens, P. E. Feature diagrams: a survey and formal semantics / P. E. Schobbens, P. Heymans, J. C. Trigaux // In 14th IEEE International Requirements Engineering Conference (RE'06). - Washington : IEEE Computer Society, 2011. -P. 139-148.

12. Барсегян, А. Анализ данных и процессов / А. Барсегян, М. Куприянов, И. Холод, М. Тесс, С. Елизаров. - СПб. : БХВ-Петербург, 2009. - 314 с.

13. Собчик, Л. СМИЛ. Стандартизированный многофакторный метод исследования личности / Л. Собчик. - СПб. : Речь, 2000. - 219 с.

14. Бершадский, А. М. Разработка и моделирование гетерогенных инфраструктур для беспроводного информационного обеспечения процессов мониторинга / А. М. Бершадский, А. Г. Финогеев, А. С. Бождай // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2010. - № 1. - С. 36-46.

References

1. Hogg C. et al. Artificial intelligence for computer games. New York: Springer, 2011, pp. 83-101.

2. Wang A. L., Nordmark N. Entertainment computing. Cham: Springer International Publishing, 2015, pp. 272-285.

3. Riener R., Harders M. Virtual reality in medicine. London: Springer London, 2012, 294 p.

4. Harris A., Bello F., Kneebone R. Training in minimal access surgery. London: Springer London, 2015, pp. 35-47.

5. Torbeyns J., Lehitinen E., Elen J. Describing and studying domain-specific serious games. Cham: Springer International Publishing, 2015, 250 p.

6. Ahuja K., Dangey H. IEEE International Conference on Issues and Challenges in Intelligent Computing Techniques (ICICT 2014). Washington: IEEE Computer Society, 2014, pp. 471-475.

7. Wang P., Cai K. Y. Sixth IEEE International Con-ference on Quality Software (QSIC 2006). Washington: IEEE Computer Society, 2006, pp. 159-166.

8. Wang P., Cai K. Y. 24th IEEE Chinese Control and Decision Conference (CCDC). Washington: IEEE Computer Society, 2012, pp. 775-780.

9. Yang Q., Lu J., Xing J., Tao X., Hu H., Zou Y. IEEE 35th Annual Computer Software and Applications Conference Workshops (COMPSACW). Washington: IEEE Computer Society, 2011, pp. 13-18.

10. Sim K. M. IEEE Transactions on Services Computing. Washington: IEEE Computer Society, 2012, pp. 564-567.

11. Schobbens P. E., Heymans P., Trigaux J. C. In 14th IEEE International Requirements Engineering Conference (RE'06). Washington: IEEE Computer Society, 2011, pp. 139148.

12. Barsegyan A., Kupriyanov M., Kholod I., Tess M., Elizarov S. Analiz dannykh i protsessov [Data and process analysis]. Saint-Petersburg: BKhV-Peterburg, 2009, 314 p.

13. Sobchik L. SMIL. Standartizirovannyy mnogofaktornyy metod issledovaniya lichnosti [Standardized multifactor method of personality research]. Saint-Petersburg: Rech', 2000, 219 p.

14. Bershadskiy A. M., Finogeev A. G., Bozhday A. S. Izvestiya vysshikh uchebnykh za-vedeniy. Povolzhskiy region. Tekhnicheskie nauki [University proceedings. Volga region. Engineering sciences]. 2010, no. 1, pp. 36-46.

Бождай Александр Сергеевич доктор технических наук, профессор, кафедра систем автоматизированного проектирования, Пензенский государственный университет

E-mail: bozhday@yandex.ru

Евсеева Юлия Игоревна кандидат технических наук, доцент, кафедра систем автоматизированного проектирования, Пензенский государственный университет

E-mail: shymoda@mail.ru

Bozhday Aleksandr Sergeevich Doctor of engineering sciences, professor, sub-department of CAD systems, Penza State University

Evseeva Yuliya Igorevna Candidate of engineering sciences, associate professor, sub-department of CAD systems, Penza State University

УДК 004.4 Бождай, А. С.

Метод рефлексивной самоадаптации программных систем /

А. С. Бождай, Ю. И. Евсеева // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2018. - № 2 (46). - С. 74-86. - Б01 10.21685/2072-3059-2018-2-7.