Применение эволюционного моделирования для регенерации программного обеспечения

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

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 07.07.2020
Размер файла 628,4 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Применение эволюционного моделирования для регенерации программного обеспечения

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

Регенерация программного обеспечения - новый процесс, который обусловлен взаимосвязью программных компонент технологии и данных в информационных системах. Технология ре-генерации возникла как ответ на требование реальности. Длительное время в информационных си-стемах проводилось независимое обновление программного обеспечения и модернизация технологического обеспечения. Данные подстраивались под программное обеспечение. В то же время для любых информационных систем (ИС) важным фактором является качество и оценка качества такой системы [3]. ИС характеризуется следующими компонентами: применяемыми данными, технологией функционирования (включая обработку информации), программными компонентами. Для информа-ционных систем необходимо применять методы стандартизации программного обеспечения (ПО) [9] и учитывать соответствующие ГОСТы. Перечисленные компоненты характеризуют качество функ-ционирования системы. При обновлении компонент может изменяться качество функционирования. Основой оценки качества программного обеспечения в информационных системах являются два стандарта: отечественный стандарт ГОСТ Р ИСО/МЭК 25010-2015 «Информационные технологии (ИТ). Системная и программная инженерия. Требования и оценка качества систем и программного обеспечения (SQuaRE). Модели качества систем и программных продуктов»; зарубежный стандарт ^0/1ЕС 25010:2011 «Системная и программная инженерия. Требования и оценка качества систем и программного обеспечения (SQuaRE). Модели качества систем и программного обеспечения» [14]. Указанные стандарты отражают современную концепцию развития ПО на основе системной и про-граммной инженерии1 [1]. Такой интегрированный подход требует проводить разработку информаци-онных систем и программного обеспечения к ним с позиций качества. В соответствии со стандартом ГОСТ Р ИСО/МЭК 25010-2015 в системах выделяют три модели качества: модель самого алгоритма и модель применения алгоритма, модель качества данных. Поэтому разработка любой системы связана с разработкой программного обеспечения и с разработкой качественной модели данных. Появление и применение этих стандартов зафиксировало важное обстоятельство. Программное обеспечение, тех-нологическое обеспечение (ТО) и структуры данных (СД) взаимосвязаны. Их независимое обновле-ние нарушает комплементарность [7; 10] между ними. Регенерация - это процесс взаимосвязанного обновления ПО, ТО, СД. Для регенерации пригодны различные методы. Одним из перспективных следует считать совокупность эволюционных методов.

Переносимость данных при регенерации программного обеспечения информационной системы.

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

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

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

Методы эволюционного моделирования

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

Взаимосвязь ПО, ТО, СД в информационных системах представляет собой совокупность случайных и детерминированных факторов, похожую на связь факторов в процессе эволюции биологических видов. Эволюционное компьютерное моделирование применяется в задачах оптимизации программно-го обеспечения [13], генерации оптимальных тестовых наборов данных [12], оценке надежности программного обеспечения [11], кластеризации программного обеспечения на компоненты [16], выделе-нии функциональности в виде программной и аппаратной компонент [19].

Следует отметить процедуру, направленную на улучшение программного обеспечения которую называют рефакторинг (software refactoring). Отдаленно она отражает идеи регенерации. Рефакторинг является довольно узкой операцией. Он состоит в улучшении внутренней структуры исходного кода программы при сохранении ее внешнего поведения. Рефакторинг не осуществляет: а) переписывание кода; б) исправление ошибок; в) улучшение интерфейса. Регенерация допускает все три пункта - а, б, в, - то есть является более широкой технологией, поддерживающей идеи рефакторинга. При рефакторинге программного обеспечения применяется эволюционное моделирование [17], что делает его удобным инструментом при регенерации ПО.

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

Систематизация эволюционного моделирования

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

Выделяют три группы алгоритмов эволюционного моделирования [5]:

— узко эволюционные,

— синергетические;

— системные.

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

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

Как только получена функция (программа) с заданной точностью, выражающая искомую зависи-мость, в нее алгоритмически начинаются вноситься небольшие изменения, повышающие точность ре-шения. Одновременно могут развиваться несколько параллельных линий эволюции программ, конку-рирующих между собой. Конкурирующим критерием является точность идентификации решения или уменьшение погрешности итерации. Такой подход позволяет использовать эволюционное программи-рование в области нейроэволюции - автоматической регенерации весовых коэффициентов и топологии искусственных нейронных сетей. Эволюционная стратегия основана на модификации решений или паттернов, когда речь идет о программах. Достаточно подробно эта стратегия представлена в диссерта-ции автора Н.Б. Уральского [6].

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

Генетические алгоритмы

Генетические алгоритмы (ГА) основаны на механизме модификации, больше схожем с регене-рацией, чем с обновлением компонент3. Достаточно подробно и развернуто модель этого алгоритма представлена в учебном материале, который размещен на сайте Уфимского государственного авиа-ционного технического университета [2]. Эту базовую модель используют многие авторы статей и диссертаций.

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

В качестве базовой основы был использован алгоритм дискретного дерева для решения задачи оптимизации (Discrete Tree-Seed algorithm - DTSA) [12]. Этот алгоритм базировался на аналоговой версии (TSA). Основная идея алгоритма - это решение задачи непрерывной оптимизации отношений между деревьями и их семенами.

Многие двоичные версии TSA представлены в литературе, включая отдельную версию TSA, в которой переменные решения представлены в виде целочисленных значений. В работе [12] базовый TSA модифицирован путем интеграции операторов подкачки, сдвига и преобразования симметрии для решения задач оптимизации с перестановочной кодировкой, и он называется DTSA. В данной работе использованы идеи, но не сам алгоритм.

Если перенести идеи работы алгоритма на регенерацию компонент, то можно рассматривать ком-поненты как семена (тактика), а дерево как основной алгоритм (стратегия). Компоненты создаются с использованием формул (1) или (2) для каждого дерева путем итераций

В выражениях (1), (2) приняты следующие обозначения: T(i) - i-е дерево; S(k) - k-ый компонент T(i); а - равномерно распределенное случайное число между -1 и 1; B - лучшее дерево, полученное до насто-ящего времени; T(r) - случайное дерево, которое отличается от T (i). Два уравнения создания начальных чисел (уравнения 1 или 2) управляются параметром Search Tendency (ST), имеющим значение от 0 до 1.

Рис.1

В процессе поиска генерируется и сравнивается равномерно распределенное случайное число в диапазоне [0, 1] с параметром ST. Если ST меньше, чем это случайное число, уравнение (1) использует-ся для создания семян, в противном случае уравнение (2) используется для создания семян. Уравнение (1) обеспечивает усиление, уравнение (2) обеспечивает диверсификацию в TSA. Блок-схема модифи-цированного генетического алгоритма приведена на рисунке 1. Схема на рисунке 1 характеризуется наличием множеств и соответственно возможностью применения теоретико-множественного подхода к ее описанию.

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

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

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

Алгоритм искусственного пчелиного роя

Алгоритм искусственного пчелиного роя в наибольшей степени подходит для регенерации про-граммного обеспечения. Алгоритм искусственного пчелиного роя (АПР) напрямую не подходит к реге-нерации ПК. Поэтому для этой цели используют алгоритм модифицированного пчелиного роя (МАПР). Он относится к эвристическим полиномиальным алгоритмам оптимизации, разработанным на основе моделирования поведения роя пчел, собирающих нектар. Модель поведения роя пчел, построенная че-ловеком, то есть модель искусственного пчелиного роя, включает три основных параметра: источники питания, рабочие фуражиры, нерабочие фуражиры [15]. Основная идея подхода применительно к ре-генерации ПК в выделении групп мультиагентов, которые решают свои задачи. Здесь следует отметить принципиальное отличие алгоритма МАПР от муравьиного алгоритма. В муравьином алгоритме задача сводится к обработке одного эффективного источника или генерального алгоритма. В МАРП принци-пиально каждая группа агентов имеет свой алгоритм. Это говорит о том, что данный алгоритм является субсидиарным. Блок-схема МАПР приведена на рисунке 2.

Рис.2

Если схема на рисунке 1 ориентирована на множества, то схема на рисунке 2 ориентирована на группы мультиагентов. Причем их больше, чем в АПР Цифрами обозначены следующие группы: 1 - высшее руководство и аналитики; 2, 3 - специалисты в области информационного поиска; 4, 5, 6 - программисты; 7, 8 - эксперты и специалисты в области оптимизации; 9 - специалисты в области системной инженерии. Таким образом, количество групп 5 и это задает 5 субсидиарных алгоритмов в дополнение к главному алгоритму создания новой системы ПК. Применительно к регенерации ПК на-личие решения оптимизационной задачи означает возможность регенерации программного компонен-та или его модернизации.

4. Применение логистического уравнения для исследования системы

Совокупные действия пчел (агентов) можно описать также с помощью логистического уравне-ния. Исследование сложных систем, потребляющих ресурсы, приводит к необходимости моделирова-ния потребления ресурсов. Для этой цели подходит модель, которая описывает процессы самореплика-ции и их подавление в среде с ограниченными ресурсами [4; 20].

Уравнение, описывающее процесс потребления ресурсов, называется логистическим уравнением. Логистическое уравнение, также известное как уравнение Ферхюльста (Pitrre Francois Verhulst), из-начально появилось при рассмотрении модели экономического роста [21].

Обозначим через P потребление ресурсов или результативность системы через t время. Такая мо-дель сводится к дифференциальному уравнению:

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

для которой существует предел

Уравнение (3) не приемлемо для многих систем. Это обусловлено тем, что только в некоторых биологических системах популяция начинается с нулевого значения (пара особей) или нулевого ре-сурса. Для сложных систем существует нижний предел ресурсов, отличный от нуля. Нижний предел означает количество ресурсов, ниже которого система не функционирует. Верхний предел обуслов-лен ограниченными возможностями системы переработки ресурсов. Поэтому для сложных систем уравнение, моделирующее процесс функционирования системы на основе потребления ресурсов, имеет вид (4) [4]

В выражении (4) у - величина, связанная с потреблением ресурсов; ^ - нижняя граница потребля-емых ресурсов; к2 - верхняя граница потребляемых ресурсов; а - постоянная величина, характеризую-щая интенсивность потребления ресурсов.

В рамках модели (4) можно задавать пределы ресурсов и, зная скорость их потребления, полу-чить решение для динамической модели. На рисунке 3 приведен результат экспериментального расчета в условных единицах решения уравнения (4) для сложной системы, потребляющей ресурсы, согласно модели (1). Можно упростить решение логистического уравнения до простого вида, которое использу-ют в однопараметрической модели Раша [18]

Такая кривая приведена на рисунке 3, она известна в математике и относится к классу сигмоид (sigmoid). Сигмоида - гладкая монотонная нелинейная S-образная возрастающая функция, которая применяется для отражения процесса накопления и его предела. Величина а задает сдвиг от начала координат вправо.

Рис.3

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

Если в качестве аргумента выбрать параметр а, то получаем другое решение уравнения и другую кривую. Решение (6) в этом случае имеет вид, приведенный на рисунке 4.

Рис.4

Оба вида кривых применяют в модели Раша [18]. Рисунок 4 характеризует производительность системы, а рисунок 3 характеризует расход ресурсов. Применительно к регенерации ПО рисунок 3 го-ворит о наступлении предела производительности системы или алгоритма. Это требует регенерации системы. Применительно к регенерации ПО рисунок 4 говорит об исчерпании ресурсов для работы системы и необходимости их регенерации.

Заключение

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

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

Список литературы

программный регенерация информационный

1.Буравцев А.В., Щенников А.Е. Информационный подход в системной и программной инженерии // Славянский форум. - 2018. - № 1 (19). - С. 17-23.

2.Искусственный интеллект. Генетические алгоритмы [Электронный ресурс]. - URL: https://www. studfile.net/preview/986657/page:13 (дата обращения: 11.09.2019).

3.Монахов С.В., Савиных В.П., Цветков В.Я. Методология анализа и проектирования сложных инфор-мационных систем. - М.: Просвещение, 2005. - 264 с.

4.Пригожин И., Стенгерс И. Порядок из хаоса: новый диалог человека с природой. - М.: Прогресс, 1986. - 432 с.

5.Снитюк В.Е. Эволюционное моделирование и программирование жизненного цикла технических систем в детерминированных условиях // Искусственный интеллект. - 2006. - № 4. - С. 10-15.

6.Уральский Н.Б. Разработка моделей и алгоритмов составления оптимальных расписаний выполнения программных модулей в вычислительной сети на основе эволюционного подхода: дис. ... канд. техн. наук: 05.13.11. - М., 2017. - 137 с.

7.Цветков В.Я. Комплементарность информационных ресурсов // Международный журнал прикладных и фундаментальных исследований. - 2016. - № 2. - С. 182-185.

8.Цветков В.Я. Комплементарные отношения // Научный вестник Новосибирского государственного технического университета. - 2019. - № 2 (75). - С. 101-114.

9.Цветков В.Я. Стандартизация информационных программных средств и программных продуктов. - М.: МГУГиК, 2000. - 116 с.

Размещено на Allbest.ru

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.