Автор: Пользователь скрыл имя, 24 Марта 2013 в 23:04, реферат
Модели надежности программных средств подразделяются на аналитические и эмпирические. Аналитические модели дают возможность рассчитать количественные показатели надежности, основываясь на данных о поведении программы в процессе тестирования. Эмпирические модели базируются на анализе структурных особенностей программ.
Введение 3
1 Аналитические модели надежности ПС 4
1.1 Динамические модели надежности 4
1.2 Статические модели надежности 20
2 Эмпирические модели надежности 34
Заключение 42
Список использованных источников 43
Если предположить, что термины “исправление” и “ошибка” идентичны, то тогда модель для оценивания общего количества ошибок в программе, предложенная специалистами из IBM и основанная на приведенных выше объяснениях, записывается следующим образом:
где ИЗМi - общее количество исправлений, внесенное в модули (или, другими словами, общее количество ожидаемых ошибок), а коэффициенты 23 и 2 – среднее количество исправлений на модуль для групп MИM и ИM, соответственно.
Прогноз основывается на запланированном количестве исправлений в старых модулях и на количестве добавляемых модулей (СИМi, НМi) для реализации новых требуемых функций ПО. Если количество действительно внесенных исправлений меньше, чем предсказанное количество исправлений, то можно сделать вывод, что в ПО существует еще некое количество необнаруженных ошибок. Модель фирмы IBM позволяет сделать следующие выводы:
Эмпирические модели в основном базируются на анализе структурных особенностей программного средства (или программы). Как указывалось ранее, эмпирические модели часто не дают конечных результатов показателей надежности, однако их использование на этапе проектирования ПС полезно для прогнозирования требующихся ресурсов тестирования, уточнения плановых сроков завершения проекта и т.д.
Модель сложности
В литературе неоднократно подчеркивается тесная взаимосвязь между сложностью и надежностью ПС. Если придерживаться упрощенного понимания сложности ПС, то она может быть описана такими характеристиками, как размер ПС (количество программных модулей), количество и сложность межмодульных интерфейсов.
Под программным модулем в данном случае следует понимать программную единицу, выполняющую определенную функцию (ввод, вывод, вычисление и т.д.) и взаимосвязанную с другими модулями ПС. Сложность модуля ПС может быть описана, если рассматривать структуру программы.
В качестве структурных характеристик модуля ПС используются:
Для сложных модулей и для больших многомодульных программ составляется имитационная модель, программа которой «засоряется» ошибками и тестируется по случайным входам. Оценка надежности осуществляется по модели Миллса.
При проведении тестирования известна структура программы, имитирующей действия основной, но не известен конкретный путь, который будет выполняться при вводе определенного тестового входа. Кроме того, выбор очередного тестового набора из множества тест-входов случаен, т.е. в процессе тестирования не обосновывается выбор очередного тестового входа. Эти условия вполне соответствуют реальным условиям тестирования больших программ.
Полученные данные анализируются, проводится расчет показателей надежности по модели Миллса (или любой другой из описанных выше), и считается, что реальное ПС, выполняющее аналогичные функции, с подобными характеристиками и в реальных условиях должно вести себя аналогичным или похожим образом.
Преимущества оценки показателей надежности по имитационной модели, создаваемой на основе анализа структуры будущего реального ПС, заключаются в следующем:
К недостаткам можно отнести высокую стоимость метода, так как он требует дополнительных затрат на составление имитационной модели, и приблизительный характер получаемых показателей.
Сложность программ является одной из главных причин их ненадежности. Очевидно, что с целью повышения надежности программ необходимо снижать их сложность. Существует различные критерии оценки сложности.
1) Одним из наиболее простых критериев оценки сложности программ является ее длина - количество операторов (команд).
Но длину программ не всегда можно брать в качестве критерия сложности, так как, например, при структурировании программы, ее сложность уменьшается, но длина увеличивается.
2) Цикломатическое число.
Простой мерой сложности, не зависящей от структурирования программы и от формы представления ее исходного текста , является цикломатическое число предложенное МакКейбом.
Дадим понятие цикломатического числа для потокового графа программ.
Потоковый граф представляет собой структурную модель программы, показывающую связь между отдельными ее элементами
G = (V, E) , (76)
где V представляет собой совокупность вершин графа, а Е - совокупность дуг.
Вершины графа соответствуют линейным участкам программы и включают в себя один или несколько операторов. Дуги отображают потоки управления в программе, т.е. передача управления между операторами.
Цикломатическое число для потокового графа, представлено на рисунке 3, определяется следующим образом
Z (G) = E – V + 2 (77)
где: E – количество дуг графа, V – количество вершин.
Рисунок 3. Управляющий граф программы
Для графа на рисунке 3 цикломатическое число будет равно:
Z (G) = 17 – 12 + 2 = 7.
3) Мера сложности Холстеда .
Холстед кроме измерения длины
программы предложил также
η1 – число различных операторов;
η2 – число различных операндов;
η1 + η2 = η – словарь программы;
N1 – число появлений операторов;
N2 – число появлений операндов.
N2 +N1 = N – длина программы.
Тогда теоретическая длина программы:
N = η1 log 2 η1 + η2 log 2 η2 (78)
Холстед ввел такую меру сложности, как объем программы:
V = N log2 η (79)
Сложность программы определяется по формуле [80 ]:
E = η1 N2 N log 2 η/ 2 η2 (80)
Величина Е соответствует усилию, затрачиваемому на кодирование и понимание программы.
Эксперименты показали , что число ошибок в неоттестированных программах пропорционально E2/3, где E – мера сложности Холстеда:
E0 = K * E2/3 , (81)
K = 1/3200
В прошедших стадию тестирования и отладки программах это отношение сохраняется, но коэффициент пропорциональности K принимает меньшие значения.
Из-за высокой сложности и
Модель, определяющая время доводки программ
Эта модель используется для ПС, которые имеют иерархическую структуру, т.е. ПС как система может содержать подсистемы, которые состоят из компонентов, а те, в свою очередь, состоят из V модулей. Таким образом, ПС может иметь различных уровней композиции. На любом уровне иерархии возможна взаимная зависимость между любыми парами объектов системы. Все взаимозависимости рассматриваются в терминах зависимости между парами модулей.
Анализ модульных связей строится на том, что каждая пара модулей имеет конечную (возможно, нулевую) вероятность, изменения в одном модуле вызовут изменения в другом модуле.
Данная модель позволяет на этапе тестирования, а точнее при тестовой сборке системы, определять возможное число необходимых исправлений и время, необходимое для доведения ПС до рабочего состояния.
Основываясь на описанной процедуре
оценки общего числа изменений, требуемых
для доводки ПС, можно построить
две различные стратегии
• фиксировать все ошибки в одном выбранном модуле и устранить все побочные эффекты, вызванные изменениями этого модуля, отрабатывая таким образом последовательно все модули;
• фиксировать все ошибки нулевого порядка в каждом модуле, затем фиксировать все ошибки первого порядка и т.д.
Исследование этих стратегий доказывает, что время корректировки ошибок на каждом шаге тестирования определяется максимальным числом изменений, вносимых в ПС на этом шаге, а общее время — суммой максимальных времен на каждом шаге.
Это подтверждает известный факт, что тестирование обычно является последовательным процессом и обладает значительными возможностями для параллельного исправления ошибок, что часто приводит к превышению затрачиваемых на него ресурсов над запланированными.
Для удостоверения качества надежности и безопасности применения сложных, критических ИС используемые в них ПС следует подвергать обязательной сертификации аттестованными, проблемно-ориентированными испытательными лабораториями. Такие испытания необходимо проводить, когда программы управляют сложными процессами или обрабатывают столь важную информацию, что дефекты в них или недостаточное качество могут нанести значительный ущерб. Сертификационные испытания должны устанавливать соответствие комплексов программной документации и допускать их к эксплуатации в пределах изменения параметров внешней среды, исследованных при проведенных проверках. Эти виды испытаний характеризуются наибольшей строгостью и глубиной проверок и должны проводиться специалистами, не зависимыми от разработчиков и заказчиков (пользователей). Испытания ПС должны опираться на стандарты, формализованные методики и нормативные документы разных уровней. Множество видов испытаний целесообразно упорядочивать и проводить поэтапно в процессе разработки для сокращения затрат на завершающихся сертификационных испытаниях.
Сертификация комплексов программ
является их испытанием в наиболее
жестких условиях тестирования особым
третейским коллективом специалистов,
имеющим право на официальный
государственный или
Специалисты-сертификаторы
Информация о работе Общая характеристика моделей надежности программных средств