3. Отказы и их классификация

Обеспечение надёжности прикладного программного обеспечения (Раздел 3)

1.

Раздел 3. Обеспечение
надёжности прикладного
программного обеспечения

2.

1. Причины и проявление
ненадёжности прикладных
компьютерных программ

3.

По мнению специалистов
вклад программного обеспечения (ПО) в ненадёжность
сложных информационнокомпьютерных систем может
составлять до 40 процентов.

4.

Согласно ГОСТ 28806-90 под
надёжностью (reliability) программного средства (ПС) понимают
совокупность свойств, характеризующих способность ПС сохранять
заданный уровень пригодности
в заданных условиях в течение
заданного интервала времени.

5.

Уровень пригодности ПС – это
степень удовлетворения потребностей пользователей посредством
обеспечения определённого набора
характеристик качества, среди которых важнейшим является функциональность.
ГОСТ 28806-90
Качество программных средств.
Термины и определения

6.

Формы проявления ненадёжности прикладных компьютерных
программ (КП) разнообразны:
«зависание» программы, переполнение памяти, невозможность продолжения выполнения из-за некорректности входных данных, деление на нуль и т.д.

7.

Частота появления ошибок в программном обеспечении:
Тип ошибки
Не полная или ошибочная
спецификация
Отклонение от спецификации
Пренебрежение правилами
программирования
Ошибочная выборка данных
Ошибочная логика или
последовательность операций
Ошибочные арифметические операции
Нехватка времени для решения
Ошибка обработки прерываний
Ошибка в исходных данных
Неточная запись
Частота
появления, %
28
12
10
10
12
9
4
4
3
8

8.

В качестве единственно приемлемой количественной характеристикой измерения размера (объёма)
программы, определяющей надёжность прикладной КП, является
число исполняемых строк программного кода (в англоязычном варианте LOC – Lines Of Code).

9.

Ненадёжность прикладных КП
большого размера (тыс.…млн LOC)
является следствием наличия в
программах скрытых неявных ошибок, оставшихся после выполнения
процедуры их тестирования в
течение выделенного бюджета
времени на разработку программ.

10.

Объём (размер) программ в выполняемых
строках (LOC) программного кода:
ОС
ОС
Косми- Косми- Самолёт
ПС
ческая ческий Boeing Windows Windows
(объект)
станция корабль
777
95
XP
LOC,
млн
40
10
7
5
40

11.

Надёжность ПС определяется
качеством его отладки и глубиной
тестирования.
Целью тестирования является
не тотальное обнаружение всех
ошибок (для ПС большого размера
это принципиально невозможно), а
выявление наибольшего количества наиболее критичных ошибок с
точки зрения функциональности
компьютерной программы.

12.

Среднее число ошибок , приходящихся на
тысячу строк кода (KLOC) после тестирования
программ варьируется от 5 до 50 ошибок.
Число
ош/KLOC

13.

2. Количественные показатели
для описания надёжности
прикладных компьютерных
программ

14.

По ГОСТ 27.205-1997 о прогноз-
ной надёжности разрабатываемой
компьютерной программы можно
судить по интенсивности проявления ошибок (λ), обусловленных
дефектами её проектирования.

15.

Использование λ в качестве характеристики надёжности компьютерной программы удобно тем, что её
можно оценивать по прогнозируемой плотности ошибок
F в программе.

16.

Плотность ошибок F это
отношение вида
Количество возможных ошибок в КП (N ош )
F
.
Число строк кода (L)
Прогнозирование плотности отказов не
требует знания среды исполнения компьютерной программы и, следовательно, подходит для ранних этапов разработки программного обеспечения.

17.

В качестве основной характеристики безотказности выполнения программой своих функций,
согласно ГОСТ, можно использовать вероятность того, что прикладная КП безотказно выполнит
обработку одного произвольного
набора исходных данных.

18.

Эту вероятность P1 определяют
в предположении
экспоненциаль-ного закона
распределения време-ни
проявления отказов при использовании прикладной КП:
P1 exp экс t1 ,
(*)

19.

где λэкс – ожидаемая (прогнозируемая) эксплуатационная интенсивность отказов прикладной КП,
размерность [1/ч = ч–1];
t1 – среднее время (в часах)
обработки прикладной КП одного
набора исходных данных.

20.

Вероятность того, что оставшиеся ошибки в прикладной КП не
проявятся в течение заданного
календарного времени τ находят
по формуле
P( ) P1 , (**)
где η - частота обращения к прикладной КП, прогнозное значение
среднего числа сеансов («прогонов») программы за один час.

21.

3. Эксплуатационная
надёжность прикладных
компьютерных программ

22.

После устрания ошибок, обусловленных нарушением правил языка
программирования прикладная КП
характеризуется начальным уровнем надёжности – начальной инте-
нсивностью отказов λ0.

23.

Надёжность, которую показывает прошедшее тестирование
прикладная КП в условиях её реального использования называют
эксплуатационной надёжностью (λэкс).

24.

4. Факторы, влияющие на
интенсивность отказов
компьютерной программы

25.

Факторы, оказывающие наибольшее влияние на значение λэкс
и, следовательно, вероятность P1:
– прогнозное число оставшихся
в ПКП скрытых ошибок и их размещение в структуре программы;
– степень изменчивости потока
наборов исходных данных на
входе ПКП;

26.

– уровень нагрузки на ПКП со
стороны эксплуатационной среды,
а именно: загрузка и выгрузка
модулей ПКП из памяти, нахождение операций ввода-вывода в очереди, наличие состояний ожидания и т.д.).

27.

Что касается влияния быстродействия R процессора компьютера, то на компьютерах с более
высоким R интенсивность проявле-
ния ошибок λ будет иметь большее
значение. В то же время в этом
случае процессорное время t1 обработки данных будет меньше.

28.

В общем случае произведение,
λэкс∙ t1 = const,
т. е. быстродействие R процессора компьютера фактически не
влияет на значение вероятности,
определяемой по формуле
P1 exp экс t1 .

29.

6. Влияние объёма
компьютерной программы на
её надёжность

30.

Установлено, что для интенсивности (λ) проявления скрытых ошибок справедливо выражение
Cп Nош Cп F L
где Cп – коэф-т пропорциональности;
Nош – число оставшихся ошибок в
прикладной КП;
F – плотность ошибок в приклад-ной
КП: (F = Nош / L);
L – объём КП в исполняемых строках
программного кода (L = LOC).

31.

В данном случае коэф-т пропорциональности Cп зависит от области применения прикладной КП и
быстродействия R процессора
компьютера.

32.

7. Прогнозирующие модели
надёжности прикладных
компьютерных программ

33.

Под моделью надёжности КП
понимают математическую модель, построенную для оценки зависимости надёжности программы
от некоторых определённых её параметров, значения которых либо
предполагаются известными, либо
должны быть определены (спрогнозированы).

34.

В практике находят широкое
применение модель Муса и модель
Холстеда.
Согласно модели Муса интенсивность отказов КП до начала
тестирования (λ0) с учётом быстродействия процессора R определится как
0,7 R
R
0 C V N0 3600 C
F0 L 2520 C F0 L,
B
B

35.

где C – к-т проявления ошибок КП;
V – средняя скорость выполнения
команд компьютерной программы;
R – пиковое быстродействие процессора, указываемое в технической
документации, размерность: оп/с;
B – количество команд (операто-ров) в
КП;
множитель 3600 – к-т перевода R в
размерность «оп/ч»;
множитель 0,7 – средний к-т, учитывающий реальное быстродействие
процессора.

36.

F0 – начальная плотность ошибок в КП (после написания кода и
устранения нарушений правил
языка программирования).
Скорость V представляет собой
возможное число прогонов КП в
течение одного часа.
На основе экспериментальных данных определены значения к-та С для
прикладных КП разных областей применения.

37.

Область применения
прикладной КП
К-т C,
1/ошибка
К-т KΣ
Значение FБ,
ошибка / KLOC
1. Авиация
1,246 10-7
5,23
12,8
2. Мониторинг и обеспечение безопасности
0,238 10-7
1,00
9,2
3. Телекоммуникации,
мобильные устройства
2,738 10-7
11,5
7,8
4. Управление производственными
процессами
0,754 10-7
3,17
1,8
5. АСУ
4,563 10-7
19,2
8,5
6.Разработка КП,
моделирование,
обучение
3,353 10-7
14,1
12,3
Среднее
2,103 10-7
8,83
8,7
Назад

38.

Удобно к-т С представить в
виде произведения:
C = СБ ∙Kвх ∙Kн = СБ ∙KΣ,
где СБ – базовое значение к-та
проявления ошибок программы;

39.

Kвх – к-т увеличения λ, обусловленный изменчивостью входных
данных;
Kн – к-т увеличения λ, обусловленный рабочей нагрузкой на
прикладную КП;
KΣ – суммарный к-т увеличения
λ, обусловленный совместным
действием изменчивости входных
данных и рабочей нагрузки на
прикладную КП.

40.

В качестве базового значения
коэффициента проявления ошибок
СБ выбран коэффициент С для
прикладных КП, предназначенных
для мониторинга и обеспечения
безопасности:
СБ = 0,238 10-7 1/ошибка.

41.

Для прикладных КП этого назначения суммарный к-т KΣ = 1,0.
Значения к-тов KΣ для прикладных КП других областей применения > 1.
Таблица

42.

8. Приближённый метод
оценки ожидаемой надёжности
разрабатываемых прикладных
компьютерных программ

43.

Рекомендуемая последовательность
действий:
1. Ожидаемую начальную
интенсивность отказов КП, т.е. интенсивность проявления скрытых
ошибок до выполнения тестирования (λ0), определяют по модели
60 K Vпик F L 10 ,ч ,
(i )
0
(i )
(i )
0
6
1

44.

где верхний индекс (i) указывает
на то, что соответствующие характеристики относятся к прикладной
КП i-й области применения;
Vпик - пиковая скорость выполнения команд компьютерной программы (скорость для пикового
быстродействия процессора R),
определяемая как Vпик = R/B.

45.

2. Эксплуатационную интенсивность отказов прикладной КП
(ожидаемое проектное значение λ
после тестирования) находят как
λ0
λ экс
,
Q
где Q – к-т эффективности тестирования прикладной КП, Q > 1.

46.

3. Определив значение процессорного времени t1, по формуле (*)
рассчитывают вероятность P1 –
вероятность безотказной обработки
одного набора исходных данных.
P1 exp экс t1 ,
(*)

47.

4. Вероятность безотказной работы прикладной КП в течение интересующего календарного времени τ находят по формуле (**) как
P( ) P1
,
где η – частота обращения к прикладной КП; является для заданного времени τ прогнозом среднего
числа сеансов («прогонов») программы за один час.

48.

9. Влияние области применения на
среднюю плотность ошибок в
разрабатываемой компьютерной
программе

49.

На значение F0 модели расчёта
λэкс оказывает влияние область применения будущей прикладной КП.
Экспериментально получены
усреднённые значения плотности
ошибок для прикладных КП разных областей применения. Их называют базовыми значениями начальной плотности ошибок КП (FБ).

50.

Область применения
прикладной КП
1. Авиация, космос
2. Мониторинг и обеспечение безопасности
3. Телекоммуникации,
мобильные устройства
4. Управление производственными процессами
5. АСУ
6. Разработка КП, моделирование, обучение
Среднее
Значение FБ,
ошибка / KLOC
12,8
9,2
7,8
1,8
8,5
12,3
8,7

51.

10. Определение
начальной плотности
отказов прикладной КП
(пересчёт базовой
плотности отказов)

52.

Рекомендуется использовать
модель RL-92-52, известную под
названием «Римская модель»:
F0 = FБ ∙ D ∙ S ,
где D – метрика, учитывающая производственную среду разработки
ПО: особенность организации, разрабатывающей КП, характеристику
группы программистов, их квалификацию;

53.

S – метрика, учитывающая характеристики разрабатываемой КП.
D = Kорг ∙ Kкв.прог ,
где Kорг к-т, характеризующий
особенность организации, разрабатывающей КП;
Kкв.прог к-т, учитывающий квалификацию и опыт программистов.
0,5 ≤ Kорг ≤ 2.

54.

Значения коэффициента Kкв.прог
Квалификация и опыт программиста Kкв.прог
1. Студент, освоивший программирование на уровне программы учебной
дисциплины технического вуза
2. Младший программист (Junior
Developer)
2,0
1,3
3. Программист (Middle Developer)
1,0
4. Ведущий программист (Senior
Developer)
0,7

55.

Определение метрики S:
S = Kслож ∙ KС.Р ∙ Kнов ∙ Kмод,
где Kслож к-т, учитывающий категорию сложности КП;
KС.Р к-т, учитывающий используемые средства разработки КП;
Kнов к-т, учитывающий сте-пень
новизны КП;
Kмод к-т, учитывающий сте-пень
использования стандартных
модулей в КП.

56.

Для выбора значений указанных
к-тов могут быть использованы
данные документа [*] с учётом
гипотезы о том, что число возможных ошибок в КП прямо пропорционально затратам труда на её
разработку.
* Постановление министерства труда и социальной защиты РБ 27 июня 2007 г. № 91 «Об
утверждении укрупнённых норм затрат труда на разработку программного обеспечения»
[Электронный ресурс].

57.

Например, согласно тому документу:
Выбор коэффициента Kмод
Степень охвата реализуемых функций КП стандартными модулями
Kмод
1. От 60% и выше
0,55
2. От 40 до 60%
0,65
3. От 20 до 40%
0,77
4. До 20%
0,9
5. Не используются стандартные
модули
1

58.

11. Обеспечение
эксплуатационной надёжности
компьютерной программы

59.

Рекомендуемая последовательность действий специалиста:
1. Уточняется интересующее
календарное время τ и число
возможных прогонов η прикладной КП в час для этого времени τ.

60.

2. С учётом допустимой (заданной) вероятности безотказной работы прикладной КП в течение календарного времени τ с использованием формулы (*) определяется
вероятность P1 безотказной обработки одного произвольного набора исходных данных:
P1 P( )
1

61.

3. С использованием формулы
P1 exp экс t1
определяется эксплуатационная
интенсивность проявления программой скрытых ошибок λэкс , обеспечивающая требование к вероятности P1:
ln P1
экс
t1

62.

4. Определяется значение к-та
эффективности тестирования, обеспечивающее требование к значению λэкс:
0
Q
,
экс
где λ0 - начальная интенсивность
отказов КП (до начала тестирования), определяемая

63.

12. Определение прогнозного
суммарного процессорного
времени тестирования
прикладной КП

64.

Примерное значение суммарного процессорного времени t, необходимого для обеспечения требуемого значения коэффициента эффективности тестирования Q может быть найдено по модели
B ln(Q)
t
, ч,
6
60 10 K R
где R должно подставляться в размерности [оп/с].

65.

Примерное значение B (число
команд прикладной КП) может
быть принято как
B ≈ L · EL = | EL =10| = 10 L∙EL.

66.

13. Определение нормативной
календарной трудоёмкости
процедуры тестирования
компьютерной программы

67.

Для прикладных КП требуемое
каледарное время тестирования
определяется с учётом того, каков
средний процент времени в течение рабочего дня занимает процессорная обработка данных по
прикладной программе.

68.

Средний процент времени, занимаеОбласть применения
мый процессорной обработкой дан-ных
прикладной КП
при тестировании программы, r[%]
1. Авиация, космос
2. Мониторинг и
обеспечение
безопасности
3. Телекоммуникации, мобильные
устройства
4. Управление
производственными
процессами
5. АСУ
6. Разработка программ, моделирование, обучение
Среднее
8
43
3,5
14
2,5
3
12

69.

Прогнозная календарная продолжительности тестирования для
обеспечения требуемого значения
к-та эффективности тестирования
Q прикладной КП может быть определена как
(i )
календ
T
100 t
(i ) ,
r
где верхний индекс (i) указывает
на параметры для i-й области применения

70. 3. Отказы и их классификация

71.

Под отказом понимают
событие, состоящее в
нарушении работоспособного
состояния изделия.
Отказ,
англ. - Failure

72.

Вид отказа: единица классификации отказов, исходящая из
установленных критериев:
• характера;
• причины;
• последствий отказа;
• функции, способность выполнения которой потеряна;
• изменения состояния изделия.

73.

15. Экспоненциальный закон
надёжности

74.

В
случае
EXP-распределения
времени до отказа
w( t ) = e
t
Тогда с использованием выражения
P(t ) w(t )dt
t
для любого интересующего времени t
получим

75.

P(t ) e
-λ t
- Формула известна под
названием
«экспоненциальный
закон надёжности»
Здесь λ – параметр EXP-распределения для рассматриваемого типа
изделия (численно равный интенсивности отказов этого изделия).
English     Русский Правила