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

Применение эволюционного моделирования для регенерации программного обеспечения Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
160
26
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ / КИБЕРНЕТИКА / ВЫЧИСЛЕНИЕ / ОБНОВЛЕНИЕ ИНФОРМАЦИИ / РЕГЕНЕРАЦИЯ ПРОГРАММНЫХ КОМПОНЕНТ / SOFTWARE / CYBERNETICS / COMPUTING / UPDATING INFORMATION / REGENERATING SOFTWARE COMPONENTS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Матчин Василий Тимофеевич

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Матчин Василий Тимофеевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

APPLICATION OF EVOLUTIONARY MODELING FOR SOFTWARE REGENERATION

The article deals with the problem regeneration of information systems software. The difference between updating and regeneration, refactoring and software regeneration is shown. The systematization of evolutionary algorithms is given. The features of genetic algorithms and algorithms for swarming bees are considered in detail. The conditions for using the swarm of bees algorithm for software regeneration are described. Algorithms for using resources based on the logistic equation are considered. The features of using the logistic equation as an indicator of software regeneration are described. Two variants of regeneration are identified: in information systems and in software. Regeneration conditions are formulated for these variants at the system level. Regeneration in information systems is applicable if the software, technology, and data system are connected in a Trinitarian way. Software regeneration is applicable provided that the combination of programs and algorithms forms a related complete system. The regeneration technology is represented as a modern technology for upgrading the software system.

Текст научной работы на тему «Применение эволюционного моделирования для регенерации программного обеспечения»

УДК 334.71:656:338.245

ПРИМЕНЕНИЕ ЭВОЛЮЦИОННОГО МОДЕЛИРОВАНИЯ ДЛЯ РЕГЕНЕРАЦИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

Матчин Василий Тимофеевич,

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

e-mail: matchin.v@gmail.com, Институт информационных технологий, Российский технологический университет (РТУ МИРЭА), г. Москва

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

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

APPLICATION OF EVOLUTIONARY MODELING FOR SOFTWARE

REGENERATION

Matchin V.T.,

senior lecturer department of instrumental and applied software, e-mail: matchin.v@gmail.com, Institute of Information Technology, Russian Technological University (RTU MIREA), Moscow

The article deals with the problem regeneration of information systems software. The difference between updating and regeneration, refactoring and software regeneration is shown. The systematization of evolutionary algorithms is given. The features of genetic algorithms and algorithms for swarming bees are considered in detail. The conditions for using the swarm of bees algorithm for software regeneration are described. Algorithms for using resources based on the logistic equation are considered. The features of using the logistic equation as an indicator of software regeneration are described. Two variants of regeneration are identified: in information systems and in software. Regeneration conditions are formulated for these variants at the system level. Regeneration in information systems is applicable if the software, technology, and data system are connected in a Trinitarian way. Software regeneration is applicable provided that the combination of programs and algorithms forms a related complete system. The regeneration technology is represented as a modern technology for upgrading the software system.

Keywords: software, cybernetics, computing, updating information, regenerating software components

DOI 10.21777/2500-2112-2019-4-42-52

Введение

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

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

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

Взаимосвязь ПО, ТО, СД в информационных системах представляет собой совокупность случайных и детерминированных факторов, похожую на связь факторов в процессе эволюции биологических видов. Эволюционное компьютерное моделирование применяется в задачах оптимизации программного обеспечения [14], генерации оптимальных тестовых наборов данных [10], оценке надежности программного обеспечения [9], кластеризации программного обеспечения на компоненты [18], выделении функциональности в виде программной и аппаратной компонент [22].

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

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

1 Дешко И.П., Кряженков К.Г., Цветков В.Я. Системная и программная инженерия: учебное пособие. - М.: МАКС Пресс, 2018. - 80 с.

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

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

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

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

- популяционные алгоритмы;

- эволюционное программирование;

- эволюционная стратегия.

Указанные три группы объединяет эволюционная стратегия.

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

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

Эволюционное программирование использует адаптивные на воздействие среды универсальные конечные автоматы [12]. Конечные автоматы позволяют решать оптимизационные задачи. Эволюционное моделирование в области компьютерных программ может быть представлено моделью, в которой каждая программа является гипотезой А о форме зависимости целевой функции P(x) от входных переменных х:

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

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

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

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

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

Генетические алгоритмы (ГА) основаны на механизме, схожем с природной генетикой и селекцией наиболее приспособленных «особей» - решений задачи адаптации и оптимизации2 [13].

Область применения генетических алгоритмов (ГА) расширяется по мере развития средств вычислительной техники, позволяющих решать задачи возрастающей размерности за приемлемое время [16]. На рисунке 1 представлена обобщенная блок-схема простого генетического алгоритма.

Рисунок 1 - Обобщенная блок-схема простого генетического алгоритма

Существуют различные модификации простого генетического алгоритма, среди которых следует отметить модификацию М!^ХРМ [11], позволяющую решать задачи целочисленной оптимизации. В

2 Гладков Л.А., Курейчик В.В., КурейчикВ.М. Генетические алгоритмы: учебное пособие. - 2-е изд. - М: Физматлит, 2006. - 320 с.

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

Модификация MI-LXPM, как и многие другие, использует системный принцип Х - вход, Y - выход. Применительно к популяции это означает Х - родитель, Y - потомок. Оператор кроссинговера алгоритма MI-LXPM приводит к получению двух потомков у1 = (у1 у1 , у1 ) и у2 = (у2р у22, , у2и) от двух родителей х1 = (x1J, x^,, , х1и,) и x2 = ((x2p x22, , x2J) следующим образом: на первом шаге получаются равномерно распределенные на отрезке [0; 1] случайные числа u. и rt, затем генерируется случайное число в, удовлетворяющее распределению Лапласа, то есть:

в . = a - b log u,r . < / v в = a + b log u,r . > /, где а - параметр локации и b > 0 - параметр масштабирования.

Чем больше значение b, тем дальше потомки от родителей.

После вычисления в потомки создаются по следующей схеме:

У/ = <+ Д I х1,- х2,| у 2 = х2,+ pt I х1 -- х2, I

Оператор мутации алгоритма MI-LXPM создает решение х в окрестности начального приближения х в следующей последовательности:

1) генерируется случайное число 5, распределенное по закону s = (s;)p, где s± - равномерно распределенное от 0 до 1 случайное число; р - индекс мутации, задающий силу мутационной изменчивости. Индекс мутации принимает целые или вещественные значения, в зависимости от ограничений на значения переменной принятия решения;

2) после вычисления s определяется мутировавшее решение в виде:

x = [(x - s(x - x1), t<r;] v [х + s(xu - х), t => г],

где t = ((x - x1) / (xu - х); х, хи - нижнее и верхнее ограничения на значение переменной принятия решения соответственно;

r - равномерно распределенное от 0 до 1 случайное число.

Для автоматизации решения оптимизационных задач с применением генетических алгоритмов разработано большое количество типовых программных компонент, которые включены в библиотеки языков программирования, в том числе, C++, Python, Java, MATLAB. Эти компоненты позволяют создавать различные модификации генетических алгоритмов, используемых при решении оптимизационных задач, в том числе, для решения задачи смешанной целочисленной оптимизации в рамках настоящего исследования.

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

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

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

ющие в улье и приступающие к освоению нового источника питания после получения информации о нем от рабочих фуражиров.

Таким образом, в отличие от муравьиной колонии в модели искусственного пчелиного роя задействовано три группы агентов, причем одна из групп является ресурсной. Блок-схема АПР приведена на рисунке 2.

Рисунок 2 - Блок-схема АПР

Потенциальные решения задачи оптимизации записываются в виде пространственных координат источника питания:

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

v.. = x.. + 0..(x-xj (2)

V V ij ij k x '

В выражении (2) к = 1, 2, ...BN, BN- количество рабочих фуражиров, j = 1, 2,..., п, п - выявленное количество источников. При этом к Ф j, - случайная величина в диапазоне (-1, 1). Выражение (2) играет роль дискриминанта. Если новое решение (2) лучше, чем (1), происходит замена решения, в противном случает условия сохраняются. Как только рабочие фуражиры завершат локальную оптимизацию своих источников по правилу (2), они делятся информацией об источниках с наблюдателями. Наблюдатель затем выбирает i-ый источник с вероятностью, определяемой следующим уравнением:

P = nir- (3)

I fit

j=1

В выражении (3) fit. соответствует значению функции приспособленности i-го решения. SN определяет количество источников питания, равное количеству рабочих фуражиров BN. Таким образом, если ,-ое решение будет лучше, чем остальные, вероятность регенерации наблюдателем i-го источника повысится. В том случае, если положение источника не может быть улучшено после заданного числа итераций алгоритма, источник считается истощенным и отвергается.

После этого пчела-разведчик приступает к поискам нового источника питания X *, чтобы заменить отвергнутый источник X по правилу:

xk* = lb7 + rand (0,1) X (ub7 - lb). (4)

В выражении (4) ub и lb задают верхнюю и нижнюю границу поиска, rand (0, 1) является случайной величиной на интервале (0; 1). Алгоритм завершает работу по достижению заданного числа итераций или выполнения иных условий остановки.

Применительно к регенерации ПО поиск нового источника означает необходимость замены программного компонента или его модернизации.

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

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

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

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

dP=rp

dt

\ - P

v Kj

(5)

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

Рт = ,

и К + Р0(е"-1)

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

Ет Р(£) = К.

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

^ = а (у - ^ - у). (6)

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

Решение логистического уравнения для однопараметрической модели Раша [21] будет иметь вид:

P (t) =

V-a

1+P0ef ~a

(7)

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

р *

/ К

0.5 } / t

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

5 10

Рисунок 3 - Логистическая кривая потребления ресурсов сложной системой во времени

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

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

р 1 D

К \ \ 0.5 \

а

Рисунок 4 - Логистическая кривая потребления ресурсов сложной системой с аргументом а

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

Заключение

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

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

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

2. Кельтон В., Лoy A. Имитационное моделирование. - СПб.: Питер; Киев: Издательская группа BHV, 2004. - 847 с.

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

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

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

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

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

8. Щенников А.Н. Комплементарность сложных вычислений // Славянский форум. - 2018. - № 2 (20). -С.118-123.

9. Aljahdali S.H., El-Telbany M.E. Software reliability prediction using multi-objective genetic algorithm // IEEE/ACS International Conference on Computer Systems and Applications. - Rabat, 2009. - P. 293-300.

10. Bouchachia A. An Immune Genetic Algorithm for Software Test Data Generation // 7th International Conference on Hybrid Intelligent Systems (HIS 2007). - Kaiserlautern: IEEE, 2007. - P. 84-89.

11. Deep K. et al. A real coded genetic algorithm for solving integer and mixed integer optimization problems // Applied Mathematics and Computation - 2009. - No. 212. - P. 505-518.

12. Fogel D.B. Evolutionary computation: toward a new philosophy of machine intelligence. - John Wiley & Sons, 2006. - 384 p.

13. Holland J.H. Outline of the Logical Theory of Adaptive Systems // Journal of the ACM (JACM). - 1962. -Vol. 9, is. 3. - P. 297-314.

14. Huang S.-J., Chiu N.-H. Optimization of analogy weights by genetic algorithm for software effort estimation // Information and Software Technology. - 2006. - Vol. 48, No. 11. - P. 1034-1045.

15. ISO/IEC 25010:2011 "Systems and software engineering - Systems and software Quality Requirements and Evaluation (SQuaRE) - System and software quality models" [Электронный ресурс]. - URL: https:// www.iso.org/standard/35733.html (дата обращения: 12.12.2019).

16. Jong K.D. An analysis of the behavior of a class of genetic adaptive systems. PhD thesis. - Ann Arbor: University of Michigan, 1975.

17. Karaboga D., BasturkB. A powerful and efficient algorithm for numerical function optimization: artificial bee colony (ABC) algorithm // Journal of Global Optimization. - 2007. - Vol. 39, is. 3. - P. 459-471.

18. Kumari A.C., Srinivas K., Gupta M.P. Software module clustering using a hyper-heuristic based multi-objective genetic algorithm // 3rd IEEE International Advance Computing Conference (IACC). - IEEE, 2013. - P. 813-818.

19. Luke S. Essentials of Metaheuristics, Lulu, second edition [Электронный ресурс]. - URL: http://www. cs.gmu.edu/<-sean/book/metaheuristics (дата обращения: 18.09.2019).

20. Ouni A., Kessentini M., Sahraoui H., Hamdi M.S. The use of development history in software refactoring using a multi-objective evolutionary algorithm // Proceedings of the 15th annual conference on Genetic and evolutionary computation (GECCO '13) / ed. C. Blum. - ACM, 2013. - P. 1461-1468.

21. Rasch G. Probabilistic models for some intelligence and attainment tests. - MESA Press, 5835 S. Kimbark Ave., Chicago, IL 60637.

22. Saha D., Mitra R. S., Basu A. Hardware software partitioning using genetic algorithm // Proceedings Tenth International Conference on VLSI Design. - IEEE, 1997. - P. 155-160.

23. Tsvetkov V.Ya. Resource Method of Information System Life Cycle Estimation // European Journal of Technology and Design. - 2014. - № 2 (4). - P. 86-91.

24. VerhulstP. F. (1838). Notice sur la loi que la population poursuit dans son accroissement. Correspondance mathématique et physique 10:113-121.

References

1. BuravcevA.V., Shchennikov A.E. Informacionnyj podhod v sistemnoj i programmnoj inzhenerii // Slavyanskij forum. - 2018. - № 1 (19). - S. 17-23.

2. Kel'ton V., Lou A. Imitacionnoe modelirovanie. - SPb.: Piter; Kiev: Izdatel'skaya gruppa BHV, 2004. - 847 s.

3.MonahovS.V, Savinyh V.P., Cvetkov V.Ya. Metodologiya analiza i proektirovaniya slozhnyh informacionnyh sistem. - M.: Prosveshchenie, 2005. - 264 s.

4. Prigozhin I., Stengers I. Poryadok iz haosa: novyj dialog cheloveka s prirodoj. - M.: Progress, 1986. - 432 s.

5. Cvetkov V.Ya. Komplementarnost' informacionnyh resursov // Mezhdunarodnyj zhurnal prikladnyh i fundamental'nyh issledovanij. - 2016. - № 2. - S. 182-185.

6. Cvetkov V.Ya. Komplementarnye otnosheniya // Nauchnyj vestnik Novosibirskogo gosudarstvennogo tekhnicheskogo universiteta. - 2019. - № 2 (75). - S. 101-114.

7. Cvetkov V.Ya. Standartizaciya informacionnyh programmnyh sredstv i programmnyh produktov. - M.: MGUGiK, 2000. - 116 s.

8. Shchennikov A.N. Komplementarnost' slozhnyh vychislenij // Slavyanskij forum. - 2018. - № 2 (20). -S.118-123.

9. Aljahdali S.H., El-Telbany M.E. Software reliability prediction using multi-objective genetic algorithm // IEEE/ACS International Conference on Computer Systems and Applications. - Rabat, 2009. - P. 293-300.

10. Bouchachia A. An Immune Genetic Algorithm for Software Test Data Generation // 7th International Conference on Hybrid Intelligent Systems (HIS 2007). - Kaiserlautern: IEEE, 2007. - P. 84-89.

11. Deep K. et al. A real coded genetic algorithm for solving integer and mixed integer optimization problems // Applied Mathematics and Computation - 2009. - No. 212. - P. 505-518.

12. Fogel D.B. Evolutionary computation: toward a new philosophy of machine intelligence. - John Wiley & Sons, 2006. - 384 p.

13. Holland J.H. Outline of the Logical Theory of Adaptive Systems // Journal of the ACM (JACM). - 1962. -Vol. 9, is. 3. - P. 297-314.

14. HuangS.-J., ChiuN.-H. Optimization of analogy weights by genetic algorithm for software effort estimation // Information and Software Technology. - 2006. - Vol. 48, No. 11. - P. 1034-1045.

15. ISO/IEC 25010:2011 "Systems and software engineering - Systems and software Quality Requirements and Evaluation (SQuaRE) - System and software quality models" [Elektronnyj resurs]. - URL: https://www. iso.org/standard/35733.html (data obrashcheniya: 12.12.2019).

16. Jong K.D. An analysis of the behavior of a class of genetic adaptive systems. PhD thesis. - Ann Arbor: University of Michigan, 1975.

17. Karaboga D., BasturkB. A powerful and efficient algorithm for numerical function optimization: artificial bee colony (ABC) algorithm // Journal of Global Optimization. - 2007. - Vol. 39, is. 3. - P. 459-471.

18. Kumari A.C., Srinivas K., Gupta M.P. Software module clustering using a hyper-heuristic based multi-objective genetic algorithm // 3rd IEEE International Advance Computing Conference (IACC). - IEEE, 2013. - P. 813-818.

19. Luke S. Essentials of Metaheuristics, Lulu, second edition [Elektronnyj resurs]. - URL: http://www.cs.gmu. edu/<-sean/book/metaheuristics (data obrashcheniya: 18.09.2019).

20. Ouni A., Kessentini M., Sahraoui H., Hamdi M.S. The use of development history in software refactoring using a multi-objective evolutionary algorithm // Proceedings of the 15th annual conference on Genetic and evolutionary computation (GECCO '13) / ed. C. Blum. - ACM, 2013. - P. 1461-1468.

21. Rasch G. Probabilistic models for some intelligence and attainment tests. - MESA Press, 5835 S. Kimbark Ave., Chicago, IL 60637.

22. Saha D., Mitra R. S., Basu A. Hardware software partitioning using genetic algorithm // Proceedings Tenth International Conference on VLSI Design. - IEEE, 1997. - P. 155-160.

23. Tsvetkov V.Ya. Resource Method of Information System Life Cycle Estimation // European Journal of Technology and Design. - 2014. - № 2 (4). - P. 86-91.

24. VerhulstP.F. (1838). Notice sur la loi que la population poursuit dans son accroissement. Correspondance mathématique et physique 10:113-121.

i Надоели баннеры? Вы всегда можете отключить рекламу.