- •Восточно-сибирский государственный технологический университет
- •Метрология программного обеспечения
- •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. Модели надежности программ
Целесообразность управления надежностью обосновывается следующим:
необходимостью достижения разумного компромисса между объемом памяти и времени выполнения.
для самооценки достигнутого уровня технологии программирования
для оценки завершения тестирования
для оценки целесообразности модернизации программных средств
4.4.1. Модели надежности по по структуре времени
МОДЕЛЬ ДЖЕЛИНСКОГО - МОРАНДЫ
Это одна из первых и наиболее простых моделей классического типа, послужившая стимулом для дальнейших разработок в этой области. Модель использовалась при разработке ПО для весьма ответственных проектов. В ее основу были положены следующие допущения:
интенсивность обнаружения ошибок R (t) пропорциональная текущему числу оставшихся (первоначальных) ошибок минус обнаруженные;
все ошибки одинаково вероятны и их появление не зависит друг от друга;
каждая ошибка имеет один и тот же порядок серьезности;
время до следующего отказа распределено экспоненционально;
ПО функционирует в среде, близкой к реальным условиям;
Ошибки постоянно корректируются без внесения в ПО новых
R (t) = const в интервале между двумя смежными моментами появления ошибок.
В соответствии с этими допущениями можно функцию риска представить в следующем виде:
K[B – (i - 1)
Где t – производная точка времени между обнаружением (i – 1)-й и i-й ошибок; K-неизвестный коэффициент пропорциональности; B- исходное (неизвестное) общее число оставляющихся в ПО ошибок.
Полагая и используя допущение 7, можно утверждать, что все Xi имеют экспоненциальное распределение:
P(Xi) = exp{ - K [B – (i - 1)] Xi},
а плотность вероятности отказов соответственно равна
exp{ - K [B – (i - 1)] Xi}
Тогда функция правдоподобия (согласно допущению 2)
Оценка максимального правдоподобия для К:
Нелинейное уравнение для оценки максимального правдоподобия величины :
Прежде чем пытаться решать уравнение, его можно упростить:
Итак, получение оценки для сводится лишь к вычислению начальных значений функций и для m+n+1, n+2, … и анализу разности . Обе функции в этой области являются монотонно убывающими. Для это очевидно, а для существует рекуррентное соотношение, позволяющее легко вычислить,
Получить конечное решение в области возможно тогда и только тогда, если
В противном случае единственной оценкой максимального правдоподобия будет . Проверку условия проще осуществлять в другом виде:
Необходимо отметить, что величина А является как бы интегральной характеристикой проведенных наблюдений за n ошибками ПО и заменяет (в статистическом смысле) набор интервалов между ошибками. Если величина А достаточно большая, то полученная оценка приближается к n – числу обнаруженных к данному моменту ошибок. Это создает радужное впечатление о том, что процесс тестирования близок к завершению, тогда как в действительности B может быть больше n.
Рассмотрим пример использования изложенного метода в применении к данным этапа отладки одной программной системы. В течение 250 дней было найдено 26 ошибок; интервалы, зафиксированные между ошибками, приведены в табл. 1. Для приведенных данных n=26 и
Среднее время до появления (n+1)-й ошибки есть величина, обратная оценочной интенсивности для предыдущей ошибки,
Таблица 1
i |
Xi |
i |
Xi |
i |
Xi |
|
m |
f26(m) |
g26(m, A) |
f26(m)- g26(m, A) |
1 |
9 |
8 |
8 |
15 |
4 |
|
27 |
3.854 |
2.608 |
1.246 |
2 |
12 |
9 |
5 |
16 |
1 |
|
28 |
2.891 |
2.371 |
0.520 |
3 |
11 |
10 |
7 |
17 |
3 |
|
29 |
2.427 |
2.172 |
0.255 |
4 |
4 |
11 |
1 |
18 |
3 |
|
30 |
2.128 |
2.005 |
0.123 |
5 |
7 |
12 |
6 |
19 |
6 |
|
31 |
1.912 |
1.861 |
0.051 |
6 |
2 |
13 |
1 |
20 |
1 |
|
32 |
1.744 |
1.737 |
0.007 |
7 |
5 |
14 |
9 |
|
|
|
33 |
1.608 |
1.628 |
-0.020 |
Примечание. Принятые обозначения: i – номер ошибки; Xi – время между ошибками, дни. |
|
34 |
1.496 |
1.532 |
-0.036 |
В данном случае дн., а всего до окончания тестирования остается дн. Хотя полученная оценка несколько оптимальна, общее время поиска первых пяти из этих ошибок составило 290 дн., что довольно точно совпадает с предсказанием модели.
ПРОСТАЯ ЭКСПОНЕНЦИАЛЬНАЯ МОДЕЛЬ
Главное отличие этой модели от предыдущей состоит в том, что с нами снято допущение 7 и таким образом функция риска перестает быть кусочно-постоянной. Пусть N(t) – число обнаруженных к моменту времени t ошибок и пусть функция риска пропорциональна числу оставшихся в ПО ошибок за минусом обнаруженных
Если учесть начальные условия N(0)= 0, R(0)=KB, то решением уравнения будет
Введем следующие обозначения: С учетом этих обозначений уравнение можно записать в виде:
Логарифмируем обе части этого равенства и переходя к дискретному времени ti , получим систему уравнений
Эту систему можно записать в векторно-матричном виде
AX=C.
где
Решением системы будет:
или, используя подробную запись,
.
Рассмотрим пример применения этой модели. В примере использован фрагмент дневника внесения изменений в реально разработанное ПО. Объем этого ПО, выражений в числе строк программного кода (использован язык Ассемблера), составлял 32 K . Временной дискрет был принят равным одному месяцу. При тестировании подсчитывалось, сколько ошибок было выявлено в течение каждого из 20 месяцев , составляющих часть этапа комплексной откладки (табл.2). Из табл. 2 видно, что за первый месяц интенсивность составляла 53 ошибки в месяц, за второй- 74 ошибки в месяц и т.д.
Таблица 2 Таблица 3
|
R |
|
R |
|
R |
|
R |
|
|
R |
R |
1 |
53 |
6 |
50 |
11 |
24 |
16 |
34 |
|
21 |
9 |
4 |
2 |
74 |
7 |
14 |
12 |
36 |
17 |
23 |
|
22 |
8 |
9 |
3 |
38 |
8 |
43 |
13 |
46 |
18 |
11 |
|
23 |
7 |
11 |
4 |
21 |
9 |
69 |
14 |
11 |
19 |
1 |
|
24 |
7 |
9 |
5 |
27 |
10 |
48 |
15 |
28 |
20 |
10 |
|
Сумма |
31 |
33 |
В результате расчетов найдены следующие оценки для параметров и функции риска: = 713, = 0,097.
Итак, оценочная функция риска для рассматриваемого примера имеет вид
.
На основании этой зависимости был сделан прогноз на следующие четыре месяца откладки (порядковые номера – 21, 22, 23, 24 – табл. 5). Отладка и тестирование ПО продолжались, и были получены очередные значения интенсивности ошибок R . Как видно из табл.3, прогноз достаточно хорошо подтвердился
Можно определить время, потребное для снижения интенсивности появления ошибок до одной за месяц:
.
Для нашего примера получается (месяцев с начала откладки). Таким образом, можно заключить, что модель несмотря на свою известную грубость и простоту вполне работоспособна и может успешно применятся при разработке ПО.
МОДЕЛЬ ШИКА - УОЛВЕРТОНА
В основу модели, положено предположение о том, что функция риска пропорциональна не только числу ошибок в ПО, но и величине времени тестирования. Предполагается также, что по мере тестирования программы возрастают шансы обнаружения последующих ошибок из-за «подчистки» участков программы с ошибками.
Допущения, лежащие в основании модели, выглядят так:
появление ошибок равновероятно и независимо;
все ошибки имеют одинаковую степень серьезности;
ПО работает в условиях, близких к реальным;
ошибки корректируются без введения новых.
Функция риска для этой модели имеет следующий вид:
где - время тестирования, прошедшее от момента обнаружения (i-1) ошибки до текущего момента .
Для вероятности безотказной работы имеем следующее выражение:
что дает для плотности вероятности отказов
Взяв частные производные по переменным K и B от логарифма функции правдоподобия и приравняв их к нулю, получим следующие отношения:
Применим теперь рассмотренную модель к данным предыдущего примера.
где
.
Для n = 26 табл. 2 получается =231 826; A 22,477.
В табл. 4 сведены начальные значения для m>= n + 1. Нетрудно убедится, что навязка монотонно возрастает, не имея минимума модуля для конечных знаний m. Поэтому модель Шика-Уолвертона можно считать неадекватной рассматриваемым данным. Кроме такого вывода, условие существования решения необходимо дополнить верхней границей , лежащей, очевидно, между A и A . Численные расчеты на ЭВМ приводят к значению (для n = 26), при котором навязка становится величиной одного знака.
Таблица 4
m |
|
|
|
27 |
3,854 |
5,748 |
-1,894 |
28 |
2,891 |
4,708 |
-1,817 |
29 |
2,427 |
3,986 |
-1,559 |
30 |
2,128 |
3,456 |
-1,328 |
… |
… |
… |
… |
60 |
0,574 |
0,693 |
-0,119 |
МОДЕЛИ ЛИПОВА
Эти модели являются обобщением моделей Джелинского- Моранды и Шика – Уовертона соответственно. В отличие от предыдущих, в них допускается появление более одной ошибки на одном интервале тестирования, а также разрешается корректировка не всех обнаруженных на данном интервале ошибок. В основе первой модели (обобщения модели Джелинского- Моранды) лежат следующие допущения:
все появления ошибок равновероятны и независимы;
все ошибки имеют один порядок серьезности;
интенсивность обнаружения ошибок постоянна на всем интервале тестирования;
ПО работает в условиях, близких к реальным;
На i-м интервале тестирования обнаруживается ошибок, но только из них корректируется.
Последнее, пятое допущение существенно отличает эту модель от предыдущих. Таким образом, функция риска может быть представлена следующим выражением:
где - общее число скорректированных к моменту ошибок, а - время ( измеренное обычным образом или таймером процессора) конца i-го интервала тестирования. Отличие от модели Джелинского-Моранды состоит еще и в том, что значения времени фиксированы, а не случайны.
Полагая , что число отказов (обнаруженных в ПО ошибок) на i-m интервале есть случайная величина с распределением Пуассона. Имеем для функции правдоподобия следующее выражение:
Система уравнений для нахождения оценок максимального правдоподобия для B:
;
где - общее число ошибок, обнаруженных в в M интервалах тестирования; , - общая протяженность испытаний,
.
Если , т.е. на данном интервале времени обнаруживается только одна ошибка и (все обнаруженные ошибки корректируются), то полученные при этом оценки и их разброс совпадают с оценками модели Джелинского-Моранды.
В основу второй модели Липова (обобщение модели Шика-Уолвертона) положено следующее допущение. Уровень обнаружения ошибок пропорционален текущему содержанию ошибок в программе и общему времени, затраченному на ее тестирование, включая и среднее время поиска ошибки из текущего интервала тестирования. Учитывая это, функция риска может быть представлена выражением
где - общее число скорректированных к моменту ошибок. От первой модели Липова отличается появлением второго сомножителя, который отражает временной ход тестирования.
Оценки, проведенные аналогично предыдущим, по методу максимального правдоподобия, приводят к уравнениям:
где
Интегральная характеристика для второй модели Липова есть
и составляет для n=26, что больше . Также как и в случае применения модели Шика-Уолвертона к рассматриваемым данным, осмысленного решения уравнений (2.25) нет и вторая модель Липова неприменима.