Главная страница  Анализ эмпирических данных 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 [ 75 ] 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105

ИЗ. них. Дело в том, что для. каждого из четырех путей, ведущих в В4, реззльтат проверки В4 заранее предопределен. Это означает что, какими бы ни были входные данные, инициирующие выполнение конкретной ветви, идущей в В4, дальнейщее движение возможно только по строго заданному пути.

Разбиение множества Е входных данных из подмножества Gy соответственно логическим ветвям было выполнено для четырех программ Проекта 5. Контрольные примеры выполнялись для каждой ветви различных Gy. Полученный результат не был неожиданным, поскольку при разработке контрольных примеров использовались вспомогательные средства проверки программного обеспечения типа РАСЕ, созданные фирмой TRW. С помощью таких средств аналп-зпруется структура программы и обеспечивается получение необходимой информации для составления контрольных примеров, позволяющих проверить все ее ветви и сегменты. Для некоторых программ число контрольных примеров, необходимых для проверки всех ветвлений и сегментов, оказывается меньше, чем число подмножеств Gy, поскольку обычно в программах, и особенно в больших по объему, все сегменты и ветвления могут быть проверены путем тестирования лишь некоторого подмножества всех ветвей программы.

Дополнительные практические результаты использования МТНПО при разработке Проекта 5 рассматриваются в последующих разделах.

6.2. Разбиение совокупности входных данных на подмножества

Для проведения более детального анализа надежности программного обеспечения удобно множество Е разбить на несвязанные подмножества Sy:

E = SiUS2U ... US,= У Sy,

S]f\Sj = f для ij,

где ф обозначает пустое множество.



Р< + Р7 = Р;.

Тогда надежность программного обеспечения может быть выражена через Р/ или Р следующим образом:

N ft

= i-Zp7=Zp/.

Вероятность Р/ того, что набор входных данных Ej выбирается из Sy, равна

Р/= Е Pi, ZP;-!.

Даждое подмножество S,- в свою очередь может быть разбито на два подмножества S/ и S7, так что использование любого набора входных данных из S; приводит к правильному выполнению программы, а использование любого набора из S приводит к отказу. При этом

sjusrs/,

sr = {E,eS;:t/,= l},

где yi = 0, если использование Е,- приводит к правильному выполнению программы, и yi = 1, если в результате использования Е происходит отказ.

Вероятность Р] того, что набор входных данных принадлежит S/, равна

Р,-= Z ii-yi)Pi,

а вероятность того, что набор входных данных принадлежит S/, равна

причем



Один из возможных видов разбиения множества Е - разложение его на подмножества G,-, соответствующие логическим путям L,/ программы,- был рассмотрен в разд. 6.1. В этом случае Р/ представляет собой вероятность того, что ветвь L - будет вьшолняться, и Pi/Pj есть условная вероятность того, что при выборе входных данных из подмножества G/ эта ветвь будет выполняться правильно.

Поскольку последовательность операторов в ветви L/ является программой, ветвь L,- в соответствии с математическим определением программы может быть интерпретирована как описание функции Е/ на множестве G/. Для всех наборов входных данных Et е С/ выполняется одна и та же последовательность операторов L/ и ответвления от L,/ отсутствуют. Поэтому F/ можно рассматривать как непрерывную функцию от G/. Правильное выполнение, ветви при некотором наборе входных данных из G/ (например, Е) подтверждает, что программа дает правильное значение функции F,-(Eft). Если ветвь L/ выполнена правильно на наборе входных данных Е*, то вследствие непрерывности аргумента существует высокая вероятность того, что L,/ будет также правильно выполняться и на большинстве других Ег, принадлежащих G/. Покажем, что эта вероятность действительно высока.

Фактически L,/ определяет некоторую функцию, которая может быть обозначена через F/ и должна стремиться к Fj. Правильное выполнение L/ на нпборе входных данных Е означает, что

ЕИЕ,)-ЕИЕ,)<А

где Aft - допустимое отклонение Е/ от Fy.

Подобная форма записи указывает на то, что ло-пустимое отклонение может быть различным для каж-,1ого из наборов входных данных Ek, хотя обычно оно будет иметь одинаковое значение для некоторого подмножества G/. В тех случаях, когда отклонение должно быть равномерным на всей области определения функции F,-, используется обозначение Д/.

Множество разнотипных ошибок, которые могут присутствовать в программе L/, найдет свое отражение в определяемой функции F/, значения которой



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 [ 75 ] 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105

© 2000 - 2018 ULTRASONEX-AMFODENT.RU.
Копирование материалов разрешено исключительно при условии цититирования.