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

кандидата технических наук
Суслин, Антон Александрович
город
Тула
год
2011
специальность ВАК РФ
05.13.11
Диссертация по информатике, вычислительной технике и управлению на тему «Методики и алгоритмы для оценки надежности программного обеспечения систем тренажеров»

Автореферат диссертации по теме "Методики и алгоритмы для оценки надежности программного обеспечения систем тренажеров"

На правах рукописи

005002897

Суслин Антон Александрович

Методики и алгоритмы для оценки надежности программного обеспечения систем тренажеров

Специальность 05.13.11 — Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

АВТОРЕФЕРАТ диссертации на соискание ученой степени кандидата технических наук

- 1 ДЕК 2011

Тула 2011

005002897

Работа выполнена в ФГБОУ ВПО «Тульский государственный университет»

Научный руководитель: кандидат технических наук, доцент

Ивутин Алексей Николаевич

Официальные оппоненты: доктор технических наук, профессор

Есиков Олег Витальевич

доктор технических наук, профессор Привалов Александр Николаевич

Ведущая организация ОАО «Тренажерные системы», г. Москва

Защита состоится « декабря 2011 г. в часов на заседании диссертационного совета Д 212.271.07 при ФГБОУ ВПО «Тульский государственный университет» (300012, г. Тула, пр. Ленина, 92, 9-101).

С диссертацией можно ознакомиться в библиотеке ФГБОУ ВПО «Тульский государственный университет».

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

Автореферат разослан

» ноября 2011 г.

Ученый секретарь диссертационного совета

Ф.А.Данилкин

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

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

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

Надежность входит в группу характеристик модели качества программного обеспечения (ПО), закрепленную в международном стандарте ISOflEC 9126-1:2001 «Software engineering - Product quality - Part 1: Quality model», на уровне с функциональностью, удобством использования, эффективностью, сопровождаемостью и переносимостью. Жесткая конкуренция на рынке разработки ПО заставляет производителей официально подтверждать уровень качества процессов разработки продуктов. Как правило, для таких целей используется модель СММ, согласно которой организации обязаны накапливать статистические данные о процессе разработки программных продуктов и результатах их эксплуатации, а также использовать эти данные для повышения качества ПО. Однако до сих пор общепринятой методики их сбора, обработки и анализа не существует. Таким образом, задача оценки надежности ПО, является существенной частью общей проблемы оценки его качества.

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

Широко распространенным инструментом повышения надежности ПО является его тестирование, однако, несмотря на большое количество высококачественных методик его реализации, даже крупномасштабное тестирование выявляет не более 75% всех ошибок в проекте. Более того, тестирование узкоспециализированного ПО ТС зачастую является весьма затруднительным в силу указанных выше причин, определяющих требования к надежности функционирования.

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

Областью исследований является оценка качества программных систем, объектом исследования — программное обеспечение, предметом исследования — методики и алгоритмы оценки его надежности.

Целью диссертационной работы является повышение точности оценки надежности ПО ТС на основе статистической обработки характеристик программных систем.

Для достижения указанной цели были решены следующие задачи:

- исследование существующих методик оценки надежности ПО ТС, их классификация и оценка возможности применения по отношению к цели диссертационной работы;

- исследование характеристик программных проектов - метрик и возможности их использования для оценки надежности ПО ТС;

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

- разработка методики оценки надежности ПО ТС, основанной на выбранном статистическом методе;

- разработка алгоритмов применения методики оценки надежности ПО ТС, их реализация в виде программного комплекса;

- экспериментальная проверка работоспособности и эффективности разработанной методики с помощью реализованного программного комплекса.

На защиту выносятся следующие положения диссертации:

- модернизированный алгоритм установления взаимосвязей показателей ПО для формирования структуры модели байесовских сетей доверия (БСД);

- методика построения статистической модели взаимосвязей показателей ПО ТС на основе БСД и обучения её на базе экспериментальных данных;

- методика оценки надежности ПО ТС на основании полученной статистической модели взаимосвязи показателей.

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

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

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

Основные результаты, определяющие научную новизну:

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

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

взаимосвязей метрик;

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

Достоверность полученных результатов подтверждена экспериментальными исследованиями с применением разработанного

программного комплекса.

Практическая ценность выполненных исследований определяется

следующими результатами:

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

статистическую модель;

- разработан алгоритм, реализующий предложенную методику и позволяющий эффективно контролировать текущий уровень надежности ПО, а

б

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

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

- определены требования и рекомендации к организации процесса разработки с целью повышения уровня надежности и получения наиболее объективной картины уровня надежности ПО ТС;

- разработанные методики и алгоритмы реализованы в виде программного комплекса для оценки надежности ПО ТС.

Реализация результатов работы. Разработанная в диссертации методика легла в основу программного комплекса для сбора и анализа метрик и оценки надежности ПО. Программный комплекс и методика внедрены в процесс разработки специализированного ПО предприятий ОАО «Тренажерные системы», ООО «Бревис», ООО «Лион Софт», ООО «Деловые системы», ООО «Алгоритм». Акты внедрения прилагаются к диссертации.

Результаты диссертационного исследования прошли апробацию при выполнении исследований «Разработка методологии проектирования механотронных систем тренажеров подвижных наземных объектов», выполняемых в рамках ФЦП «Научные и научно-педагогические кадры инновационной России на 2009 - 2013 годы», государственный контракт номер 16.740.11.0013.

Результаты исследования внедрены в учебный процесс кафедры ЭВМ при реализации курсов «Программирование на языке высокого уровня», «Технологии программирования» и дипломном проектировании при подготовке бакалавров по специальности 230100 «Вычислительные машины, комплексы, системы и сети»; курсов «Языки программирования», «Проектирование системного программного обеспечения ЭВМ и вычислительных сетей» и дипломном проектировании при подготовке инженеров по специальности 090105 «Комплексное обеспечение информационной безопасности автоматизированных систем».

Апробация работы. Основные положения работы докладывались на: Всероссийской научной конференции молодых ученых «Наука, технологии, инновации» (г. Новосибирск, НГТУ, 2006); Всероссийской научно-технической конференции «Интеллектуальные и информационные системы» (г. Тула, ТулГУ, 2007); XIV конференции магистров (г. Тула, ТулГУ, 2008); Международной научной конференции «Перспективы развития телекоммуникационных систем и информационные технологии» (г. Санкт-Петербург, СПбГПУ, 2008); 45-й научно-практической конференции профессорско-преподавательского состава ТулГУ «Информационные технологии» (г. Тула, ТулГУ, 2009); VII Всероссийской научно-практической конференции студентов, аспирантов и молодых ученых «Молодежь и современные информационные технологии» (г. Томск, ТПУ, 2009); Всероссийской научно-технической конференции «Интеллектуальные и

информационные системы» (г. Тула, ТулГУ, 2009); 46-й научно-практической конференции профессорско-преподавательского состава 1ул1 У

«Информационные технологии» (г. Тула, ТулГУ, 2010); Международной молодежной конференции «XXXVI Гагаринские чтения» (г. Москва, 2010); Международной научно-технической интернет-конференции «Информационные системы и технологии» (г. Орёл, 2011).

Публикации. По теме диссертации опубликовано 13 работ, в т.ч. 3 статьи в изданиях, включенных в Перечень ВАК, 5 статей в научных периодических изданиях, 5 статей в сборниках трудов конференций различного

уровня. .

Структура и объем работы. Работа состоит из введения, 4 глав,

заключения, списка литературы из 114 наименований и изложена на 149 страницах машинописного текста, включает 35 рисунков, 34 таблиц и 2 приложения.

СОДЕРЖАНИЕ РАБОТЫ

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

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

В настоящее время проблеме оценки надежности ПО посвящено много работ среди которых наиболее известными являются исследования А.П. Ершова,' А.О. Ханджян, В.А. Лисса, В.В. Шуракова, В.В. Липаева, А.Ф. Кулакова, Г. Майерса, В. Базили, С. Джонса, М. Ховарда, Д. Лебланка, Э. Кларка мл., О. Грамберга и др.

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

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

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

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

Делается вывод, что задача разработки методики оценки надежности ПО является актуальной, а для её решения наиболее целесообразно использовать такие статистические модели, как байесовские сети доверия, описанные в работах Дж. Перла и развитые в работах A.JI. Тулупьева. Применение этих моделей позволит значительно повысить точность оценки надежности ПО ТС и снизить субъективность прогнозирования.

Вторая глава посвящена описанию и исследованию математического аппарата модели вероятностных взаимосвязей - БСД и обоснованию применения БСД в области оценки надежности ПО ТС.

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

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

P(XhX2,...,X„) = Y\P{Xi I parents{X,)), 1=1

где X( - вероятность события в вершине i; parents(Xi) - множество вершин-

предков вершины Xi.

На основе проведенного анализа установлено, что главными преимуществами применения БСД перед классическими моделями метрик являются:

- возможность комбинирования объективных экспериментальных данных с субъективными результатами экспертных методик;

- возможность простой формализации сложных причинно-следственных

отношений;

- прогнозирование изменений состояния системы при изменении значений показателей отдельных компонентов;

- возможность проведения анализа по данным, доступным как

полностью, так и частично.

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

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

/=1

где п - количество вершин (эквивалентно количеству переменных показателей);

С' - количество сочетаний из n по i.

В работе отмечено, что уже при п = 7 количество нециклических моделей для перебора превышает 107. Однако для получения объективной картины такого сложного процесса, как надежность ПО, требуется анализ значительно большего количества показателей.

Предложено для оценки степени взаимосвязанности пар переменных во множестве показателей надежности ПО ТС использовать понятие взаимной информации (в зарубежных источниках - mutual information, MI). Для двух случайных переменных X и Y с совместной функцией распределения р(х, у) взаимная информация MI(X, Y) - это относительная этропия, фактически аналог корреляции, но для информационных показателей:

MI(XJ) = ZZpMIOE-£^ = H(Y)-H(Y\X) = H(X)-H(X\Y).

X у Р\Х)Р(У)

Для случая, когда оцениваемые показатели (вершины графа БСД) являются независимыми друг от друга, М1 = 0, так как:

р(х,у) = р(х)-р(у), ^

р(х,у)

р{х)-р(у)

Р(х)-р(у)_

= 1ОЕ(1) = 0.

_Р(Х)-Р(У) J

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

Для построения графа БСД по экспериментальным данным предложен итерационный алгоритм, основанный на вычислении взаимной информации и минимизации информационного критерия Акаике (А1С). В решаемой задаче источником данных является некоторая функция распределения />(/)|Ло), где £) = - набор данных, Л - гипотеза вероятностного происхождения

данных. Отличия между р(р |/*о) и распределением модели р(Е>|й) определяются по мере Кулбака-Лебнера, которая всегда неотрицательна и равна нулю лишь при полном совпадении двух распределений.

В диссертации указано, что в общем виде задача установления структуры БСД задаётся с помощью множества обучающих данных

£> = {£/ь...,</„}, = где п - количество наблюдений,

состоящих из N переменных, каждая ¡-я переменная имеет А^ = {0,1,...,а^-1} состояний, каждая структура geG БСД представляется N множествами предков то есть для каждой вершины ] =

[у®,...,^^!^} (петли в графе отсутствуют). Тогда А1С структуры geG при заданной последовательности из п наблюдений

х" - с!^..Ап, вычисляется следующим образом:

МО')

где - количество независимых условных вероятностей в сетевой структуре

g, Н^,хп) - эмпирическая энтропия, - А1С 3-й вершины, ¿(у, я) -

количество независимых условных вероятностей >й вершины, а ф(у') с {1,...,у-1,7+ - это такое множество, что Я^ = еф^}.

Эмпирическая энтропия j-й вершины вычисляется по формуле:

n(s,j,g) = = s\n[q,s,j,g]= £/(*,• = q,AJ) = 4

/=1 '=' где = означает A^W^.V* еф(Л; функция /(£) = 1, когда

предикат E - истинный, в противном случае 1(Е) = 0.

Для того чтобы выбрать подходящую структуру, не прибегая к полному перебору в связи с его трудоёмкостью, предложено воспользоваться модифицированным алгоритмом построения БСД с использованием MI и AIC (в оригинальном виде предложенным А.Н. Тереньтевым и Б.И. Бидюком, которые использовали байесовский информационный критерий), исходя из минимизации значения функции L(g,x"). В результате получен алгоритм установления взаимосвязей показателей ПО ТС для формирования структуры модели БСД, включающий следующие операции.

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

значительно искажают результаты.

Шаг 1. Для всех пар вершин необходимо вычислить величину взаимной информации MI, поместив результаты в упорядоченное по убыванию множество.

Шаг 2. Из полученного множества выбрать первые два максимальных значения М1(хщ У"2) и М1{хщ ,хщ). Построить множество моделей G вида: G={{¡Щ ->• т2\т3 «4),{Щ -> т2;тъ -е- т4),(щ <-т2;т3 <-т4),

(От1 <-ОТ2;/я3 ->m4),(mi «2;/я3 т2\>Щ пц),

(щ т2,тг <-w4),(mi т2;1Щ щ)},

где стрелка показывает порядок зависимости «предок» - «потомок» в БСД, отсутствие стрелки - отсутствие зависимости.

Шаг 3. В параметре g* сохраняется структура из G с минимальным

значением L(g,xn) на экспериментальной выборке.

Шаг 4. Для следующей пары М1{хщ ,хт&) строится новое множество

вида G совместно с сохраненной структурой g*:

G = {{g*;m5 -»ffi6),(g*;m5 m6),(g*\m5 m6)}.

Выполнение алгоритма повторяется, начиная с шага 2 для всех

N(N~1) элементов множества, полученного на шаге 1. Следовательно, 2 2 применение данного алгоритма является задачей сложности 0(N ), в отличие от задачи полного перебора нециклических структур.

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

Указано, что распространение свидетельства, описанного статистическим распределением, принципиально не отличается от заданного табличным образом. Таким образом, при формировании модели на основе БСД возможно использовать существующие статистические модели надежности ПО.

Третья глава посвящена разработке методик формирования модели БСД на основании полученных экспериментальных данных и применения БСД для решения задачи оценки надежности ПО ТС.

Полученная в диссертации методика оценки надежности ПО ТС на основании статистической модели взаимосвязи показателей представлена общим алгоритмом её выполнения, в котором можно выделить две в общем случае независимые части: подготовительную, изображенную на рисунке 1, и основную, показанную на рисунке 2.

Рисунок 1 - Подготовительная часть алгоритма выполнения разработанной методики оценки надежности ПО ТС

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

- для данного программного продукта имеется достаточная для формирования множества О история разработки, то есть осуществляется хранение версий программного кода и ведется история обнаружения и устранения дефектов в разрезе версий;

- история разработки отсутствует или недостаточна для формирования обучающей выборки О; обученной БСД по приложению такого типа нет.

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

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

о наблюдаемых

Начало основной части алгоритма

Получение текущего значения метрик Мобозр

База данных истории ; метрик METRICS

База данных структуры ЕСД BTN TREE

Установление значений свидетельств маргинальных • вершин

ЗГ

Пропагация условных ^ вероятностей по. БСД.'

, Требуется ~ - отбор у -

Отбор участков для ^детальной оценки

т

"Да

Представление отчета о значениях!

подсчитанных вероятностей | разработчику Мнадежн |

Конец алгоритма X—Нег

-Необходимо -

уточнение ' >да1/ показателей по "Участкам кода??'

Запрос необходимости отбора участков /

I......

Выделение участков программного кода указанной детализации

т

Запрос урояня необходимой . детализации Уд

7

Рисунок 2 - Основная часть алгоритма разработанной методики оценки надежности ПО ТС

Подготовительная часть алгоритма описывается разработанной методикой построения статистической модели взаимосвязей показателей ПО и реализуется следующими укрупненными этапами:

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

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

3. Формирование экспериментальной выборки значений показателей производится в ходе периодических наблюдений. Экспериментальные проверки показали минимальный порог эффективности дам методики - 100

наблюдений, рекомендуемый - от 500.

4. Формирование структуры БСД с использованием модифицированного

алгоритма на основе М1 и А1С.

5. Корректировка структуры БСД экспертным методом может потребоваться в случаях недостаточной представительности выборки.

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

В диссертации отмечено, что выполнение подготовительной части алгоритма опускается в случае, когда существует предварительно обученная БСД по проекту с аналогичными характеристиками.

Предложенный алгоритм для наполнения множества О выделяет три основных группы метрик:

- показатели, оцениваемые в автоматическом режиме на базе программного кода (большинство метрик размера и сложности и др.);

- показатели, получаемые в результате проведения тестирования и эксплуатации (большинство метрик качества, сопровождения, тестирования);

- показатели, требующие анкетирования разработчиков (технологические метрики, метрики персонала).

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

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

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

1. Вычисляется шаг интервалам = Л/7 где N - суммарное количество исходов в выборке, к - необходимое количество интервалов.

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

3. Отмечается граница интервала, повторяется шаг 2 до конца множества исходов.

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

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

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

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

Четвертая глава посвящена описанию программной реализации методики, постановке эксперимента по её применению, анализу его результатов.

Функциональная схема программной реализации методики приведена на рисунке 3.

Сбор и подсчет используемых метрик

Сбор метрик программного кода

Сбор метрик эксплуатации и тестирования

Сбор анкетируемых показателей_

Запись и чтение истории метрик

БД истории метрик (экспериментальная выборка)

Функционирование БСД

Обработка данных БСД (пропагация свидетельств)

Вывод отчета разработчику

Построение БСД

Анализ на базе MI и _AIC_

ерация структуры БСД

Рисунок 3 - Функциональная схема программной реализации методики оценки

надежности ПО ТС

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

1. Пакет Scientific Toolworks Understand Analyst 2.0 для сбора используемых метрик в части автоматизированного анализа программного кода.

2. Разработанное в рамках исследования приложение Barel на базе программной платформы «1С: Предприятие 8.2» для сбора метрик эксплуатации и тестирования, анкетируемых показателей, а также хранения и подсчета всех метрик, анализа информационных взаимосвязей с использованием алгоритма MI и AIC для генерации БСД и вывода отчетов разработчику.

3. Приложение Hugin Expert Lite 8.5 для обработки данных и визуализации БСД.

Средствами файлового обмена налажено взаимодействие между приложениями в рамках комплекса.

Постановка эксперимента по проверке методики осуществлялась в ходе доработки ПО механотронной системы тренажеров подвижных наземных

объектов ОАО «Тренажерные системы». В течение 14 месяцев от 3 до 7 разработчиков проводили доработку программного продукта, созданного на языке С++, одновременно осуществлялось тестирование продукта, и опытная эксплуатация с ежедневными отчетами о сбоях.

В ходе разработки происходила фиксация следующих показателей: среднее ежедневно добавляемое количество строк кода (БЬОС) - фиксировались непустые строки, кроме комментариев; средняя цикломатическая сложность модуля (СС); общее количество разработчиков (ТО); количество программных модулей (ис); ежедневное количество дефектов, обнаруженных при тестировании (ТИС) - тестирование проводилось силами разработчиков параллельно с бета-тестированием в ходе опытной эксплуатации; среднее количество функций (РРС); общее время эксплуатации продукта (В011); среднее время до сбоя (МПТ); плотность ошибок (ББМ) учитывала количество известных разработчикам, но не исправленных дефектов на тысячу строк кода; количество ежедневных сообщений о сбоях (А1ГО) фиксировалось по сумме отмеченных за день в отчетах пользователей и зафиксированных в результате тестирования дефектах.

Таким образом, по зафиксированным результатам мощность обучающего множества О составила 106 наблюдений с фиксацией 10 показателей в каждом наблюдении. В результате применения алгоритма, основанного на значениях взаимной информации и А1С, получена структура БСД и условные вероятности, рассчитанные для всех вершин по проекту в целом, в соответствии с рисунком 4.

В процессе формирования сети понадобилось применение 44 итераций алгоритма на базе М1 и А1С (в ходе которых происходит проверка менее 300 нециклических структур), в то время как при полном переборе количество

таких структур для обработки превысило бы 4-10 . При этом при сравнении с

сетью, полученной полным перебором, структурная разница (учитывает лишние, отсутствующие и реверсированные дуги) не превысила 5 единиц, что является приемлемой ошибкой для БСД из 10 вершин.

В качестве индикаторов надежности продукта были выбраны метрики МТП7, О ОМ и АШ, значения которых были также включены в обучающее множество Б.

Распространение свидетельств, полученных по отдельным программным модулям, позволило получить данные об участках продукта с наихудшими метриками - индикаторами надежности. Показатели данных метрик в ходе дальнейшей разработки проекта (7 месяцев) показали отклонение из наиболее вероятных доверительных интервалов для- метрики АШ не более 23%, для метрики ОЭМ - не более 15%, в соответствии с рисунком 5, что показало повышение точности оценок по сравнению с регрессионной моделью Акиямы на 73%, моделью Липова - на 53%, экспоненциальные модели не нашли экспериментального подтверждения.

60- . ; э

: д

11 1 40 ! В

«Л

-111

>5Пк'а

51

уЯР*

Щ Щ Ч ^Наблюдения

«МЯМН

. и*

V К

Наблюдения 151 201

101 151 201 1 51 101

а) 6)

Рисунок 5 - Наиболее вероятные доверительные границы в ходе моделирования и реальные состояния показателей при дальнейшей разработке проекта метрик:

а) АШ; б) ПОМ

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

Таблица 1 - Условные доверительные оценки метрик ИЬОС и ГОМ,

Количество разработчиков ТО Ежедневное кол-во добавленных строк кода ОШС Плотность ошибок ОИМ

до 50 от 51 до 100 от 101 до 200 от 201 до 300 от 301 До 20 От 21 до 40 Ог41

3 0.559 0.3244 0.1161 - - 0.6091 0.3094 0.0814

4 _ 0.25 0.3629 0.2330 0.1531 0.2758 0.4948 0.2294

7 - 0.0357 0.2381 0.3214 0.4048 0.2507 0.4438 0.3055

Полученные данные в соответствии с таблицей 1 показывают, что, несмотря на повышенную производительность команды при включении в неё

новых разработчиков, вероятность попадания в интервал, соответствующий большей плотности ошибок, возрастает. В ходе дальнейшего анализа процесса разработки бьши сделаны выводы, что это связано в первую очередь с недостатками проектирования продукта: 73% вновь полученных дефектов при увеличении размера команды лежит в плоскости организации межинтерфейсных взаимодействий. На основании полученных данных был проведен ряд мероприятий для повышения надежности ПО ТС, разрабатываемых организацией ОАО «Тренажерные системы» продуктов: в ходе предварительного проектирования большое внимание уделяется разработке межмодульных интерфейсов, их стандартизации и планированию распределения нагрузки между разработчиками.

ОСНОВНЫЕ РЕЗУЛЬТАТЫ РАБОТЫ

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

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

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

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

5. Разработан алгоритм выполнения описанной методики оценки надежности ПО ТС, позволяющий осуществить её программную реализацию.

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

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

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

8. Осуществлено внедрение результатов исследования в учебный процесс кафедры ЭВМ ТулГУ, позволившее повысить качество усвоения материала и осуществить приобретение студентами новых знаний в области оценки качества программного обеспечения, относящейся к приоритетному направлению развития науки, технологий и техники в Российской Федерации «Информационно-телекоммуникационные системы».

ОСНОВНОЕ СОДЕРЖАНИЕ ДИССЕРТАЦИИ ОПУБЛИКОВАНО В РАБОТАХ:

1. Суслин A.A. Реализация системы приема цифровых платежей за телекоммуникационные услуги // Сборник материалов Всероссийской научной конференции молодых ученых «НАУКА, ТЕХНОЛОГИИ, ИННОВАЦИИ» в 7 частях - Новосибирск: издательство НГТУ, 2006.-Ч. 1, стр. 168-170.

2. Суслин A.A., Ивутин А.Н. Реализация криптографической защиты для незащищенных сетевых протоколов // Сборник материалов Всероссийской научно-технической конференции «Интеллектуальные и информационные системы» - Тула: издательство ТулГУ, 2007. - стр. 127-128.

3. Суслин A.A., Ивутин А.Н. Подход к оценке надежности ПО на основе сетей Байеса // Сборник научных трудов Международной конференции «Перспективы развития телекоммуникационных систем и информационные технологии» - Санкт-Петербург: 2008. - стр. 222-227.

4. Суслин A.A. Преимущества применения Байесовских сетей доверия дая анализа надежности программного обеспечения перед классическими методами метрик // Сборник трудов VII Всероссийской научно-практической конференции студентов, аспирантов и молодых ученых - Томск, 2009. - стр. 203-205.

5. Суслин A.A., Карпов B.C., Ивутин А.Н. Опыт разработки и внедрения комплексной системы криптографической защиты данных // Сборник научных статей «Вычислительная техника и информационные технологии», Вып. 1 -Тула: издательство ТулГУ, 2009. - стр. 24-35.

6. Суслин A.A., Ивутин А.Н. Проблема универсальности метрик современного программного обеспечения И Сборник научных статей «Вычислительная техника и информационные технологии», Вып. 1 - Тула: издательство ТулГУ, 2009. - стр. 129-141.

7. Суслин A.A., Карпов B.C., Ивутин А.Н. Подход к реализации методики оцеики надежности ПО на основе комплексных метрик // Известия ТулГУ. Технические науки. Вып. 4. Ч. 1. - Тула, 2009. - стр.. 116125.

8. Суслин A.A. Экспериментальное исследование взаимосвязи значений метрик и показателей надежности программного обеспечения // Научный журнал «Молодой ученый», № 6 (17) - г. Чита, 2010. - стр. 67-71.

Iß h

9. Суслин A.A., Ивутин A.H. Надежность как аспект качества разработки программного обеспечения и применимость статистических методов для её оценки // Сборник научных статей «Вычислительная техника и информационные технологии», Вып. 2 - Тула: издательство ТулГУ, 2010. - стр. 32-45.

10. Суслин A.A., Ивутин А.Н. О некоторых применениях статистических распределений в оценке надежности программного обеспечения // Известия ТулГУ. Технические науки. Вып. 2. - Тула, 2011. -стр. 568-575.

11. Суслин A.A., Ивутин А.Н. Оценка надежности программного обеспечения с использованием связывающей функции // Сборник материалов международной научно-технической интернет-конференции «Информационные системы и технологии» - Орёл: изд-во ФГОУ ВПО «Госуниверситет-УНПК», 2011.-стр. 84-88.

12. Суслин A.A. Статистические методы в моделировании надежности программного обеспечения // Научный журнал «Молодой ученый», №4 (27) - г. Чита, 2011.-стр. 99-103.

13. Суслин A.A., Ивутин А.Н. Построение Байесовской сети доверия для оценки надежности программного обеспечение на основании экспериментальных данных // Известия ТулГУ. Технические науки. Вып. 5, ч. 3. - Тула, 2011. - стр. 192-197.

Изд. лиц. ЛР №0203ООот 12.02.97. Подписано в печать18.11.2011 г. Формат бумаги 60x84 7i6 .Бумага офсетная. Усл. печ.л. 1,1 Уч.-изд.л.1,0 Тираж 100 экз. Заказ 055 Тульский государственный университет 300012, г. Тула, пр. Ленина, 92 Отпечатано в Издательстве ТулГУ 300012, г. Тула, пр. Ленина, 95

Оглавление автор диссертации — кандидата технических наук Суслин, Антон Александрович

ВВЕДЕНИЕ

1 АНАЛИЗ МЕТОДОВ ОЦЕНКИ НАДЕЖНОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

1.1 Надежность как аспект качества разработки ПО

1.2 Метрики программного обеспечения как инструмент исследования надежности

1.3 Обзор моделей надежности программного обеспечения

1.4 Основные недостатки существующих моделей надежности ПО

1.5 Выбор математического аппарата для решения задачи оценки надежности ПО ТС 49 Выводы по главе

2 МАТЕМАТИЧЕСКИЙ АППАРАТ ОЦЕНКИ НАДЕЖНОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ С ИСПОЛЬЗОВАНИЕМ БАЙЕСОВСКИХ СЕТЕЙ ДОВЕРИЯ

2.1 Основные положения байесовского подхода к статистическому моделированию

2.2 Генерация структуры БСД по экспериментальным данным.

2.3 Пропагация (распространение) свидетельств в модели БСД

2.4 Возможность использования существующих моделей надежности ПО совместно с предложенным методом 81 Выводы по главе

3 МЕТОДИКА ОЦЕНКИ НАДЕЖНОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ СИСТЕМ ТРЕНАЖЕРОВ С ИСПОЛЬЗОВАНИЕМ БАЙЕСОВСКИХ СЕТЕЙ ДОВЕРИЯ

3.1 Общая схема работы методики оценки надежности ПО с использованием БСД

3.2 Разработка алгоритма методики оценки надежности ПО с использованием БСД

3.3 Методика формирования массива статистических данных программного проекта

3.4 Особенности применения методики для различных видов ПО

3.5 Сравнение разработанной методики с существующими моделями надежности ПО „ 96 Выводы по главе

4 ЭКСПЕРИМЕНТАЛЬНОЕ ИССЛЕДОВАНИЕ РАЗРАБОТАННОЙ МЕТОДИКИ ОЦЕНКИ НАДЕЖНОСТИ ПО ТС

4.1 Разработка программного комплекса для постановки эксперимента

4.2 Описание объекта эксперимента

4.3 Сбор статистической информации по исследуемому программному продукту

4.4 Построение структуры БСД по экспериментальным данным

4.5 Проверка работоспособности и эффективности разработанной методики

4.6 Дополнительная апробация результатов работы 119 Выводы по главе 4 120 ЗАКЛЮЧЕНИЕ 121 СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 123 СПИСОК ИСПОЛЬЗУЕМЫХ СОКРАЩЕНИЙ 133 ПРИЛОЖЕНИЯ

Введение 2011 год, диссертация по информатике, вычислительной технике и управлению, Суслин, Антон Александрович

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

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

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

Надежность входит в группу характеристик модели качества программного обеспечения (ПО), закрепленную в международном стандарте ISO/IEC 9126-1:2001 «Software engineering - Product quality - Part 1: Quality model», на уровне с функциональностью, удобством использования, эффективностью, сопровождаемостью и переносимостью. Жесткая конкуренция на рынке разработки ПО заставляет производителей официально подтверждать уровень качества процессов разработки продуктов. Как правило, для таких целей используется модель СММ, согласно которой организации обязаны накапливать статистические данные о процессе разработки программных продуктов и результатах их эксплуатации, а также использовать эти данные для повышения качества ПО. Однако до сих пор общепринятой методики их сбора, обработки и анализа не существует. Таким образом, задача оценки надежности ПО, является существенной частью общей проблемы оценки его качества.

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

Широко распространенным инструментом повышения надежности ПО является его тестирование, однако, несмотря на большое количество высококачественных методик его реализации, даже крупномасштабное тестирование выявляет не более 75% всех ошибок в проекте. Более того, 5 тестирование узкоспециализированного ПО ТС зачастую является весьма затруднительным в силу указанных выше причин, определяющих требования к надежности функционирования.

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

Областью исследований является оценка качества программных систем, объектом исследования — программное обеспечение, предметом исследования — методики и алгоритмы оценки его надежности.

Целью диссертационной работы является повышение точности оценки надежности ПО ТС на основе статистической обработки характеристик программных систем.

Для достижения указанной цели были решены следующие задачи:

- исследование существующих методик оценки надежности ПО ТС, их классификация и оценка возможности применения по отношению к цели диссертационной работы;

- исследование характеристик программных проектов - метрик и возможности их использования для оценки надежности ПО ТС;

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

- разработка методики оценки надежности ПО ТС, основанной на выбранном статистическом методе;

- разработка алгоритмов применения методики оценки надежности ПО ТС, их реализация в виде программного комплекса;

- экспериментальная проверка работоспособности и эффективности разработанной методики с помощью реализованного программного комплекса.

На защиту выносятся следующие положения диссертации: модернизированный алгоритм установления взаимосвязей показателей ПО для формирования структуры модели байесовских сетей доверия (БСД); методика построения статистической модели взаимосвязей показателей ПО ТС на основе БСД и обучения её на базе экспериментальных данных;

- методика оценки надежности ПО ТС на основании полученной статистической модели взаимосвязи показателей.

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

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

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

Основные результаты, определяющие научную новизну:

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

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

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

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

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

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

- определены требования и рекомендации к организации процесса разработки с целью повышения уровня надежности и получения наиболее объективной картины уровня надежности ПО ТС

Реализация результатов работы. Разработанная в диссертации методика легла в основу программного комплекса для сбора и анализа метрик и оценки надежности ПО. Программный комплекс и методика внедрены в процесс разработки специализированного ПО предприятий ОАО «Тренажерные системы», ООО «Бревис», ООО «ЛионСофт», ООО «Деловые системы», ООО «Алгоритм». Акты внедрения прилагаются к диссертации.

Результаты диссертационного исследования прошли апробацию при выполнении исследований «Разработка методологии проектирования механотронных систем тренажеров подвижных наземных объектов», выполняемых в рамках ФЦП «Научные и научно-педагогические кадры инновационной России на 2009 - 2013 годы», государственный контракт номер 16.740.11.0013.

Разработанная методика внедрена в учебный процесс кафедры ЭВМ при реализации курсов «Программирование на языке высокого уровня», «Технологии программирования» и дипломном проектировании при подготовке бакалавров по специальности 230100 «Вычислительные машины, комплексы, системы и сети»; курсов «Языки программирования», «Проектирование системного программного обеспечения ЭВМ и вычислительных сетей» и дипломном проектировании при подготовке инженеров по специальности 090105 «Комплексное обеспечение информационной безопасности автоматизированных систем».

Апробация работы. Основные положения работы докладывались на:

Всероссийской научной конференции молодых ученых «Наука, технологии, инновации» (г. Новосибирск, НГТУ, 2006); Всероссийской научнотехнической конференции «Интеллектуальные и информационные системы» г. Тула, ТулГУ, 2007); XIV конференции магистров (г. Тула, ТулГУ, 2008);

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

Петербург, СПбГПУ, 2008); 45-й научно-практической конференции профессорско-преподавательского состава ТулГУ «Информационные 9 технологии» (г. Тула, ТулГУ, 2009); VII Всероссийской научно-практической конференции студентов, аспирантов и молодых ученых «Молодежь и современные информационные технологии» (г. Томск, ТПУ, 2009); Всероссийской научно-технической конференции «Интеллектуальные и информационные системы» (г. Тула, ТулГУ, 2009); 46-й научно-практической конференции профессорско-преподавательского состава ТулГУ «Информационные технологии» (г. Тула, ТулГУ, 2010); Международной молодежной конференции «XXXVI Гагаринские чтения» (г. Москва, 2010); Международной научно-технической интернет-конференции «Информационные системы и технологии» (г. Орёл, 2011).

Публикации. По теме диссертации опубликовано 13 работ, в т.ч. 3 статьи в изданиях, включенных в Перечень ВАК, 5 статей в научных периодических изданиях, 5 работ в сборниках трудов конференций различного уровня.

Структура и объем работы. Работа состоит из введения, 4 глав, заключения, списка литературы из 114 наименований и изложена на 149 страницах машинописного текста, включает 35 рисунков, 34 таблицы и 2 приложения.

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

Вторая глава посвящена описанию и исследованию математического аппарата модели вероятностных взаимосвязей - байесовских сетей доверия (БСД) и обоснованию применения БСД в области оценки надежности ПО ТС.

Третья глава посвящена разработке методики применения описанного математического аппарата БСД для решения задачи оценки надежности ПО ТС.

Четвертая глава посвящена постановке эксперимента по проверке работоспособности и эффективности разработанной методики оценки

10 надежности ПО ТС, описанию внедрения результатов исследования в производственный процесс организаций-разработчиков ПО.

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

Заключение диссертация на тему "Методики и алгоритмы для оценки надежности программного обеспечения систем тренажеров"

Выводы по главе 4

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

2. Создан программный комплекс, реализующий разработанную методику, состоящий из 3 программных компонент. Ядром комплекса является приложение Ваге1, позволяющее собирать, обрабатывать, хранить метрики различных видов и организующее межкомпонентное взаимодействие в рамках программного комплекса.

3. С помощью разработанного программного комплекса проведен эксперимент, подтвердивший работоспособность и эффективность разработанной методики.

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

Заключение

В заключении отметим основные результаты, полученные в ходе диссертационного исследования:

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

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

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

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

5. Разработан алгоритм выполнения описанной методики оценки надежности ПО ТС, позволяющий осуществить её программную реализацию.

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

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

8. Осуществлено внедрение результатов исследования в учебный процесс кафедры ЭВМ ТулГУ, позволившее повысить качество усвоения материала и осуществить приобретение студентами новых знаний в области оценки качества программного обеспечения, относящейся к приоритетному направлению развития науки, технологий и техники в Российской Федерации «Информационно-телекоммуникационные системы».

Библиография Суслин, Антон Александрович, диссертация по теме Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

1. Межгосударственный стандарт ГОСТ 27.002-89. НАДЕЖНОСТЬ В ТЕХНИКЕ. ОСНОВНЫЕ ПОНЯТИЯ. Термины и определения.

2. Международный стандарт ISO/IEC 9126-1:2001 «Software engineering Product quality - Part 1: Quality model».

3. Международный стандарт ISO/IEC FDIS 25010 «Systems and software engineering ~ Systems and software Quality Requirements and Evaluation (SQuaRE) — System and software quality models».

4. Андерсон P. Доказательство правильности программ. M.: Мир, 1982.

5. Бидюк П.И., Терентьев А.Н., Гасанов А.С. Построение и методы обучения Байесовских сетей // Кибернетика и системный анализ. 2005. № 4.

6. Боэм Б. У. Инженерное проектирование программного обеспечения. М.: Радио и связь, 1985.

7. Габец А., Гончаров Д., Козырев Д.ДСухлевский Д., Радченко М. Профессиональная разработка в системе 1С:Предприятие 8. М.: 1С-Паблишинг, 2006.

8. Губинский А.И. Эффективность и качество функционирования эргатических систем. JI.: Наука, 1982.

9. Дружинин Г.В. Учет свойств человека в моделях технологий. М. : Наука/Интерпериодика, 2000.

10. Евстигнеев В.А. Применение теории графов в программировании. М.: Наука, 1985.

11. Емеличев В. А., Мельников О. И., Сарванов В. И., Тышкевич Р. И. Лекции по теории графов. М.: Наука. 1990.

12. Зараковский Г.М., Павлов В.В. Закономерности функционирования эргатических систем. М.: Радио и связь, 1987. стр. 232.

13. Карповский Е. Я., Сагач В. В., Чернецкий А. А. Надежность алгоритмов управления. Киев : Техника, 1983.

14. Карповский Е. Я., Чижов С. А. Надежность программной продукции. Киев : Тэхника, 1990.

15. Коваленко И.Н., Филиппова A.A. Теория вероятностей и математическая статистика : Учеб. пособие. 2-е изд., перераб. и доп. М. : Высш. Школа, 1982.

16. Кувшинов В.В., Логвинов С.С., Мальцев В. А. Физико-математическое моделирование и оценка качества функционирование военных эргатических систем «оператор тренажер ПТРК». Тула : Изд-во ТулГУ, 2004. Стр. 272.

17. Кулаков А. Ф. Оценка качества программ ЭВМ. Киев : Техшка,1984.

18. Майерс Г. Надежность программного обеспечения. М.: Мир, 1980.

19. Макконнелл С. Совершенный код. Мастер-класс / Пер. с англ. М. : Издательско-торговый дом «Русская Редакция» ; СПб. : Питер, 2005.

20. Николенко С. И., Тулупьев А. JI. Вероятностная семантика байесовских сетей в случае линейной цепочки фрагментов знаний // Труды СПИИРАН. Вып. 2. СПб.: Наука, 2005. Т. 2.

21. Орлов А.И. Нечисловая статистика. М.: МЗ-Пресс, 2004.

22. Пальчун Б. П., Юсупов Р. М. Оценка надежности программного обеспечения. СПб.: Наука, 1994.

23. Романюк С.Г. Оценка надежности программного обеспечения. // Открытые системы. 1994. №4.

24. Савчук, В.П. Байесовские методы статистического оценивания: надежность техн.объектов. М.: Наука, 1989.

25. Стюарт Рассел, Питер Норвиг. Искусственный интеллект: современный подход. М.: Вильяме, 2007.

26. Суслин A.A. Статистические методы в моделировании надежности программного обеспечения // Научный журнал «Молодой ученый», Чита, 2011. №4 (27). Стр. 99-103.

27. Суслин A.A. Экспериментальное исследование взаимосвязи значений метрик и показателей надежности программного обеспечения // Научный журнал «Молодой ученый», Чита, 2010. № 6 (17). Стр. 67-71.

28. Суслин A.A., Ивутин А.Н. О некоторых применениях статистических распределений в оценке надежности программного обеспечения // Известия ТулГУ. Технические науки. Вып. 2. Тула, 2011. Стр. 568-575.

29. Суслин A.A., Ивутин А.Н. Подход к оценке надежности ПО на основе сетей Байеса // Сборник научных трудов Международнойконференции «Перспективы развития телекоммуникационных систем и информационные технологии» Санкт-Петербург: 2008. Стр. 222-227.

30. Суслин A.A., Ивутин А.Н. Построение Байесовской сети доверия для оценки надежности программного обеспечение на основании экспериментальных данных // Известия ТулГУ. Технические науки. Вып. 5, ч. 3. Тула, 2011. Стр. 192-197.

31. Суслин A.A., Ивутин А.Н. Проблема универсальности метрик современного программного обеспечения // Сборник научных статей «Вычислительная техника и информационные технологии», Вып. 1 Тула: издательство ТулГУ, 2009. Стр. 129-141.

32. Суслин A.A., Карпов B.C., Ивутин А.Н. Подход к реализации методики оценки надежности ПО на основе комплексных метрик. // Известия Тульского государственного университета. Технические науки. Выпуск 4. Часть 1. Тула.: ТулГУ., 2009. Стр. 116-125.

33. Тейер Т., Липов М., Нельсон Э. Надежность программного обеспечения : Анализ крупномасштабных разработок. М. : Мир, 1981.

34. Терентьев А.Н., Бидюк П.И. Эвристический метод построения Байесовских сетей. // Математические машины и системы. 2006. № 3. Стр. 12 -23.

35. Тоценко В. Г., Александров А. В. Корректность, устойчивость, точность программного обеспечения. Киев : Наук, думка, 1990.

36. Трухаев Р.И. Модели принятия решений в условиях неопределенности. М.: Наука, 1981.

37. Тулупьев А. Л. Байесовские сети доверия и алгебраические байесовские сети : сравнительный анализ выразительной мощности //

38. Интеллектуальные методы и информационные технологии. Вып. 2. СПб. : СПИИРАН, 1997. Стр. 121-147.

39. Тулупьев A. JL, Николенко С. И., Сироткин А. В. Байесовские сети: Логико-вероятностный подход. СПб.: Наука, 2006.

40. Турский В. Методология программирования. М. : Мир, 1981.

41. Шеннон Р. Имитационное моделирование систем искусство и наука. / Пер. с англ. под ред. Е.К. Масловского. М. : Мир, 1978.

42. Штрик А. А. Структурное проектирование надежных программ встроенных ЭВМ. JI.: Машиностроение, Ленингр. Отд-ние, 1989.

43. Adams Е. Optimizing Preventive Service of Software Products, IBM Research J., 1984, vol. 28, №1.

44. Akaike H. A new look at the statistical model identification. IEEE Transactions on Automatic Control. 1974 . №19.

45. Akiyama F. An Example of Software System Debugging // Information Processing, 1971 vol. 71.

46. Basili V.R., Perricone B.T. Software Errors and Complexity : An Empirical Investigation // Comm. ACM, 1984, vol. 27, №1.

47. Bertolino A., Strigini L. On the Use of Testability Measures for Dependability Assessment // IEEE Trans. Software Eng., 1996, vol. 22, №2.

48. Brocklehurst S., B. Littlewood, New Ways to Get Accurate Software Reliability Modelling, IEEE Software, 1992, vol. 34.

49. Buck R.D., Robbins J.H. Application of Software Inspection Methodology in Design and Code // Software Validation, H.L. Hausen, ed., Elsevier Science, 1984.

50. Cheng J., Druzdzel M. J. AIS-BN: An Adaptive Importance Sampling Algorithm for Evidential Reasoning in Large Bayesian Networks. Journal of Artificial Intelligence Research, 2000, vol.13.

51. Cherf S., An Investigation of the Maintenance and Support Characteristics of Commercial Software, Proc. Second Oregon Workshop on

52. Software Metrics (AOWSM), Portland, 1991.127

53. Chow C.K., Liu C.N. Approximating discrete probability distributions with dependence trees // IEE Transactions on information theory., 1968, vol. 14, № 3.

54. Compton T., Withrow C. Prediction and Control of Ada Software Defects," J. Systems and Software, 1990, vol. 12.

55. Conte, S. D., Dunsmore H. E., Shen V. Y. Software Engineering Metrics and Models, Menlo Park, Calif.: Benjamin/Cummings, 1986.

56. Cooper, G. F. Probabilistic Inference using Belief Networks is Np-Hard. Paper No. SMI-87-0195. Knowledge Systems Laboratory, Stanford University. Stanford, CA, USA, 1987.

57. Crosby, P. B. Quality Is Free : The Art of Making Quality Certain, New York: McGraw-Hill, 1979.

58. Cusumano M.A. Japan's Software Factories. Oxford Univ. Press, 1991.

59. Dagum, P., Luby, M. Approximating Probabilistic Inference in Bayesian Belief Networks is Np-Hard. Artificial Intelligence, 1993, vol. 60.

60. Diaz M., Sligo J. How Software Process Improvement Helped Motorola //IEEE Software, 1997, vol. 14, no. 5.

61. Druzdzel M. J., Yuan C. An Importance Sampling Algorithm Based on Evidence Pre-Propagation. Paper presented at the Nineteenth Annual Conference on Uncertainty in Artificial Intelligence. Acapulco, Mexico, 2003.

62. Dyer M. The Cleanroom Approach to Quality Software Development. Wiley, 1992.

63. Ehrlich W. K., Lee S. K., Molisani R. H. Applying Reliability Measurement: A Case Study, IEEE Software, 1990.

64. Fenton N., Ohlsson N. Quantitative Analysis of Faults and Failures in a Complex Software System, IEEE Trans. Software Eng., 1999.

65. Fenton N.E., Lawrence Pfleeger S. Software Metrics : A Rigorous and Practical Approach, №2, Int'l Thomson Computer Press, 1996.

66. Ferdinand A.E. A Theory of System Complexity // Int'l J. General Systems, 1974, vol. 1.

67. Gaffney J.R. Estimating the Number of Faults in Code // IEEE Trans. Software Eng., 1984, vol. 10, № 4.

68. Gaffney, Jr., J. E., On Predicting Software Related Performance of Large-Scale Systems, CMG XV, San Francisco, 1984.

69. Goel, A. L., Okumoto K. A Time-Dependent Error-Detection Rate Model for Software Reliability and Other Performance Measures," IEEE Transactions on Reliability, 1979, vol.28.

70. Guaspari, J. I Know It When I See It : A Modern Fable About Quality, New York : American Management Association, 1985.

71. Halstead M.H. Elements of Software Science. Elsevier North-Holland,1975.

72. Hamer P., Frewin G. Halstead's Software Science : A Critical Examination, Proc. Sixth Int'l Conf. Software Eng., 1982.

73. Hatton L. Re-examining the Fault Density-Component Size Connection, IEEE Software, 1997, vol. 14, № 2.

74. Hatton L. The Automation of Software Process and Product Quality // M. Ross, C.A. Brebbia, G. Staples, and J. Stapleton, eds., Software Quality Management, , Southampton: Computation Mechanics Publications, Elsevier, 1993.

75. Henrion M. Propagation of Uncertainty by Probabilistic Logic Sampling in Bayes Networks. In J. F. Lemmer, L. N. Kanal (Eds.), Uncertainty in Artificial Intelligence 2. New York, NY, USA : Elsevier Science Publishing Company, Inc, 1998.

76. Henry S., Kafura D. The Evaluation of Software System's Structure Using Quantitative Software Metrics // Software—Practice and Experience, 1984, vol. 14, № 6.

77. Jones C. The Pragmatics of Software Process Improvements // Software Engineering Technical Council Newsletter, Technical Council on Software Eng., IEEE Computer Society, 1996, vol. 14, №2.

78. Jones C. Applied Software Measurement. McGraw-Hill, 1991.

79. Jones C. Programming Productivity, New York : McGraw-Hill, 1986.

80. Juran J. M., Gryna F. M. Jr. Quality Planning and Analysis : From Product Development Through Use, New York : McGraw-Hill, 1970.

81. Kahneman D., Slovic P., Tversky A. Judgment Under Uncertainty : Heuristics and Biases. Cambridge University Press, Cambridge, 1982.

82. Kan Stephen H. Metrics and models in software quality engineering / Addison-Wesley 2nd ed, 2002.

83. Khoshgoftaar T.M., Munson J.C. Predicting Software Development Errors Using Complexity Metrics, IEEE J Selected Areas in Comm., 1990, vol. 8, №2.

84. Khoshgoftaar T.M., Munson J.C. Predicting Software Development Errors Using Complexity Metrics // IEEE J Selected Areas in Comm., 1990, vol. 8, no. 2.

85. Lauritzen S., Spiegelhalter D. J. Local Computation and Probabilities on Graphical Structures and their Applications to Expert Systems. Journal of Royal Statistical Society, 1988,№ 50(2).

86. Linger R. C., Hausier P. A. The Journey to Zero Defects with Cleanroom Software Engineering, Creativity, IBM Corporation, 1992.

87. McCabe T.J. A Complexity Measure // IEEE Trans. Software Eng., 1976, vol. 2, № 4.

88. Misra P. N. Software Reliability Analysis, IBM Systems Journal, 1983, vol. 22.

89. Moeller K.H., Paulish D. An Empirical Investigation of Software Fault Distribution,Proc First Int'l Software Metrics Symp, IEEE CS Press, 1993.

90. Munson J.C., Khoshgoftaar T.M. Regression Modelling of Software Quality : An Empirical Investigation, Information and Software Technology, 1990, vol. 32, № 2.

91. Neapolitan R. E. Probabilistic Reasoning in Expert Systems : Theory and Algorithms. New York, NY, USA : John Wiley and Sons, Inc, 1990.

92. Neapolitan R. E. Learning Bayesian Networks. New York, NY, USA : Prentice Hall, 2003.

93. Neil M.D. Multivariate Assessment of Software Products // Software Testing, Verification and Reliability, 1992, vol. 1, № 4.

94. Neil M.D. Multivariate Assessment of Software Products, J. Software Testing, Verification and Reliability, 1992, vol. 1, № 4.

95. Norden P. V. Useful Tools for Project Management, Operations Research in Research and Development, B. V. Dean, Ed., New York : John Wiley & Sons, 1963.

96. Ohba M. Software Reliability Analysis Models, IBM Journal of Research and Development, 1984, vol. 28.

97. Pan Jiantao. Software reliability. //Dependable Embedded Systems, 18-849b Carnegie Mellon University, 1999.

98. Pearl J. Probabilistic Reasoning in Intelligent Systems : Networks of Plausible Inference. San Mateo, CA, USA : Morgan Kaufmann Publishers, 1988.

99. Pham H. Hardware-Software reliability perspectives. // System and Bayesian reliability. Essays in Honor of Professor Richard E. Barlow on His 70th Birthday. Singapore, World Scientific Publishing Co, 2001.

100. Putnam L. H. A General Empirical Solution to the Macro Software Sizing and Estimating Problem, IEEE Transactions on Software Engineering, 1978, vol. SE-4.

101. Putnam L. H. Software Reliability Estimation via the Size Characteristics, IEEE Transactions on Software Engineering, 1982,vol. SE-3.

102. Putnam L. H., W. Myers, Measures for Excellence : Reliable Softwareon Time, Within Budget, Englewood Cliffs, N.J. : Yourdon Press, 1992.131

103. Robinson R.W. Counting unlabeled acyclic digraphs // Proceeding of Fifth Australian on Combinatorial Mathematics. Melbourne, 1976.

104. Shen V.Y., Conte S.D., Dunsmore H., Software Science Revisited : A Critical Analysis of the Theory and Its Empirical Support, IEEE Trans. Software Eng., 1983, vol. 9, №2.

105. Shepperd M.J. A Critique of Cyclomatic Complexity as a Software Metric, Software Eng. J., 1988, vol. 3, № 2.

106. Stalhane T. Practical Experiences with Safety Assessment of a System for Automatic Train Control, Proc. SAFECOMP'92, Zurich, Switzerland, Oxford, U.K.: Pergamon Press, 1992.

107. Tobias, P. A., D. C. Trindade Applied Reliability, New York : Van Nostrand Reinhold, 1986. •

108. Trachtenberg, M. Discovering How to Ensure Software Reliability, RCA Engineer, 1982.

109. Veevers A., Marshall A.C. A Relationship Between Software Coverage Metrics and Reliability // J Software Testing, Verification and Reliability, 1994, vol. 4.

110. Xie M., Dai Y.S., Poh K.L. Computing System Reliability, Models and Analysis. New York, Kluwer Academic Publishers, 2004.

111. Список используемых сокращений

112. AIC информационный критерий Акаике, Akaike information criteria BIC - байесовский информационный критерий, Bayesian information criteria

113. CMM модель зрелости разработки ПО, capability maturity model

114. KLOC количество тысяч строк программного кода, kilo lines of code

115. C количество строк программного кода, lines of code

116. MI взаимная информация, mutual information

117. АРМ автоматизированное рабочее место

118. БСД байесовская сеть доверия

119. ПО программное обеспечение

120. ПО ТС программное обеспечение тренажерных систем/систем тренажеров