- •Восточно-сибирский государственный технологический университет
- •Метрология программного обеспечения
- •220400 «Программное обеспечение вычислительной техники и автоматизированных систем»
- •Введение
- •1. Роль стандартизации в развитии разработок в области информационных технологий.
- •1.1. Нормативно-методическая база стандартизации по
- •1.2. Основные направления стандартизации процессов разработки программных средств.
- •2. Стандартизация информационных технологий: состояние и перспективы развития.
- •2.1. Современное состояние стандартизации в мире
- •2.2. Состояние и проблемы стандартизации в России
- •3. Система показателей качественных и количественных характеристик программного продукта
- •3.1. Стандартизация характеристик качества
- •3.2. Выбор показателей качества
- •3.3. Оценки качества по
- •4. Модели и метрики оценки качества по
- •4.1. Оценка сопровождаемости программ.
- •4.2. Корректность
- •4.3. Метрики сложности программ
- •4.3.1. Метрики размера программ
- •4.3.2. Метрики сложности потока управления программ.
- •3.4.3. Метрики сложности потока данных
- •4.4. Модели надежности программ
- •4.4.1. Модели надежности по по структуре времени
- •4.4.2. Методы оценки числа оставшихся в по ошибок, основанные на метриках Холстеда
- •4.4.3. Методы оценки показателей надежности по, основанные на моделях «посева» и разметки ошибок и на моделях структуры входных данных.
- •4.4.4. Методы оценки, основанные на моделях структуры входных данных
- •4.4.5. Текстовые модели надежности по
- •4.5. Метрики стилистики и понятности программ
- •4.6. Метрика изменения длины программной документации.
- •4.7. Методы проведения контроля за качеством по
- •5. Сертификация программного обеспечения
- •5.1. Понятие сертификации
- •5.2. Виды сертификации программного обеспечения
- •5.3. Органы сертификации программного обеспечения в Российской Федерации
- •Список используемой литературы
4.4.5. Текстовые модели надежности по
СОДЕРЖАНИЕ ТЕКСТОВЫХ МОДЕЛЕЙ ПО
Существенное отличие текстовых моделей от классических, использующих распределения появления ошибок во времени, состоит в том, что здесь основную роль играют распределения ошибок по тексту программы. Сам текст программы, как правило, является линейным и одномерным множеством некоторых синтаксических элементов языка программирования. Сам текст ПО упорядочен либо номерами строк, либо своим расположением на носителе информации, либо порядком реальных физических адресов, в которых располагается исполняемый загрузочный модуль. В зависимости от способа упорядочения ПО появляется и соответствующая метрика размера, которую в дальнейшем будем называть длиной программы и обозначать N. Метрика длины в общем случае является отличной от длины программ Холстеда.
Рассмотрим По, имеющее суммарную длину N и состоящее из программных модулей длины Ni, так что . Здесь будем рассматривать принципы деления ПО на отдельные модули, отметим лишь случайный характер этого процесса для достаточно больших N. Над созданием такого По работает большая группа программистов, реализующих отдельные модули, которые затем соединяются в общее ПО. Это позволяет высказать простую гипотезу о статистической независимости длин отдельных модулей. Иными словами, появление границ модулей по их длине можно рассматривать как случайный пуассоновский процесс. Известно, что в этом случае интервалы между такими событиями имеют показательное распределение с плотностью
где А=1/Nср – интенсивность появления модулей на единицу длины; Nср - средняя длина модуля.
Рассмотрим теперь распределение возможных ошибок по длине программы. Будем считать, что любая возможная ошибка может быть локализована в конкретном месте программы. При этом некоторая логическая ошибка затрагивает несколько операторов языка, то она считается за несколько ошибок – искажений текста. Ошибка привязывается в самом тексте ПО по его длине с точностью до единицы используемой метрики (оператор, символ или физический адрес). В каждом модуле ПО, как правило, обнаруживаются ошибки в случайных, внешне никак не связанных частях текста программы. Поэтому правдоподобным будет предположение о независимости распределения ошибок по длине каждого модуля. Иначе говоря, число ошибок Bi в модуле длины Ni распределено пуассоновским образом
где Bi = 0, 1, 2, …, а так как величина Ni случайная, то все распределение условное.
Параметр с имеет смысл интенсивности проявления ошибок на единицу длины программного модуля, так что величина Bcp=cNcp – среднее число ошибок в одном модуле, и соответственно B=cN – общее число ошибок в ПО.
Для простоты полагаем параметр с постоянной величиной, хотя реально он может зависеть от технологии разработки модуля, квалификации программиста и ряда других факторов.
Используя формулу полной вероятности, можно получить безусловное распределение величины ошибок в одном модуле. Полагая число модулей достаточно большим, перейдем от суммы к интегралу
сделав подстановку t = (A+c)N, найдем
Отсюда следует, что для B получена плотность геометрического распределения с параметрами
Можно привести следующую интерпретацию данного результата. Рассмотрим совместную последовательность двух различных событий, каждое из которых проявляется в программе:
окончание модуля программы;
появление ошибки в некотором месте программы.
Если A и с – cсоответственно интенсивности этих событий, то по формуле основной вероятности можно рассчитать параметры p и q (условные вероятности наступления событий 1и 2, при условии, что имело место одно из них). Таким образом, образом, непосредственно длина программы в данной модели не влияет на конечное распределение ошибок по модулям. Значение имеет лишь интенсивность чередования событий, а не точная привязка их к месту программы. При этом отношение интенсивностей указанных событий равно среднему числу ошибок, приходящихся на один модуль: . Это непосредственно следует из того, что и . Отметим, что геометрическое распределение есть дискретный аналог непрерывного пуассоновского процесса.