Введение к работе
Актуальность. Проблема обеспечения качества программного обеспечения (ПО) сложных информационно-управляющих систем исследовалась рядом российских и зарубежных ученых.
Качество конечного программного продукта, поставляемого на открытый рынок или заказчику, является определяющим фактором для успеха и конкурентоспособности предприятий, занятых в данной сфере. Одним из основополагающих показателей качества системы является надёжность её функционирования. Недостаточная надёжность сложных программных средств может нанести ущерб, значительно превышающий положительный эффект от их применения в таких критических областях как управление движением, технологические процессы, оборона, медицина, финансовые операции, космические технологии. При функционировании таких систем недопустимы программные сбои. Это повлияло на развитие и применение стандартов, методов и инструментов автоматизации процессов программной инженерии, которые могут обеспечить проектирование программных архитектур с заданными высокими показателями надёжности. Одним из эффективных и дорогостоящих подходов обеспечения надёжности программных систем является методология избыточности.
Однако чрезмерно высокие требования к надёжности программного обеспечения для подобных систем принципиально не могут быть выполнены вследствие реальных ограничений на все виды ресурсов: бюджет, время разработки, производительность вычислительных систем.
Поэтому при проектировании надёжного программного обеспечения возникает проблема поиска оптимального варианта архитектуры, соответствующего наибольшей надёжности будущей системы при допустимых затратах на её разработку. Учитывая сложность и размеры современных программных систем, для решения данной задачи требуется развитие модельно-алгоритмического аппарата, позволяющего автоматизировать этап архитектурного проектирования.
Работы в данной области требуют больших затрат, однако современные масштабы программных разработок и внедрения информационно-управляющих систем не оставляют сомнений в экономической целесообразности, своевременности и актуальности поставленных в диссертации задач.
В связи этим, возникает техническая проблема, заключающаяся в разработке системы поддержки принятия решения о выборе эффективных характеристик отказоустойчивой архитектуры проектируемой программной системы. Это требует развития модельно-алгоритмического обеспечения, методов и средств анализа надёжности и трудоемкости сложных программных средств, что является научной проблемой.
Предметом исследования является генетический алгоритм оптимизации отказоустойчивой программной архитектуры.
Объектом исследования является отказоустойчивая архитектура сложных программных систем.
Целью диссертационной работы является повышение эффективности проектирования отказоустойчивых программных систем за счет
многокритериальной оптимизации характеристик архитектуры, при ограничениях на надёжность функционирования системы и трудозатраты на её разработку. Для достижения поставленной цели решались следующие задачи:
проанализировать проблему оценки надёжности программного обеспечения и затрат трудовых ресурсов на её обеспечение;
модифицировать модель надежности архитектуры ПО сложных информационно-управляющих систем для учета введения программной избыточности и трудозатрат на её реализацию;
разработать генетический алгоритм многокритериальной условной оптимизации, позволяющий найти оптимальные характеристики архитектуры ПО с заданными ограничениями по надёжности, трудозатратам на реализацию и среднее время выполнения отдельных архитектурных компонентов;
реализовать систему поддержки принятия решений о выборе оптимальной архитектуры программного обеспечения;
применить реализованную программную систему при решении тестовых и реальных практических задач проектирования архитектуры ПО;
разработать и апробировать методику оценки затрат на реализацию системы с учетом введения программной избыточности и затрат на отдельные этапы жизненного цикла ПО.
Методы исследования. При выполнении работы использовались методы прикладного системного анализа, методы оценки стоимости разработки программного обеспечения, элементы теории вероятностей, теория надёжности программного обеспечения, методология мультиверсионного проектирования отказоустойчивого программного обеспечения, методы эволюционных вычислений, методология разработки программного обеспечения.
Научная новизна работы заключается в следующем:
-
Модифицирована модель надёжности архитектуры программного обеспечения сложных информационно-управляющих систем, отличающаяся учетом введения программной избыточности различными методами, позволяющая рассчитать трудозатраты на реализацию компонентов и среднее время выполнения программных модулей.
-
Предложен новый оператор кроссинговера в генетическом алгоритме, отличающийся от известных учетом связи между генами, и позволяющий задавать вероятность разрыва хромосомы между ними.
-
Впервые разработан генетический алгоритм многокритериальной условной оптимизации, позволяющий осуществлять поиск эффективных характеристик отказоустойчивой программной архитектуры с учетом ограничений на коэффициент готовности системы, трудозатраты на реализацию и среднее время выполнения отдельных модулей.
Теоретическая значимость результатов диссертационного исследования состоит в разработке нового эволюционного алгоритма для многокритериальной условной оптимизации отказоустойчивой программной архитектуры и модифицированного оператора кроссинговера с заданной вероятностью выбора точки разрыва связанных генов.
Результаты, полученные при выполнении диссертационной работы, создают теоретическую основу для разработки моделей, методов и алгоритмов,
направленных на повышение эффективности процессов разработки и модернизации программных систем.
Практическая ценность. Разработанная в результате работы над диссертацией программная система позволяет экономить время и вычислительные ресурсы при выборе оптимального варианта проектируемой программной архитектуры по критериям надёжности и трудоемкости, а также осуществлять поиск оптимальных решений по модернизации архитектур уже существующих программных систем.
Предложен подход к прогнозированию затрат и надёжности проектируемых программных компонентов, с использованием зависимости надёжности функциональных точек и трудозатрат на её достижение.
Разработана методика оценки затрат на все этапы жизненного цикла реализации или модернизации отказоустойчивых программных систем.
Достоверность полученных результатов подтверждается тестированием и оценкой результатов применения разработанной системы в реальных проектах, согласованностью расчетных и экспериментальных данных, корректностью выполненных математических выкладок.
Реализация результатов работы. Разработанные на основе модифицированной модели надёжности архитектуры и нового генетического алгоритма программные системы зарегистрированы в Роспатенте, что делает их доступными широкому кругу специалистов по системному анализу, архитектурному проектированию и планированию разработки сложных информационных систем.
Разработанная программная система внедрена в компании ООО «Сибирские интеграционные системы» и используется при модернизации программного обеспечения информационной системы Пенсионного Фонда Российской Федерации.
Результаты диссертационного исследования, разработанные алгоритмы и программная система используются при проведении занятий по дисциплинам «Алгоритмы и структуры данных», «Управление данными», «Технология автоматизированного проектирования информационных систем» в Красноярском институте железнодорожного транспорта.
Основные положения, выносимые на защиту:
-
Модифицированная модель надёжности архитектуры программного обеспечения позволяет учитывать введение программной избыточности различными методами, трудозатраты на реализацию компонентов, и среднее время выполнения программных модулей.
-
Применение модифицированного оператора кроссинговера с заданной вероятностью разрыва связанных генов, повышает эффективность генетического алгоритма оптимизации.
-
Генетический алгоритм многокритериальной условной оптимизации отказоустойчивой программной архитектуры позволяет осуществлять поиск эффективных характеристик архитектуры программного обеспечения.
Апробация работы. Результаты проведенных исследований докладывались в период 2011-2013 гг. на 9 конференциях различного уровня, в том числе:
- XV научно-техническая конференция КрИЖТ ИрГУПС (Красноярск, 2011);
- Вторая межвузовская научно-практическая конференция «Транспортная
инфраструктура Сибирского региона» (Иркутск, 2011);
VIII Международная заочная научно-практическая конференция «Актуальные вопросы технических, экономических и гуманитарных наук» (Георгиевск, 2012);
IV Международная научная конференция «Актуальные вопросы современной науки» (Санкт-Петербург, 2012);
Международная научно-практическая конференция «Логистические системы в глобальной экономике» (Красноярск, 2013);
XI международной научно-практической конференции «Перспективы развития информационных технологий» (Новосибирск, 2013);
VIII Международная научно-практическая конференция «Техника и технология: новые перспективы развития» (Москва, 2013);
I Международная конференция «Научные аспекты инновационных исследований» (Самара, 2013).
Международная научно-практическая конференция «The Strategies of Modern Science Development» (Елм, США, 2013).
Диссертационная работа в целом обсуждалась на научных семинарах кафедры «Математика и информатика» Красноярского института железнодорожного транспорта (2010-2012 гг.) и кафедры «Системный анализ и исследование операций» Сибирского государственного аэрокосмического университета (2012-2013 гг.).
Публикации. По теме диссертации опубликовано 20 работ, среди которых 6 статей в журналах, входящих в перечень ВАК.
Структура и объем работы. Диссертация состоит из введения, пяти глав, заключения, списка использованной литературы и приложения.