Файл: Федеральное государственное образовательное бюджетное учреждение.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 12.01.2024
Просмотров: 606
Скачиваний: 11
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
Федеральное государственное образовательное бюджетное учреждение
«Поволжский государственный университет телекоммуникаций и информатики»
Часть 1 Основные методы обеспечения качества функционирования……………………4
Тема 1.7 Математические модели описания статистических характеристик ошибок..............16
Тема 1.8 Анализ рисков и характеристик качества программного обеспечения ….…………19
Часть 1. Основные методы обеспечения качества функционирования
Программная избыточность используется для контроля и обеспечения достоверности наиболее важных решений по обработке информации. Она заключается в сопоставлении результатов обработки одинаковых исходных данных программами, различающимися используемыми алгоритмами, и в исключении искажений при несовпадении результатов. Программная избыточность необходима также для реализации программ автоматического контроля и восстановления данных с использованием информационной избыточности и для функционирования всех средств обеспечения надежности, использующих временную избыточность.
Средства оперативного программного контроля включаются после использования прикладных и сервисных программ, поэтому средства программного контроля обычно не могут обнаружить непосредственно причину возникновения искажения вычислительного процесса или данных и фиксирует только последствия первичного искажения, т.е. вторичную ошибку. Результаты первичного искажения могут приобрести катастрофический характер при запаздывании их обнаружения и локализации.
Для обеспечения надежности дефекты нужно обнаружить с минимальным запаздыванием, при этом желательны минимальные затраты аппаратных ресурсов, поэтому используются иерархические схемы контроля, при которых последовательно используется несколько методов в порядке углубления контроля и увеличения затрат до выявления источника искажения.
Целесообразно акцентировать ресурсы на потенциально наиболее опасных дефектах и достаточно частых режимов восстановления: при искажениях программ и данных, при перегрузках по производительности и при параллельном использовании программ.
Тема 1.6 Первичные ошибки, вторичные ошибки и их проявление
При тестировании и отладке обычно сначала обнаруживаются вторичные ошибки, т. е. результаты проявления исходных дефектов, которые являются первичными ошибками. Локализация и корректировка таких первичных ошибок приводит к устранению ошибок, первоначально обнаруживаемых в результатах функционирования программ. Проявление дефектов и ошибок в разной степени влияет на работоспособность программ.
По величине ущерба проявление вторичных ошибок делятся на 3 группы:
-
сбои, которые не отражаются на работоспособности программ, ущербом от которым можно пренебречь, -
ординарные отказы, ущерб от которых находится в некоторых допустимых пределах, -
катастрофические отказы, ущерб от которых так велик, что определяет безопасность применения данного ПС.
Характеристики и конкретные реализации первичных ошибок не позволяют однозначно предсказать типы и степень проявления вторичных ошибок. На практике простейшие ошибки программ и данных могут привести к катастрофическим последствиям. В то же время системные дефекты могут только немного ухудшать эксплуатационные характеристики и не отражаются на безопасности функционирования ПС.
Статистика ошибок в программных комплексах и их характеристики могут служить ориентиром для разработчиков при распределении усилий на отладку. Однако регистрация, сбор и анализ характеристик ошибок в программах – это сложный и трудоемкий процесс. Кроме того, разработчики программ не афишируют свои ошибки. Все это препятствует получению объективных данных об ошибках.
Первичные ошибки в порядке усложнения их обнаружения можно разделить на следующие виды:
-
технологические ошибки подготовки данных и документации, -
программные ошибки из-за неправильной записи текста программ на языке программирования и ошибок трансляции программы в объектный код, -
алгоритмические ошибки, связанные с неполным формулированием необходимых условий решения и некорректной постановкой задач, -
системные ошибки, обусловленные отклонением функционирования ПС в реальной системе и отклонением характеристик внешних объектов от предполагаемых при проектировании.
Перечисленные ошибки различаются по частоте и методам их обнаружения на разных этапах проектирования. При автономной и в начале комплексной отладки доля системных ошибок составляет около 10%. На завершающих этапах комплексной отладки она возрастает до 35-40%. В процессе сопровождения системные ошибки являются преобладающими и составляют около 80% от всех ошибок. Частота появления вторичных ошибок при функционировании программ и частота их обнаружения при отладке зависит от общего количества первичных ошибок в программе. Наиболее доступно для измерения число вторичных ошибок в программе, выявленных в единицу времени в процессе тестирования. Возможна также регистрация отказов и искажение результатов при эксплуатировании программ.
Тема 1.7 Математические модели описания статистических характеристик
ошибок в программах
Путем анализа и обобщения экспериментальных данных в реальных разработках было предложено несколько математических моделей, описывающих основные закономерности изменения суммарного количества вторичных ошибок в программах.
Модели имеют вероятностный характер, и достоверность прогнозов в значительной степени зависит от точности исходных данных.
Модели дают удовлетворительные результаты при относительно высоких уровнях интенсивности проявления ошибок, т.е. при невысокой надежности ПС.
В этих условиях математические модели предназначены для приближенной оценки:
-
потенциально возможной надежности функционирования программ в процессе испытаний и эксплуатации; -
числа ошибок, оставшихся не выявленными в анализируемых программах; -
времени тестирования, требующегося для обнаружения следующей ошибки в функционирующей программе; -
времени, необходимого для выявления всех имеющихся ошибок с заданной вероятностью.
Построение математических моделей базируются на предположении о жесткой связи между следующими тремя параметрами: суммарным количеством первичных ошибок в программе, числом ошибок, выявленных в единицу времени в процессе тестирования и отладки, интенсивностью искажения результатов в единицу времени на выходе комплекса программ при нормальном его функционировании из-за невыявленных первичных ошибок. Предполагается, что все три показателя связаны коэффициентом пропорциональности (рис.1).
Рисунок 3 – Суммарное число первичных ошибок (сплошная кривая), число ошибок, выявляемых в единицу времени (пунктир), интенсивность искажения результатов в единицу времени (штрих-пунктир) в зависимости от времени отладки
В настоящее время описаны несколько математических моделей, основой которых являются различные гипотезы о характере проявления вторичных ошибок в программах.
Экспоненциальная математическая модель распределения ошибок в программах основана на следующих предположениях:
-
Интервалы времени между обнаруживаемыми искажениями результатов предполагаются статистически независимыми. -
Интенсивность проявления ошибок остается постоянной пока не произведено исправление первичной ошибки или не изменена программа по другой причине. Если каждая обнаруженная ошибка исправляется, то значения интервалов времени между их проявлениями изменяются по экспоненциальному закону. -
Интенсивность обнаружения вторичных ошибок пропорциональна суммарному числу первичных ошибок, имеющихся в данный момент в комплексе программ.
Приведенные предположения позволяют построить экспоненциальную математическую модель распределения ошибок в программах и установить связь между интенсивностью обнаружения ошибок при отладке dn/dt, интенсивностью проявления ошибок при нормальном функционировании комплекса программ и числом первичных ошибок.
Предположим, что в начале отладки комплекса программ при t=0 в нем содержалось N первичных ошибок. После отладки в течение времени t осталось по первичных ошибок и устранено п ошибок (n0+n = N ). При этом время t соответствует длительности исполнения программ на компьютере для обнаружения ошибок и не учитывает время, необходимое для анализа результатов и проведения корректировок. Календарное время отладочных и испытательных работ с реальным комплексом программ больше, так как после тестирования программ, на которое затрачивается машинное время t, необходимо время на анализ результатов, на обнаружение и локализацию ошибок, а также на их устранение.
Однако для определения характеристик проявления ошибок играет роль только длительность непосредственного функционирования программ на компьютере. При постоянных усилиях на тестирование и отладку интенсивность обнаружения искажений вычислительного процесса, программ или данных вследствие еще невыявленных ошибок пропорциональна количеству оставшихся первичных ошибок в комплексе программ.
Как уже отмечалось, предположение о сильной корреляции между значениями n и dn/dt достаточно естественно и проверено анализом реальных характеристик процесса обнаружения ошибок. Тогда dn/dt=K1k=Kn0=K(N0-n), где коэффициенты К и К1 учитывают: масштаб времени, используемого для описания процесса обнаружения ошибок, быстродействие компьютера, распределение тестовых значений на входе проверяемого комплекса и другие параметры. Значение коэффициента К можно определить, как изменение темпа проявления искажений при переходе от функционирования программ на специальных тестах к функционированию на нормальных типовых исходных данных. В начале отладки — это различие может быть значительным, однако, при завершении отладки и при испытаниях тестовые данные практически совпадают с исходными данными нормальной эксплуатации. Поэтому ниже К1 полагается равным единице (К1 =1). Таким образом, интенсивность обнаружения ошибок в программе и абсолютное число устраненных первичных ошибок связываются уравнением: dn/dt + Kn = KN0 Так как выше предполагалось, что в начале отладки при t =0 отсутствуют обнаруженные ошибки, то решение уравнения имеет вид: n=N0 [1-exp(-Kt)]. Число оставшихся первичных ошибок в комплексе программ n0 = N0 exp(-Kt) пропорционально интенсивности обнаружения dn/dt с точностью до коэффициента К. Наработка между проявлениями ошибок, которые рассматриваются как обнаруживаемые искажения программ, данных или вычислительного процесса, равна величине, обратной интенсивности обнаружения ошибок T = 1 / (dndt) = 1/KN0 * exp (Kt)
Следует подчеркнуть статистический характер приведенных соотношений. Дальнейшая детализация модели описания характеристик программных ошибок связана с уточнением содержания и значения коэффициента пропорциональности К и с учетом затрат на отладку.
При исследовании ошибок в программах различными авторами был сформулирован ряд уточнений и допущений, отличных от приведенных выше. Эти допущения, а также специфические методы построения послужили основой создания нескольких более сложных математических моделей, отличающихся от простейшей экспоненциальной.
Однако ни одна из этих моделей не имеет явных преимуществ по точности аппроксимации распределений и прогнозирования числа программных ошибок по сравнению с простейшей_экспоненциальной_моделью.
Тема 1.8 Анализ рисков и характеристик качества программного обеспечения
при внедрении
Под качеством программного обеспечениябудем понимать совокупность свойств ПО, обусловливающих его пригодность удовлетворять определенные потребности пользователей и специалистов, участвующих в создании и сопровождении ПО. Из приведенной формулировки следует, что не все свойства ПО входят в его качество, а только та их совокупность, которая определяется потребностью в этом ПО. Качество программного продукта можно определить как «пригодность к использованию». Качество должно гарантироваться процессом разработки. Контроль качества программного продукта — это систематические действия, подтверждающие пригодность к использованию программного продукта в целом. Цель контроля качества — дать количественные меры качества программной системы.
Под свойством (характеристикой) ПО будем понимать объективную особенность ПО (программ и документации), проявляющуюся при его разработке, эксплуатации и сопровождении. Свойства ПО можно условно разделить на функциональные и конструктивные. Функциональные свойства отражают возможности и специфику применения программы и обусловливают степень ее соответствия своему целевому назначению. Они характеризуют программу с точки зрения того, как в действительности она выполняется. Конструктивные свойства программы более или менее не зависят от ее функциональных возможностей и назначения. Они характеризуют программу с точки зрения того, как в действительности она сконструирована.
Для объективной оценки качества ПО его свойства необходимо охарактеризовать количественно.