Конспект лекций, страница 30
Описание файла
PDF-файл из архива "Конспект лекций", который расположен в категории "". Всё это находится в предмете "основы надёжности технических систем" из 8 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "основы надёжности технических систем" в общих файлах.
Просмотр PDF-файла онлайн
Текст 30 страницы из PDF
Это значение напрямую показываетэффективность производимого тестирования. Если мы примем, что K не зависитот времени, тогда данное выражение имеет следующее решение:N (t )N 0e197 KtTL,где N0 – начальное число ошибок. Это выражение можно разложить в более понятную форму:N0N (t )N0 1 etKTL.Левая часть данного выражения соответствует µ(t), как оно было дано в начале.
Из этого выражение следует, что:0N0 ,1K.TLПараметры N0 , K и TL определяются исходя из выбранного подхода. Подходы для определения данных параметров будут показаны ниже.Интерпретация параметров экспоненциальной модели весьма проста. Еслипредположить, что t→∞, то согласно экспоненциальной моделиt0.Пара-метр β1 является коэффициентом масштаба для вероятности отказа на одну ошибку в программном комплексе.Для более простого определения начального параметра N0, введём понятиеFD – как плотность ошибок. Тогда для экспоненциальной моделиN0I s FD.Плюсы экспоненциальной модели в том, что она даёт хорошие результаты вшироком спектре задач при оценке достигнутой надёжности, и получила наибольшее распространение.
Экспоненциальную модель можно встретить почти вовсех программных продуктах по оценке надёжности программного обеспечения.Минусы данной модели в том, что она даёт неточные результаты при использовании в начале проекта, плохо показывает себя на задачах предсказания надёжностии несколько сложнее логарифмической модели.Экспоненциальная модель. Как и экспоненциальная модель, данная мо-дель построена на основе предположения, что распределение отказов происходитпо закону неоднородного Пуассоновского процесса. Данная модель имеет однонаиболее важное отличие. Логарифмическая модель предполагает, что плотностьотказов будет уменьшаться по отношению к числу ошибок по линейному закону в198 соответствии с обнаруженным числом ошибок, тогда как экспоненциальная модель предполагает, что соотношение между плотностью отказов и числом ошибокподчиняется экспоненциальному закону.
В 1992 было показано, что в большинстве случаев логарифмическая модель более точна, чем экспоненциальная модель.Логарифмическая модель более проста в использовании, но, тем не менее, экспоненциальная модель получила большее распространение.t0tln 11t0 111tПлюсы данной модели в том, что она даёт хороший результат в широкомспектре задач при предсказании надёжности программного обеспечения и проще,чем экспоненциальная.
Минусы данной модели в том, что она реже встречается впрограммных продуктах.Рассмотрим подходы, позволяющие получить параметры математическоймодели прогнозирования надежности программного обеспечения: архитектурныйподход и подходы типа «черная коробка».Подходы «черная коробка» трактуют программный продукт как единоецелое, не обращая внимания на его внутреннюю структуру.
Следующие параметры могут быть использованы, для предсказания надёжности данным методом:Параметры программного комплекса – число строк кода, количество условных операторов, циклов, переменных и другие статические параметры кодаили программного комплекса (например, опытность команды или критерий окончания тестирования).Масштаб тестирования – отношение между потенциальными местамиошибок, проверенными в процессе тестирования, разделённое на общее число потенциальных мест ошибок, найденных в результате анализа (потенциальным местом ошибки может являться любая структура или функция, которая требует проверки через соответственно разработанный тест).Время между сбоями – время между сбоями, полученное во время тестирования.199 Рассмотрим ряд методов, базирующихся на подходах «черная коробка»:Метод “плотности ошибок”(fault density).
Данный метод позволяет получить полное число ошибок в программном комплексе. Это возможно потому, чтоколичественное описание статических параметров кода близко связанно с распределением ошибок в коде. В подходе “плотность ошибок” используется опыт предыдущих похожих проектов в прошлом, для определения плотности ошибок (FD)программного продукта как:FDПолное число ошибокЧисло строк кодаТеперь, используя число строк кода в текущем проекте (N), мы можем получить число ожидаемых ошибок какFN FD .“Накопительной” метод. Этот метод предполагает, что численное значениеплотности ошибок может быть получено, как произведение ряда независимых параметров, эффект от каждого может быть оценён как множитель.
Такая модельтакже используется для оценки надёжности приборов. Также есть аддитивныемодели, но они имеют ряд недостатков (могут получить нулевую, либо отрицательную плотность ошибок). Для примера приведём несложную накопительнуюмодель:FD C Fph Fpt Fm Fs Frгде Fph – фактор фазы разработки ( написание, тестирование, выпуск ), Fpt – фактор команды, Fm – фактор развитости процесса разработки, Fs – фактор архитектуры программного продукта, Fr – фактор неустойчивости требований. После получения плотности ошибок, как и в предыдущем методе, мы можем получить общее число ошибок в программном комплексе.Ограничения и допущения:скорость, с которой обнаруживаются сбои, пропорциональна произведениюскорости обнаружения мест потенциальных ошибок на число оставшихсяошибок;200 ошибки равномерно распределены по всем проблемным местам;когда обнаружено проблемное место, любые ошибки в данном месте обнаруживаются с вероятностью d(t);исправления производиться моментально и без создания новых ошибок.Для «обхода» данных ограничений можно воспользоваться цепочками Маркова.Плюсами данного подхода является то, что он прост в применении и не требует каких-либо исследований внутренней структуры программного комплекса.Минусы данного подхода в том, что в случае многомодульного программногокомплекса данный метод делает избыточную работу по оценке надёжности какстарых, так и новых модулей, не позволяет оценивать программные комплексы смодулями от третьих фирм и не учитывает возможности ошибок при передачеуправления между модулями.Архитектурные подходы.
С увеличением количества организаций, зани-мающихся разработкой и использование программных продуктов не только, какцелостные системы, а как часть большой большего программного, возросла потребность в повторном использовании кода. Существующие подходы типа “Чёрная коробка” не подходят для оценки таких сложных программных комплексов,как комплексы основанные на компонентах.
Вместо них потребовался некий подход, который мог бы анализировать отдельные компоненты и как они связаннымежду собой. Встала цель получить подход “Белая коробка”, который мог быоценить надёжность системы с учётом архитектуры программного продукта.Предполагая, что программный комплекс написанный с нуля это скореевсего исключение, нежели чем правило. Современная практика показала, что развитие программного комплекса это скорее плавная эволюция из существующегокомплекса, что позволяет предсказывать некоторые параметры комплекса на основе ранее полученных данных.Архитектурный метод позволяет ответить, как зависит общая надёжностьпрограммного комплекса от надёжности отдельно взятого программного компонента. Это позволяет инженеру провести анализ системы, на предмет “что если?”:201 “Что если данный компонент менее надёжен?”, “Как будет зависеть общая надёжность системы от надёжности данного компонента?”.
Ответы на данные вопросы могут помочь сконцентрировать усилия на наиболее критичных направлениях.Все методы построены на основе следующих шагов:Выделение модуля. Модуль – это базовая единица в архитектурном методе.Хотя точного описания данного понятия не существует, мы будем считать, чтомодуль – это логически независимый программный компонент. Это означает, чтомодуль может быть разработан, сделан и оттестирован независимо от всего программного комплекса.
В дальнейшем понятие модуля и компонента будут означать одно и тоже.Архитектура программного комплекса – это описание взаимодействий между различными компонентами программного комплекса. Взаимодействие можетпроисходить только путём передачи управления. Таким образом мы получаем,что управление находиться только в одном модуле. Также архитектура может содержать информацию о времени исполнения каждого модуля.Характеристика сбоя – определяется как ошибка, произошедшая во времяисполнения какого-либо модуля либо во время передачи управления от одногомодуля другому. Характеристика сбоя может быть описана как надёжность данного модуля (либо модульного соединения) или как интенсивность возникновения ошибок.Взаимосвязь архитектуры и характеристик сбоя – в зависимости от метода, в литературе выделены три метода: подход основанный на состоянии системы,подход основанный на пути исполнения, слагаемый подход.Рассмотрим их более подробно:Подходы основанные на состоянии системы.
Подходы данного типа используют диаграмму исполнения программы для описания архитектуры системы.Предполагается, что передача управления от одного модуля другому происходитс некоторой вероятностью (атрибут Маркова), что означает, что зная, в каком модуле мы находимся в любой момент времени, мы можем определить на основе202 некоторых условий будущее поведение системы не рассматривая её поведение впрошлом. Данная модель называется “цепочки Маркова”.
Цепочки Маркова – этопространство, в котором система может находиться только в некоторых детерминированных состояниях S, и вероятность перехода из одного состояния в любоедругое состояние может быть заданна матрицей P.Рассмотрим один из наиболее старых и общих подходов подробно. Данныйподход – модель Литтлевуда (Littlewood). Эта модель определяет надёжность программного комплекса с учётом используемых модулей и степени их надёжности.Архитектура: подразумевается, что диаграмма выполнения программыимеет только один вход и один выход, и передача управления между модулямиможет быть описана динамической временной цепочкой Маркова (DTMC) с вероятностями переходов в виде матрицы P = [pij]. Время, проведённое в каждом модуле, задаётся функцией mij.Закономерность ошибок: Когда выполняется некоторый модуль, отказыпроисходят согласно Пуассоновскому процессу с параметром λi. Передача управления между модулями также может вызвать отказ, с вероятностью Vij.Метод решения: Главной целью данной модели является определение полного числа отказов сложного программного комплекса в временном интервале(0,t], описываемое функцией N(t).