Содержание к диссертации
Введение
1. Объект, цель, задачи исследования 11
1.1. Описание объекта исследования 11
1.2. Требования к ПС 13
1.3. Выбор и обоснование показателей надежности ПС 17
1.4. Программные метрики сложности 23
1.5. Обзор моделей надежности ПС 29
1.6. Постановка задачи исследования 38
1.7. Выводы по разделу 41
2. Модели надежности программных средств на основе распределений фазового типа 43
2.1. Экспоненциальная модель надежности ПС 43
2.2. Метод Кокса для представления немарковских распределений 49
2.3. Модели надежности ПС с неэкспоненциальным временем обнаружения программных ошибок 54
2.4. Модели надежности ПС с неэкспоненциальным временем устранения программных ошибок 62
2.5. Общая модель надежности ПС 70
2.6. Выводы по разделу 76
3. Планирование испытаний программных средств 78
3.1. Моделирование надежности ПС при использовании различных стратегий испытаний 78
3.2. Метод планирования испытаний многомодульных программных средств
3.3. Выводы по разделу 91
4. Программная реализация и оценка достоверности разработанных моделей 94
4.1. Описание программной реализации 94
4.2. Методика задания исходных данных 97
4.3. Оценка достоверности результатов 102
4.4. Выводы по разделу 104
5. Практическое применение результатов исследований 106
5.1. Объекты внедрения 106
5.2. Результаты моделирования надежности ПС 107
5.3. Сравнение стратегий испытаний ПС 111
5.4. Оценка эффективности 115
5.5. Выводы по разделу 118
Заключение 120
Список использованных источников 122
- Программные метрики сложности
- Модели надежности ПС с неэкспоненциальным временем обнаружения программных ошибок
- Метод планирования испытаний многомодульных программных средств
- Оценка достоверности результатов
Введение к работе
Актуальность темы исследования.
Современная экономическая ситуация требует от предприятий любой отрасли экономики повышения производительности труда и качества предоставляемых услуг. Достижение этих целей невозможно без развития и внедрения современных информационных технологий. При этом важное значение имеет вопрос обеспечения высокого качества эксплуатируемых программных средств (ПС). Надежность является одной из составляющих понятия качества и важнейшей применительно к ПС, отказы в которых могут приводить к значительным финансовым убыткам и человеческим жертвам.
Другой важной задачей, возникающей при разработке ПС, является сокращение сроков и стоимости разработки. Сложность разрабатываемых ПС, большие команды разработчиков, распределенный характер приложений – эти факторы создают объективные трудности и зачастую приводят к срыву сроков сдачи проектов и превышению бюджета разработки. Сокращение сроков (следовательно, и затрат) на разработку может быть достигнуто за счет грамотного и эффективного планирования разделения ресурсов при разработке.
Для решения поставленных задач могут быть использованы средства математического моделирования надежности ПС. Вопросам разработки и применения моделей надежности ПС посвящено большое количество исследований отечественных и зарубежных авторов: З. Джелинского, П.Б. Моранды, Дж.Д. Мусы, Б. Литтлвуда, Дж.Л. Верралла, М.Х. Холлстеда, М. Шумана, К.Дж. Шика, Р.В. Волвертона, Р.К. Чунга, В.А. Смагина, С. Дика, М.Р. Луи, Х. Окамуры, Л.В. Уткина, И.Б. Шубинского, А.М. Половко, Ю.И. Рыжикова, В. Фарра, К.А. Асада и др. Было разработано большое количество моделей для оценки и предсказания надежности ПС. Однако модели надежности обладают рядом недостатков, ограничивающих их использование для решения названных задач:
модели не обладают общностью (для описания временных характеристик отладки используются конкретные виды распределений, как правило, экспоненциальное);
модели описывают процесс обнаружения, но не устранения программных ошибок, что делает невозможным их применение собственно для планирования испытаний;
модели не предназначены для выбора стратегий испытаний и распределения ресурсов тестирования между модулями ПС.
Таким образом, актуальными научными задачами являются повышение точности расчета показателей надежности при моделировании ПС и повышение эффективности планирования испытаний.
Объектом диссертационного исследования являются ПС на этапе проектирования, реализации или тестирования.
Предметом диссертационного исследования являются модели надежности и планирования испытаний ПС.
Целями исследования являются повышение точности моделирования надежности ПС и повышение эффективности планирования испытаний ПС в процессе их проектирования и разработки.
Задачи исследования:
обоснование показателей надежности ПС;
разработка обобщенных моделей надежности ПС, учитывающих временные характеристики процессов поиска и устранения ошибок, стратегии испытаний;
обоснование математических соотношений для перехода от вероятностных характеристик ПС к показателям их надежности;
разработка метода планирования испытаний многомодульных ПС;
разработка методики задания исходных данных для моделирования надежности и планирования испытаний ПС;
разработка комплекса программ расчета надежности и планирования испытаний ПС.
Методы исследования: теория надежности, теория массового обслуживания, математическая статистика, теория вероятностей.
Теоретическая основа и методологическая база: труды отечественных и зарубежных ученых в области теории надежности программного обеспечения, стандарты в области информационных технологий.
Основные научные результаты, выносимые на защиту:
комплекс моделей для расчета показателей надежности ПС, основанный на использовании распределений фазового типа;
модели надежности ПС для обоснования выбора стратегий испытаний ПС;
метод планирования испытаний многомодульных ПС на основе информации о сложности и структуре ПС.
Новизна основных научных результатов состоит в разработке и совершенствовании моделей и расчетных схем оценивания надежности ПС, определения стратегий испытаний на основе распределений фазового типа и планирования испытаний многомодульных ПС с учетом их характеристик надежности и информации о сложности и структуре ПС. Разработанные модели надежности ПС являются обобщением существующих моделей с точки зрения использования общих видов распределения временных характеристик процесса тестирования и учета особенностей процесса исправления ошибок. В отличие от предложенных ранее, данные модели могут применяться для обоснования стратегий испытаний ПС. Предложена методика задания исходных данных для моделирования надежности ПС, позволяющая использовать результаты испытаний ранее разработанных подобных проектов для будущих программных продуктов на основе информации о соотношении сложности проектов и факторов разработки.
Достоверность основных научных результатов обеспечивается корректным применением математических методов исследования и подтверждается близостью результатов расчетов, полученных с использованием различных разработанных моделей, с результатами имитационного моделирования, а также апробацией на научно-технических конференциях и публикациями в научных изданиях.
Практическая значимость состоит в повышении точности расчета показателей надежности ПС, сокращении времени испытаний ПС на основе выбора стратегии отладки и улучшения планирования их испытаний, а также доведении разработанных моделей до инженерных методик и программ, готовых к непосредственному применению. Разработан комплекс программ расчета надежности и планирования испытаний ПС. Результаты исследования могут применяться при разработке широкого круга ПС.
Реализация результатов работы. Основные результаты диссертационных исследований внедрены в следующих организациях:
филиал ОАО «РЖД» Проектно-конструкторско-технологическое бюро по системам информатизации (при разработке и тестировании учебного курса «Управление качеством при разработке программного обеспечения на основе современных стандартов и моделей» с электронными средствами поддержки дистанционного обучения);
ООО «Эксиджен Сервисис» (при разработке программных проектов Labka, StarTrek);
ФГОУ ВПО ПГУПС (в учебном процессе кафедры «ИВС» при проведении занятий по дисциплине «Надежность информационных систем»).
Разработанный комплекс программ расчета надежности и планирования испытаний программных средств зарегистрирован Федеральной службой по интеллектуальной собственности, патентам и товарным знакам в реестре программ для ЭВМ. Свидетельство о государственной регистрации программ для ЭВМ № 2010615617. Москва, 2010.
Апробация работы. Основные результаты исследований докладывались и обсуждались на Четырнадцатой, Тринадцатой, Двенадцатой международных научно-практических конференциях «Информационные технологии на железнодорожном транспорте» (Санкт-Петербург, ФГОУ ВПО ПГУПС, 2009, 2008, 2007), на Тридцать четвертой ежегодной конференции Института инженеров электроники и электротехники (IEEE) по программному обеспечению и компьютерным приложениям «COMPSAC» (Сеул, IEEE, 2010), на Пятой восточно-европейской научно-практической конференции по программной инженерии «CEE SECR» (Москва, Текама, 2009), на Всероссийской научно-практической конференции «Транспорт-2009» (Ростов-на-Дону, ГОУ ВПО РГУПС, 2009), на конференциях «Шаг в будущее. Неделя науки» (Санкт-Петербург, ФГОУ ВПО ПГУПС, 2009, 2008).
Публикации. По результатам исследования лично и в соавторстве опубликованы 11 печатных работ, из которых 4 в журналах, входящих в перечень изданий, рекомендуемых ВАК, 3 в материалах международных конференций. Получено свидетельство о государственной регистрации разработанного комплекса программ расчета надежности и планирования испытаний программных средств в Реестре программ для ЭВМ.
Структура диссертации. Диссертация состоит из введения, пяти разделов, заключения, списка использованных источников и приложения. Общий объем диссертации – 143 с., из которых основного текста – 121 с. Библиографический список содержит 93 наименования. Основной текст диссертации включает 30 рисунков и 12 таблиц.
Программные метрики сложности
Объектом исследования являются программные средства (ПС) на этапе проектирования, реализации или тестирования. В современном мире наблюдается повсеместное использование ПС: в промышленности, медицине, связи, науке, образовании, на транспорте и других областях. На железнодорожном. транспорте используется широкий набор специализированного программного обеспечения, участвующего в оперативном управлении технологическими процессами, связанными с процессом перевозок, работой станций, системы, сетевого документооборота и делопроизводства, ПС для технико-экономических расчетов и другие.
Современная экономическая ситуация требует от предприятий любой отрасли повышения производительности труда, расширения перечня предоставляемых услуг и повышение их качества. В области транспорта к этим требованиям добавляется необходимость обеспечения безопасности перевозок. Достижение этих целей невозможно без дальнейшего развития и внедрения современных информационных технологий, развития существующих ПС и внедрения новых программных систем.
В области железнодорожного транспорта программа научно-технического развития ОАО «РЖД» [62] на период до 2015 г. предусматривает совершенствование систем управления и обеспечения безопасности движения, управления перевозочным процессом и транспортной логистики как одно из приоритетных направлений развития железнодорожного !2 транспорта. Реализация программы базируется на внедрении и использовании современных . информационных технологий:
Предусматривается переход к информационно-управляющим технологиям работы,, управление движением поездов с использованием спутниковых технологий: и современной цифровой технологической радиосвязи, консолидация; вычислительных ресурсов: и др. Успешная реализация этих задач во многом зависит от качества внедряемых ПС.
В настоящее время в ОАО «РЖД» действует четырехуровневая схема технического! регулирования в области железнодорожного транспорта, включающая технические регламенты «О безопасности инфраструктуры железнодорожного транспорта», «О безопасности железнодорожного подвижного состава», «О безопасности инфраструктуры и; подвижного. состава высокоскоростного железнодорожного транспорта», национальные стандарты и своды правил, корпоративные стандарты ОАО «РЖД», нормы безопасности, методики испытаний, подзаконные нормативные акты.
В; ОАО «РЖД» создан Центр технического аудита, задачей которого является управление качеством на всех этапах производства ПС.
На примере железнодорожного транспорта и, ОАО «РЖД» очевидна важность вопроса:обеспечения качества ПС. При этом ПС обладают рядом особенностей, которые влияют на процесс испытаний и обеспечения качества: программный продукт - сложный, развивающийся объект; существует большое количество качественных характеристик ПС, при этом зачастую затруднено их практическое использование; существующие инструментальные средства оценки качества и обнаружения недекларированных возможностей имеют существенные ограничения. 1.2. Требования к ПС
Одним из средств обеспечения качества ПС на железнодорожном транспорте является система сертификации. В настоящее время сертификация ПС осуществляется на добровольной основе в двух основных системах — по требованиям качества и по требованиям безопасности информации. Сертификация ПС по требованиям качества ориентирована на пользователя ПС и проводится в рамках Системы добровольной сертификации на железнодорожном транспорте Российской Федерации. При сертификации по требованиям безопасности информации проводятся испытания на отсутствие недекларируемых возможностей в соответствии с требованиями руководящих документов Федеральной службы по техническому и экспортному контролю (ФСТЭК).
Перечень программных средств, в отношении которых предусмотрена сертификация в ССФЖТ утвержден указанием МПС России от 12.11.1996. Перечень [69] регламентирует список ПС, для которых обязательным условием при приемке в промышленную эксплуатацию является наличие сертификата соответствия по форме добровольной сертификации. Перечень включает 14 видов ПС, в том числе автоматизированные системы управления процессом грузовых и пассажирских перевозок, грузовыми станциями, материальными и трудовыми ресурсами, оперативного управления технологическими процессами, связанными с обеспечением безопасности движения, экономической и информационной безопасностью и другие.
Основными нормативными документами, требования которых проверяются при сертификации по требованиям качества в ССФЖТ, являются следующие стандарты:
ГОСТ Р ИСО/МЭК 9126-93 «Информационная технология. Оценка программной продукции. Характеристики качества и руководства по их применению»;
ГОСТ Р ИСО/МЭК 12207-99 «Информационная технология. Процессы жизненного цикла программных средств»; ряд ГОСТ ЕСПД, регламентирующих оформление и содержание программных документов [46 - 53]. ГОСТ Р ИСО/МЭК 12207-99 вводит понятия основных (заказ, поставка, разработка, эксплуатация, сопровождение), вспомогательных (документирование, управление конфигурацией, обеспечение качества, верификация, аттестация, совместный анализ, аудит) и организационных (управление, создание инфраструктуры, усовершенствование, обучение) процессов жизненного цикла ПС.
Наиболее важным из приведенных ГОСТ с точки зрения настоящего исследования является ГОСТ Р ИСО/МЭК 9126-93, так как стандарт вводит шесть характеристик качества, которые могут быть использованы при разработке и сертификации ПС: функциональные возможности — «атрибуты, относящиеся к сути набора функций и их конкретным свойствам. Функциями являются те, которые реализуют установленные или предполагаемые потребности»; надежность - набор атрибутов, относящихся к «способности программного обеспечения сохранять свой уровень качества функционирования при установленных условиях за установленный период времени»; практичность — набор атрибутов, относящихся к «объему работ, требуемых для использования ПС и индивидуальной оценки такого использования определенным или предполагаемым кругом пользователей»; эффективность — набор атрибутов, относящихся к «соотношению между уровнем качества функционирования программного обеспечения и объемом используемых ресурсов при установленных условиях»;
Модели надежности ПС с неэкспоненциальным временем обнаружения программных ошибок
Модель Мусы [27, 66] относится к классу экспоненциальных, то есть предполагает экспоненциальное распределение интервалов времени обнаружения отказов. При этом в модели используются два вида времени функционирования: суммарное время тестирования и отладки вплоть до контрольного момента, когда производится оценка надежности программы, и оперативное время исполнения программы, планируемое от контрольного момента. Число устраненных ошибок п за время отладки т определяется следующим образом: Мо - общее число ошибок, которые могут проявиться при отладке; Т0 - средняя наработка на отказ в начале отладки; С— коэффициент сжатия тестов.
В модели Литтлвуда [27, 66, 93] интенсивность отказов является условной случайной величиной. Интенсивность может описываться различными распределениями, среди которых выбирается то, которое обеспечивает лучшее приближение к исходным данным. Параметры распределения зависят от номера ошибки. Случайность интенсивностей обуславливается неидеальностью отладки, то есть при устранении ошибки возможно внесение новых.
Кроме приведенных, широко известны и другие экспоненциальные модели, а также модели, использующие для описания интервалов между обнаружением ошибок более общие законы распределения: Вейбулла, гамма и другие (см. [27, 93]).
Моделирование надежности ПС также производится с использованием средств искусственного интеллекта. Модель на основе иерархической смеси нейронной сетью результатов моделирования надежности ПС с использованием моделей Гоул-Окумото, Эрланга и др. предложена в [16, 25]. Модель надежности на основе нейронной сети предложена в [10], согласно этой же статьи предложенная модель превосходит классические по точности прогноза. Однако при ее использовании возникают трудности с обоснованием архитектуры, а также возможна проблема переобучения нейросети. Модель с использованием нечеткой нейронной сети для раннего предсказания качества ПС (надежности, сопровождаемое и эффективности) предложена в [38, 39]. Недостатками этих моделей является сильная зависимость от субъективных оценок атрибутов ПС экспертами.
Описанные выше модели относятся к классу непрерывных динамических аналитических моделей. Помимо этих моделей в научной литературе предлагались и другие подходы к моделированию надежности ПС. В частности, разработан ряд статических и эмпирических моделей, позволяющих вычислять показатели надежности па основе программных метрик (кратко рассмотрены в подразделе 1.4). Данные модели в большинстве своем обладают серьезными недостатками, так как не учитывают характера проекта, квалификацию программиста и другие факторы.
Миллс разработал модель посева ошибок [14], предполагающую внесение в исходные коды программ псевдоошибок. Затем на основе процентной доли обнаруженных известных ошибок модель позволяет делать вывод о количестве скрытых фактических программных ошибок. Недостатком этой модели является предположение о том, что внесенные и реальные ошибки имеют одинаковое распределение и вероятность нахождения, что не подтверждается на практике. Модель Миллса была развита Базиным и Липовым [14]. В их модели учитывается несовершенность процесса обнаружения дефектов. Однако данные модели по-прежнему сложно использовать на практике, так как требуются дополнительные трудозатраты на внесение и поиск новых ошибок. При этом модели не позволяют получать динамические характеристики надежности.
Также были разработаны модели, учитывающие архитектуру ПС. Например, в модели Чунга-Смагина [6, 35, 63] для анализа надежности ПС представляется в виде совокупности программных компонент (модулей) -ориентированного графа (рис. 1.5.3), вершинами которого являются программные модули, а дуги - переходы между ними (вызовы модулей с различной вероятностью). Предполагается, что такой граф имеет единственный исток и поглощающее состояние. Для каждого модуля определяются значения показателей надежности, после чего рассчитывается надежность всего ПС. В этом случае каждый модуль ПС представляет собой аналог элемента расчета теории надежности. Данная модель позволяет решить и обратную задачу — планирование испытаний с целью повышения надежности. На основе модели Чунга-Смагина разработан метод планирования испытаний многомодульных ПС, который описывается в подразделе 3.2.
Анализ существующих подходов к моделированию надежности показывает, что общим является предположение о зависимости интенсивности отказов (обнаружения ошибок) от количества неисправленных программных ошибок (или номера текущей обнаруженной ошибки). Различные модели предлагают разные виды такой зависимости: пропорциональную, геометрическую, в виде условного гамма-распределения и другие. Это приводит к тому, что их практическое использование затруднено необходимостью подбора модели по критерию «близости» к исходным данным. То есть необходимо рассчитать параметры множества моделей, а затем среди них выбрать те, которые моделируют доступные исходные данные с достаточной точностью. Таким образом, актуальна задача разработки обобщенной модели, снимающей ограничения на вид зависимости интенсивности обнаружения и устранения ошибок от номера текущей ошибки. Другим недостатком множества существующих моделей является ряд используемых упрощений, которые ограничивают их применение для моделирования процесса испытаний программ. Например, модель Джелинского-Моранды и множество подобных моделей не учитывают время, которое затрачивается на устранение найденных программных ошибок.
Предположение об экспоненциальном (или другом) законе распределения временных интервалов обнаружения ошибок также представляется ограничением указанных моделей, так как не позволяют использовать их для оценки и прогноза надежности программных проектов с более общими распределениями потока обнаружения (и устранения) ошибок.
Метод планирования испытаний многомодульных программных средств
Расчеты показывают, что значение коэффициента вариации потока обнаружения ошибок (вид распределения длительностей интервалов времени обнаружения ошибок) имеет влияние на значения показателей надежности ПС. Следовательно, переход от простейшей- экспоненциальной модели надежности ПС к более общим-неэкспоненциальным-дает преимущество-в точности прогноза. Расчетный пример показывает, что при использовании более общих моделей G(i)IM(j)IN вместо простейшей модели M(i)/M(j)IN достигается повышение точности до 8% для системы с коэффициентом вариации ц = 0.5 и до 12% для системы с коэффициентом вариации г\ = 0.2 (оценки верны для исходных данных, приведенных в табл. 2.1.1).
В данном подразделе описаны модели надежности ПС с экспоненциальным временем обнаружения программных ошибок и неэкспоненциальным временем исправления программных ошибок M(i)IG(j)IN.
Модель с экспоненциальным обнаружением и эрланговским исправлением программных ошибок M(i)/E2 J)/N представляется в виде графа переходов, показанного нарис. 2.4.1. Рисунок 2.4.1 - Граф переходов для модели M{i)!E2{j)IN
Состояние (г, к, /) системы M{i)IE2(j)IN в каждый момент времени характеризуется количеством обнаруженных (еще не исправленных) ошибок і (і - О, N), исправленных ошибок j (J = О, N — і) и фазой к (к = ОД) распределения Эрланга длины интервалов между моментами исправления ошибок. Переход из состояния (г, к, j) в состояние (/+1, к,/) означает, что при тестировании была обнаружена (г+/+1)-я ошибка, и описывается экспоненциальным распределением с интенсивностью A,+y+i. Переход из состояния (г, 0, f) в состояние (г—1, 0, j+l) означает, что была исправлена (/+1)-я ошибка, и описывается двухэтапным распределением Эрланга с иптенсивностями fij+\, fi j+\. Общее число состояний Nc вычисляется по формуле:
Среднее число обнаруженных ошибок Np(t), среднее число исправленных ошибок NP(t), среднее число не обнаруженных ошибок Nm(t), среднее число неисправленных ошибок NpL(t), функция F-,(t) распределения времени устранения і ошибок и время испытаний TN Р , которое требуется для исправления NTp ошибок с заданной вероятностью Ргр, для модели M(i)/E2(j)/N, как и остальных описываемых в данном подразделе моделей, вычисляются аналогично системе M{i)IM{j)IN по формулам (2.1.4, 2.1.6 -2.1.8, 2.1.10, 2.1.11) соответственно.
Условие нормировки и начальные условия задаются аналогично тому, как это сделано для модели M{i)IE2(j)IN. Показатели надежности Щі), Pj(t), NR(t), NP(t), JVk(/), NPL(t), P(t, r) функция распределения F,(t) и время испытаний TNr Рт вычисляются так же, как и для модели M{i)lE2(j)IN. Модель с экспоненциальным обнаружением и гиперэкспоненциальным исправлением программных ошибок M(i)/H2(j)/N представляется в виде графа переходов, показанного нарис. 2.4.3. Аналогично диаграммам, приведенным выше, состояние (і, к, j) системы M(i)/H2(j)/N в каждый момент времени характеризуется количеством обнаруженных (еще не исправленных) ошибок і (і = О, TV), исправленных ошибок j (j = 0, N — і) и фазой к (к = ОД) гиперэкспоненциального распределения времени устранения ошибок. Переход из состояния (і, к, j) в состояние (/+1, k,j) означает, что при тестировании была обнаружена Q+j+Y)-я ошибка, и описывается экспоненциальным распределением с интенсивностью Xi+p-i. Переход из состояния (г, k,j) в состояние (/-1, m,j+l) означает, что была исправлена (/+1)-я ошибка, и описывается двухэтапным гиперэкспоненциальным распределением с интенсивностями ju i, ju .
В качестве иллюстрации использования описанных моделей с экспоненциальным обнаружением и неэкспоненциальным исправлением ошибок приведены результаты расчета некоторых показателей надежности ПС. Расчет выполнен для различных значений коэффициента вариации распределения длительностей интервалов времени исправления ошибок по формулам (2.1.8, 2.1.10) для исходных данных, приведенных в табл. 2.1.1. На рис. 2.4.4 представлены графики функций распределения времени исправления N ошибок Fj t) для значений коэффициента вариации var = 0.2, 0.5, 1.
Оценка достоверности результатов
Для моделирования надежности ПС должны быть решены задачи выбора подходящей модели надежности и задания исходных данных.
При выборе модели надежности необходимо учитывать следующие критерии. Во-первых, этап жизненного цикла ПС, на котором выполняется моделирование. Например, многие модели можно применять на этапе тестирования, используя собранные сведения о длительностях интервалов времени между отказами и продолжительности отладки. Однако при использовании исторических данных, те же модели можно использовать и на более ранних этапах.
Необходимо располагать требуемыми для моделирования исходными данными. Так, для моделей, не учитывающих структуру ПС (модели «черного ящика») требуется, например, вид распределения интервалов времени между отказами и интенсивности отказов. Для моделей на основе архитектуры ПС требуется также информация о количестве модулей, среднем времени их исполнения, вероятностях переходов между ними. Для выбора наилучшей среди тех моделей, которые соответствуют этапу жизненного цикла и требуемым исходным данным, можно использовать критерий Акайке. Данный критерий является эвристической попыткой свести в один показатель два требования: уменьшение числа параметров модели и близость модели к исходным данным. Согласно этому кррггерию из двух моделей следует выбрать модель с наименьшим значением информационного критерия Акайке (см. [1, 23]).
При использовании моделей надежности на этапе тестирования в качестве исходных данных могут использоваться те сведения об ошибках, которые получены за время испытаний до момента моделирования. Результатом моделирования с использованием моделей, описанных в разделе 1, в этом случае будет оценка общего числа программных ошибок и времени до нахождения очередной ошибки.
При использовании моделей надежности на ранних этапах жизненного цикла, когда статистика обнаружения и устранения ошибок еще не собрана, возникает проблема отсутствия исходных данных для моделирования. В этом случае могут использоваться данные, которые были собраны при разработке завершенных ранее проектов. Такая статистика должна быть скорректирована с учетом различия между проектами.
В зависимости от квалификации программистов и тестеров, возможностей используемых средств разработки и тестирования, сложности проекта и других факторов, собранные временные характеристики процесса поиска и устранения ошибок могут быть скорректированы в большую или меньшую сторону. В любом случае оценка, полученная на этапе проектирования, ввиду отсутствия объективных данных о проекте хоть будет и не точной, однако достаточно важной, так как будет получена в самом начале жизненного цикла ПС, когда цена внесения изменений в проект не столь высока, как на последующих этапах жизненного цикла. Далее предложена методика определения исходных данных для моделей надежности, описанных в разделах 2 и 3. Описываемая схема применения графически представлена па рис. 4.2.1.
Пусть при разработке уже завершенного проекта (1-й проект) была собрана статистика временных характеристик процессов поиска и устранения программных ошибок, которая используется для моделирования надежности другого проекта на ранних этапах жизненного цикла (2-го проекта).
Пусть в процессе разработки 1-го проекта была, собрана следующая статистика о процессах обнаружения и устранения программных ошибок: общее количество ошибок ir , длительности интервалов времени обнаружения ошибок /,(1), /=1, ... , ЛЛ и длительности интервалов времени устранения ошибок ff-x\ i=\, ... , N -l\ Известны данные о структуре ПС 1-го проекта: оно состоит из f классов, и для каждого класса собраны значения объектно-ориентированных метрик сложности набора Чайдамбера-Кемерера (см. описание в разделе 1). Для каждого класса на основе значений объектно 100
ориентированных метрик сложности рассчитана вероятность наличия в нем ошибки я-/1 , г=1, ... , .М с использованием подхода [3, 12], описанного в разделе 1 по формулам (1.4.11 - 1.4.14). .
Коэффициент К получается эмпирически на основе данных о прогнозе и фактическом- проявлении программных ошибок в различных программах (или модулях одной программы). Для расчета коэффициента необходима статистика для достаточно большого числа проектов (модулей), учитывающая влияние на надежность ПС таких факторов разработки, как квалификация коллектива разработчиков, сроки разработки, уровень используемых инструментальных программных средств, особенности технологии разработки программного обеспечения и другие. На основе такой статистики, с использованием1 аппроксимации сплайнами или. нейронных сетей строится модель влияния, факторов разработки на надежность ПС и проявление ошибок. В этом случае для моделирования нового проекта (2-го проекта) необходимо выбрать, в качестве эталонного (1-го. проекта) такой, который наиболее близок по- использованным факторам разработки (например, проект разрабатывался тем же или. схожим по - квалификации персоналом, с использованием тех же средств разработки и т.д.) и затем рассчитать для этой пары проектов коэффициент К.
Предполагаемое количество ошибок в ПС 2-го проекта рассчитывается как: ПС подобны если они решают схожие задачи (например, графические редакторы, средства проектирования), разработаны одной, командой программистов или командами, сопоставимыми по. профессиональному уровню, с использованием одинаковых средств разработки и проектирования, написаны на одном языке программирования и с использованием одинаковых технологий, библиотек, фреймворков.
Если .М2) Л \ то для упрощения моделирования имеет смысл представить ПС 1-го проекта в виде набора модулей (если это возможно), оценить надежность каждого модуля, а затем рассчитать показатели надежности всего ПС согласно модели Чунга-Смагина [6, 63, 76].
В простейшем случае, если проекты 1 и 2 подобны, то есть К 1 и A ) N(2), для построения модели 2-го проекта могут быть использованы следующие значения: общее количество ошибок ] 2\ длительности интервалов времени обнаружения ошибок f/ =//(1), /=1, ... , iV 2) и длительности интервалов времени устранения ошибок 2 0, М, ..., Л 2). В более сложных случаях длительности интервалов времени /,(2) и / должны быть экспертно скорректированы относительно /;(1) yifP с учетом различия факторов разработки.
Достоверность основных научных результатов обеспечивается применением апробированных методов исследования; подтверждением правильности полученных результатов путем сравнения результатов различных разработанных моделей друг с другом и с результатами, полученными имитационным моделированием; актами внедрения полученных результатов.
Для обоснования достоверности расчетов выполнена проверка полученных результатов с использованием различных разработанных моделей надежности ПС. Схема выполнения взаимной проверки результатов моделирования иллюстрируется на рис. 4.3.1, где реализованные модели показаны по степени общности от базовой экспоненциальной (крайняя левая строка) до наиболее общей, с использованием двухэтапного распределения Кокса (крайняя правая строка).