Разработка верхнего уровня Информационной Системы Университета
Mas2=Массив входящих сообщений от сервера.
Алгоритм процедуры получения приоритета (Get_priority)
Рис. 27
8.10. Алгоритм процедуры приема сообщения (Get_message)
Алгоритм представлен на рисунках 28 - 31.
Алгоритм процедуры приема сообщения (Get_message)
Рис. 28
Рис. 29
Рис. 30
Рис. 31
8.11. Алгоритм процедуры отправки объявления (Send_message)
Алгоритм процедуры отправки объявления (Send_message)
Алгоритм представлен на рисунке 32.
8.12. Другие процедуры ИСУ
Алгоритмы процедур Datas_up2, Datas_up3, Datas_Down2 и Datas_Down3 по
своим выполняемым действиям аналогичны процедурам Datas_up и Datas_Down, по
этой причине были выпущены из рассмотрения. Описание выполняемых функций и
способов их реализации без построения модульной схемы представлены в выше
лежащих главах дипломного проекта.
Проверка на завершение представлена на рисунке 33.
Рис. 33
9. Описание информационных массивов
9.1. Информационные массивы "Сервера"
Некоторые информационные массивы, существующие в системе, были описаны
выше. Помимо них в системе представлены следующие структуры данных.
9.1.1. Массив объявлений
Структура массива "Массив объявлений" представлена в таблице 7.
Таблица 7 - Массив объявлений
|Название поля |Условное обозначение |Размерность |
|Идентификатор устройств |Status_bar |Integer |
|Время начала вывода сообщения |Time_B |Data |
|Текст сообщения |Text |Blob |
|Приоритет сообщения |Priority |Integer |
|Адрес источника |Login |String |
"Идентификатор устройств" - представляет собой двух байтовую
структуру, которая кодирует все устройства в системе. Если пользователь
выбрал то или иное устройство, то некоторый бит Идентификатора устройств,
принимает значение бинарной единицы.
9.1.2. Динамический массив
Данный массив содержит информацию о функционировании нижнего уровня в
любой момент времени. В случае любого сбоя или по запросу, можно обновить
или получить необходимую информации о функционировании устройства нижнего
уровня в любой момент времени. Структура динамического массива представлена
в таблице 8.
Таблица 8 - Структура динамического массива
|Название поля |Размерность |
|Номер устройства |Integer |
|Занят |Boolean |
|Номер объявления |Integer |
Данный массив представляет собой массив записей по количеству
имеющихся устройств. Номер устройства идентифицирует устройство нижнего
уровня. Переменная "Занят" говорит о функционировании устройства в данный
момент времени. Если переменная "Занят" имеет значение истинно в "Номер
объявления" находится номер объявления, которое устройство выводит в
данный момент времени.
9.1.3. Оперативная справка
Содержит массив, состоящий из 60 элементов динамического массива.
Данный массив служит для оперативной выдачи информации о функционировании
системы за последний час. Оперативная справка имеет циклическую структуру.
При начале каждого цикла вся информация, содержащаяся в массиве,
сохраняется на диске, в долгосрочной справке.
9.1.4. Долгосрочная справка
Массив, содержащий сведения, о функционировании нижнего уровня системы
начиная с начала жизненного цикла ИСУ. Служит для анализа функционирования
системы в любой момент времени или за некоторый промежуток.
9.1.5. Массив сообщений в системе
Любое сообщение, входящее в систему или исходящее из нее преобразуется
в тип String и помещается в массив сообщений в системе. Который имеет
циклическую структуру и содержит 100 элементов. При заполнении всех 100
элементов, массив копируется на диск и добавляется к массиву сообщений.
После чего заполнение массива сообщений в системе начинается заново.
9.1.6. Массив сообщений
Содержит все сообщения в системе начиная с момента запуска системы и
служит для анализа функционирования системы в любой момент времени на
протяжении всего жизненного цикла ИСУ.
9.1.7. Временный массив объявлений
Все объявления принятые системой помещаются во временный массив
объявлений и имеет такую же структуру, как и массив объявлений
представленную в таблице 7. Данный массив состоит из 5 записей и служит
для исключения возможности потери объявления принятых системой. Т.е. если
система на данный момент времени выполняет, какую либо функцию, и не имеет
возможности обработать объявления пришедшее в ИСУ, то данное объявление
помещается во временный массив объявлений для последующей обработки. Массив
имеет циклическую структуру и по мере обработки принятого объявления,
объявление удаляется или точнее переносится в массив "Массив объявлений".
9.1.8. Массив не опубликованных объявлений
Данный массив содержит информацию об объявлениях, которые следует
выводить в данный момент времени. Имеет структуру представленную в таблице
9.
Таблица 9 - Массив не опубликованных объявлений
|Название поля |Размерность |
|Номер устройства |Integer |
|Номер объявления |Integer |
|Идентификатор присутствия |Boolean |
Количество записей в данном массиве равно количеству устройств в
системе. Процедура Processing отвечает за заполнения массива не
опубликованных объявлений. Как только приходит время опубликования какого
либо объявления, она помещает номер объявления в "Номер объявления" и
переменная "Идентификатор присутствия" принимает значение истинно.
9.1.9. Устройства
Данный массив описывает все устройства существующие в системе.
Структура его представлена в таблице 10.
Таблица 10 - Устройства
|Название поля |Размерность |
|Номер устройства |Integer |
|Физический адрес устройства в сети |Long Integer |
|Не работает |Boolean |
|Описание |String |
"Номер устройства" однозначно идентифицирует устройство в системе. "Не
работает" показывает способно устройство выполнять свои функции на данный
момент времени. Описание содержит краткую характеристику устройства. В
данную переменную можно поместить ответы на вопросы : Что за устройство,
где расположено и др.
На диске содержится копия массива "Устройства". Это позволяет в
случае, каких либо неполадок оперативно восстановить массив "Устройства".
9.1.10. База данных пользователей
База данных пользователей служит для хранения информации обо всех
клиентах, которые пользуются услугами ИСУ. Изменение, удаление, добавление
записей к "Базе данных пользователя" имеет право только администратор
системы. База данных может быть как текстовый файл с необходимой
информацией так и специализированной базой данных доступ к которой возможен
только по средствам предоставляемым Системой Управления Базой Данных или
SQL запросами.
Структура Базы данных пользователей представлена в таблице 11.
Таблица 11 - База данных пользователей
|Название поля |Условное обозначение |Размерность |
|№ |Number |Integer |
|Фамилия |Last_name |String |
|Имя |Firs_name |String |
|Отчество |Patronymic |String |
|Имя в сети |Login |String |
|Приоритет |Priority |Integer |
|Пароль |Password |String |
|Запретить подачу |Forbid |Boolean |
|объявлений | | |
9.2. Информационные массивы Клиента
Массивы, входящие сообщения от сервера и исходящие сообщения серверу
описаны в главе "Описание функционирования верхнего уровня ИСУ (Клиент) ".
Как и "Сервер", "Клиент" имеет массив "Устройств". Данный массив
копируется с "Сервера" с помощью запроса с "Типом сообщения" 08.
Клиент также постоянно оперирует с переменными "Сетевое имя",
"Приоритет", "Пароль", "Ок". Они служат для получения права опубликования
своих объявлений в системе, и для отправки и получения пакетов от сервера.
10. Надежность ПО
10.1. Аналитические модели надежности
Аналитическое /15-17/ моделирование НПС включает четыре шага:
определение предположений, связанных с процедурой тестирования ПС;
разработка или выбор аналитической модели, базирующейся на предположениях о
процедуре тестирования;
выбор параметров моделей с использованием полученных данных;
применение модели - расчет количественных показателей надежности по модели.
10.2. Динамические модели надежности
Модель Шумана. Исходные данные для модели Шумана, которая относится к
динамическим моделям дискретного времени, собираются в процессе
тестирования ПС в течение фиксированных или случайных временных интервалов.
Каждый интервал - это стадия, на которой выполняется последовательность
тестов и фиксируется некоторое число ошибок.
Модель Шумана может быть использована при определенным образом
организованной процедуре тестирования. Использование модели Шумана
предполагает, что тестирование проводится в несколько этапов. Каждый этап
представляет собой выполнение программы на полном комплексе разработанных
тестовых данных. Выявленные ошибки регистрируются (собирается статистика об
ошибках), но не исправляются. По завершении этапа на основе собранных
данных о поведении ПС на очередном этапе тестирования может быть
использована модель Шумана для расчета количественных показателей
надежности. После этого исправляются ошибки, обнаруженные на предыдущем
этапе, при необходимости корректируются тестовые наборы и проводится новый
этап тестирования. При использовании модели Шумана предполагается, что
исходное количество ошибок в программе постоянно и в процессе тестирования
может уменьшаться по мере того, как ошибки выявляются и исправляются. Новые
ошибки при корректировке не вносятся. Скорость обнаружения ошибок
пропорциональна числу оставшихся ошибок. Общее число машинных инструкций в
рамках одного этапа тестирования постоянно.
Предполагается, что до начала тестирования в ПС имеется Ет ошибок. В
течение времени тестирования ( обнаруживается (c ошибок в расчете на
команду в машинном языке.
Таким образом, удельное число ошибок на одну машинную команду,
оставшихся в системе после т времени тестирования, равно:
[pic], (1)
где IT — общее число машинных команд, которое предполагается постоянным в
рамках этапа тестирования.
Автор предполагает, что значение функции частоты отказов Z(t)
пропорционально числу ошибок, оставшихся в ПС после израсходованного на
тестирование времени (:
[pic], (2)
где С — некоторая константа;
t — время работы ПС без отказа.
Тогда, если время работы ПС без отказа 1 отсчитывается от точки t = 0,
а ( остается фиксированным, функция надежности, или вероятность безотказной
работы на интервале времени от 0 до t, равна:
[pic]; (3)
[pic].
(4)
Из величин, входящих в формулы (3) и (4), не известны начальное
значение ошибок в ПС (ЕT) и коэффициент пропорциональности - С. Для их
определения прибегают к следующим рассуждениям. В процессе тестирования
собирается информация о времени и количестве ошибок на каждом прогоне, т.е.
общее время тестирования[pic]( складывается из времени каждого прогона:
[pic]. (5)
Предполагая, что интенсивность появления ошибок постоянна и равна (,
можно вычислить ее как число ошибок в единицу времени:
[pic], (6)
где Аi — количество ошибок на i-м прогоне.
[pic]. (7)
Имея данные для двух различных моментов тестирования (a и (b, которые
выбираются произвольно с учетом требования, чтобы (c((b)0. (16)
Достоинство этой модели по сравнению с предыдущей заключается в том,
что можно исправлять ошибки, внося изменения в текст программы в ходе
тестирования, не разбивая процесс на этапы, чтобы удовлетворить требованию
постоянства числа машинных инструкций.
Модель Lа Раdula. По этой модели выполнение последовательности тестов
производится в т этапов. Каждый этап заканчивается внесением изменений
(исправлений) в ПС. Возрастающая функция надежности базируется на числе
ошибок, обнаруженных в ходе каждого тестового прогона.
Надежность ПС в течение i-го этапа:
[pic], i = 1,2,3,…, (17)
где А—параметр роста;
[pic] при i ( (.Т.е R(() - предельная надежность ПС.
Эти неизвестные величины автор предлагает вычислить, решив следующие
уравнения:
[pic], (18)
[pic], (19)
где Si. — число тестов;
mi, — число отказов во время i-го этапа:
т — число этапов;
i=1,2, ...,т.
Определяемый по этой модели показатель есть надежность ПС на i-м
этапе:
[pic], i = m+1, m+2 … (20)
Преимущество модели заключается в том, что она является прогнозной и,
основываясь на данных, полученных в ходе тестирования, дает возможность
предсказать вероятность безотказной работы программы на последующих этапах
ее выполнения.
Модель Джелинского-Моранды. относится к динамическим моделям
непрерывного времени. Исходные данные для использования этой модели
собираются в процессе тестирования ПС. При этом фиксируется время до
очередного отказа. Основное положение, на котором базируется модель,
заключается в том, что значение интервалов времени тестирования между
обнаружением двух ошибок имеет экспоненциальное распределение с частотой
ошибок (или интенсивностью отказов), пропорциональной числу еще не
выявленных ошибок. Каждая обнаруженная ошибка устраняется, число оставшихся
ошибок уменьшается на единицу.
Функция плотности распределения времени обнаружения 1-й ошибки,
отсчитываемого от момента выявления 1-1-и ошибки, имеет вид:
[pic], (21)
где (i — частота отказов (интенсивность отказов), которая пропорциональна
числу еще не выявленных ошибок в программе:
[pic] (22)
где N — число ошибок, первоначально присутствующих в программе; С —
коэффициент пропорциональности.
Наиболее вероятные значения величин [pic] и [pic](оценка
максимального правдоподобия) можно определить на основе данных, полученных
при тестировании. Для этого фиксируют время выполнения программы до
очередного отказа (t1, t2, t3, … tk,).
Значения [pic] и [pic] предлагается получить, решив систему уравнений:
[pic], (23)
[pic], (24)
где
Q=В/АК;[pic];[pic]. (25)
Поскольку полученные значения [pic] и [pic] - вероятностные и точность
их зависит от количества интервалов тестирования (или количества ошибок),
найденных к моменту оценки надежности, асимптотические оценки дисперсий
авторы предлагают определить с помощью следующих формул:
[pic], (26)
[pic], (27)
где
D = KS/C2 и [pic]. (28)
Чтобы получить числовые значения (i нужно подставить вместо N и С их
возможные значения [pic] и [pic]. Рассчитав К значений по формуле (22) и
подставив их в формулу (21), можно определить вероятность безотказной
работы на различных временных интервалах. На основе полученных расчетных
данных строится график зависимости вероятности безотказной работы от
времени.
Модель Шика-Волвертона. Модификация модели Джелинского-Моранды для
случая возникновения на рассматриваемом интервале более одной ошибки
предложена Волвертоном и Шиком. При этом считается, что исправление ошибок
производится лишь после истечения интервала времени, на котором они
возникли. В основе модели Шика-Волвертона лежит предположение, согласно
которому частота ошибок пропорциональна не только количеству ошибок в
программах, но и времени тестирования, т.е. вероятность обнаружения ошибок
с течением времени возрастает. Частота ошибок (интенсивность обнаружения
ошибок) (i, предполагается постоянной в течение интервала времени ti, и
пропорциональна числу ошибок, оставшихся в программе по истечении (i - 1)-
го интервала; но она пропорциональна также и суммарному времени, уже
затраченному на тестирование (включая среднее время выполнения программы в
текущем интервале):
[pic]. (29)
В данной модели наблюдаемым событием является число ошибок,
обнаруживаемых в заданном временном интервале, а не время ожидания каждой
ошибки, как это было для модели Желинского-Моранды. В связи с этим модель
относят к группе дискретных динамических моделей, а уравнения для
определения С и N имеют несколько иной вид:
[pic] , (30)
где
[pic], (31)
[pic]. (32)
ti — продолжительность временного интервала, в котором наблюдается Мi
ошибок;
Тi-1 — время, накопленное за (i—1) интервалов:
[pic], T0=0 . (33)
ni-1 — суммарное число ошибок, обнаруженных за период от первого до (i
-1)-го интервала времени включительно:
[pic], n0=0 . (34)
М — общее число временных интервалов;
[pic] — суммарное число обнаруженных ошибок. (35)
При М = 1 уравнения (30) приобретают вид уравнений (21).
Таким образом, модель Джелинского-Моранды является частным случаем
модели Шика-Волвертона для случая, когда при тестировании фиксируется время
до появления очередной ошибки.
Модель Муса. Модель Муса относят к динамическим моделям непрерывного
времени. Это значит, что в процессе тестирования фиксируется время
выполнения программы (тестового прогона) до очередного отказа. Но
считается, что не всякая ошибка ПС может вызвать отказ, поэтому допускается
обнаружение более одной ошибки при выполнении программы до возникновения
очередного отказа.
Считается, что на протяжении всего жизненного цикла ПС может произойти
М0 отказов и при этом будут выявлены все N0 ошибки, которые присутствовали
в ПС до начала тестирования.
Общее число отказов Мо связано с первоначальным числом ошибок N0
соотношением
N0 = ВМ0, (36)
где В — коэффициент уменьшения числя ошибок.
В момент, когда производится оценка надежности, после проведения
тестирования, на которое потрачено определенное время (, зафиксировано m
отказов и выявлено п ошибок.
Тогда из соотношения:
п=Вт (15) , (37)
можно определить коэффициент уменьшения числа ошибок В как число,
характеризующее количество устраненных ошибок, приходящихся на один отказ.
В модели Муса различают два вида времени:
1) суммарное время функционирования (, которое учитывает чистое время
тестирования до контрольного момента, когда производится оценка надежности;
2) оперативное время t- время выполнения программы, планируемое от
контрольного момента и далее, при условии, что дальнейшего устранения
ошибок не будет (время безотказной работы в процессе эксплуатации).
Для суммарного времени функционирования ( предполагается:
интенсивность отказов пропорциональна числу не устраненных ошибок;
скорость изменения числа устраненных ошибок, измеряемая относительно
суммарного времени функционирования,. пропорциональна интенсивности
отказов.
Один из основных показателей надежности, который рассчитывается по
модели Муса, - средняя наработка на отказ. Этот показатель определяется как
математическое ожидание временного интервала между последовательными
отказами и связан с надежностью:
[pic], (38)
где t — время работы до отказа.
Если интенсивность отказов постоянна (т.е. когда длительность
интервалов между последовательными отказами имеет экспоненциальное
распределение), то средняя наработка на отказ обратно пропорциональна
интенсивности отказов. По модели Муса средняя наработка на отказ зависит от
суммарного времени функционирования (:
[pic], (39)
где T0 — средняя наработка на отказ в начале испытаний (тестирования);
С - коэффициент сжатия тестов, который вводится для устранения
избыточности при тестировании. Если, например, один час тестирования
соответствует 12 ч работы в реальных условиях, то коэффициент сжатия тестов
равен 12.
Параметр То - средняя наработка на отказ до начала тестирования, можно
предсказать из следующего соотношения:
[pic], (40)
где f — средняя скорость исполнения программы, отнесенная к числу команд
(операторов);
К — коэффициент проявления ошибок, связывающий частоту возникновения
ошибок со "скоростью ошибок", которая представляет собой скорость, с
которой бы встречались ошибки программы, если бы программа выполнялась
линейно (последовательно по командам). В настоящее время значение К
приходится определять эмпирическим путем по однотипным программам. Его
значение изменяется от 1.54*10-7 до 3.99*10-7;
N0 — начальное число ошибок — можно рассчитать с помощью другой
модели, позволяющей определить эту величину на основе статистических
данных, полученных при тестировании (например, модель Шумана). Надежность R
для оперативного периода ( выражается равенством:
[pic]. (41)
Если в договоре с заказчиком оговорена требуемая величина наработки на
отказ ТF, то можно определить число отказов (m и дополнительное время
функционирования (тестирования) ( (, обеспечивающее заданное ТF. Их можно
рассчитать по формулам:
[pic], (42)
[pic]. (43)
По результатам тестовых испытаний можно определить значение
коэффициента В из соотношения (37) и М0 - из соотношения (34). По
договорной величине требуемой средней наработки на отказ ТF и рассчитанной
по модели Муса текущей средней наработки на отказ Т можно сделать
заключение о необходимости продолжать или, возможно, закончить тестирование
программ. В случае необходимости продолжения работ по тестированию для
достижения требуемой средней наработки на отказ модель дает возможность
предсказать число возможных отказов (m (формула (42)) и дополнительное
время тестирования ( ( (формула (43)).
Модель переходных вероятностей. Эта модель основана на марковском
процессе, протекающем в дискретной системе с непрерывным временем.
Процесс, протекающий в системе, называется марковским (или процессом
без последствий), если для каждого момента времени вероятность любого
состояния системы в будущем зависит только от состояния системы в настоящее
время t0 и не зависит от того, каким образом система пришла в это
состояние. Процесс тестирования ПС рассматривается как марковский процесс.
В начальный момент тестирования (t=0) в ПС было n ошибок.
Предполагается, что в процессе тестирования выявляется по одной ошибке.
Тогда последовательность состояний системы (n, n-1, n-2, n-3} и т.д.
соответствует периодам времени, когда предыдущая ошибка уже исправлена, а
новая еще не обнаружена. Например, в состоянии n-5 пятая ошибка уже
исправлена, а шестая еще не обнаружена.
Последовательность состояний {т, т-1, т-2, т-3 и т.д.} соответствует
периодам времени, когда ошибки исправляются. Например, в состоянии т-1
вторая ошибка уже обнаружена, но еще не исправлена. Ошибки обнаруживаются с
интенсивностью (, а исправляются с интенсивностью (.
Предположим, в какой-то момент времени процесс тестирования
остановился. Совокупность возможных состояний системы будет: 5={ n, т, n-1,
n-1, n-2, m-2, . . . }.
Система может переходить из одного состояния в другое с определенной
вероятностью Pij. Время перехода системы из одного состояния в другое
бесконечно мало.
Вероятность перехода из состояния n-k в состояние m-k есть (n-k(t (
для k = 0, 1, 2, ... . Соответственно вероятность перехода из состояния m-k
в состояние n-k-1 будет (m-k(t для k=0,1,2,....
Общая схема модели представлена на рисунке 34. Если считать, что (1 и
(1 зависят от текущего состояния системы, то можно составить матрицу
переходных вероятностей представленной в таблице 12.
Общая схема модели
[pic]
Рис. 34
Таблица 12 - Модель многих состояний ПС
|1-(n(t |(n(t |0 |0 |0 … | |0 … |
|0 |1-(m(t |(m(t |0 |0 … | |0 … |
|0 |0 |1-(n-1(t |(n-1(t | | | |
|0 |0 |0 |1-(m-1(t | | | |
|……………… |……………… |……………… |……………… |……………. |1-(n-k(t |(n-k(t |
| | | | | |0 |1-(m-k(t |
Пусть S'(t) - случайная переменная, которой обозначено состояние
системы в момент времени t.
В любой момент времени система может находиться в двух возможных
состояниях: работоспособном либо неработоспособном (момент исправления
очередной ошибки).
Вероятности нахождения системы в том или ином состоянии определяются
как:
Pn-k(t) = P(S’(t)=n-k), k=1,2,3,… (44)
Pm-k(t) = P(S’(t)=m-k), k=1,2,3,… (45)
Готовность системы определяется как сумма вероятностей нахождения ее в
работоспособном состоянии:
[pic]. (46)
Под готовностью системы к моменту времени t понимается вероятность
того, что система находится в рабочем состоянии во время t.
Надежность системы после t (времени отладки, за которое уже выявлено К
ошибок, т.е. система находится в состоянии n-k (К-я ошибка исправлена, а
(К+1)-я еще не обнаружена), может быть определена из состояния:
[pic], (47)
где [pic] — интервал времени, когда может появиться (К+ 1)-я ошибка;
[pic] — принятая постоянная интенсивность проявления ошибок.
Рассмотрим решение модели для случая, когда интенсивность появления
ошибок ( и интенсивность их исправления (- постоянные величины.
Составляется система дифференциальных уравнений:
[pic];
[pic], k=1,2,3,… (48)
[pic], k=0,1,2,3,…
Начальными условиями для решения системы могут являться:
Pn(0) = 1;
Pn-k(0) = 0; k=1,2,3,… (49)
Pm-k(0) = 0; k=1,2,3,…
При имеющихся начальных условиях система уравнений может быть решена
классически или с использованием преобразований Лапласа.
В результате решения определяются Pn-k и Pm-k для случая, когда ( и (
- константы.
Для общего случая отбросим ограничение постоянства интенсивностей
появления и исправления ошибок и предположим, что
[pic], k=1,2,3,…, (50)
т.е. являются функциями числа ошибок, найденных к этому времени в ПС.
Система дифференциальных уравнений для такого случая имеет вид:
[pic]
[pic], K=1,2,3, … (51)
[pic], K=1,2,3, …
Начальные условия для решения системы будут:
Pn(0)=1;
Pn-k(0)=0; k=1,2,3,… (52)
Pm-k(0)=0; k=1,2,3,…
Система может быть решена методом итераций Эйлера. Предполагается, что
в начальный период использования модели значения Х и р должны быть получены
на основе предыдущего опыта разработчика. В свою очередь, модель позволяет
накапливать данные об ошибках, что дает возможность повышения точности
анализа на основе предыдущего моделирования. Практическое использование
модели требует громоздких вычислений и делает необходимым наличие ее
программной поддержки.
10.3. Статические модели надежности
Статические модели принципиально отличаются от динамических прежде
всего тем, что в них не учитывается время появления ошибок в процессе
тестирования и не используется никаких предположений о поведении функции
риска А..((). Эти модели строятся на твердом статистическом фундаменте.
Модель Миллса. Использование этой модели предполагает необходимость
перед началом тестирования искусственно вносить в программу ("засорять")
некоторое количество известных ошибок. Ошибки вносятся случайным образом и
фиксируются в протоколе искусственных ошибок. Специалист, проводящий
тестирование, не знает ни количества, ни характера внесенных ошибок до
момента оценки показателей надежности по модели Миллса. Предполагается, что
все ошибки (как естественные, так и искусственно внесенные) имеют равную
вероятность быть найденными в процессе тестирования.
Тестируя программу в течение некоторого времени, собирается статистика
об ошибках. В момент оценки надежности по протоколу искусственных ошибок
все ошибки делятся на собственные и искусственные. Соотношение:
[pic][pic], (53)
дает возможность оценить N - первоначальное число ошибок в программе. В
данном соотношении, которое называется формулой Миллса, S - количество
искусственно внесенных ошибок, n - число найденных собственных ошибок, V -
число обнаруженных к моменту оценки искусственных ошибок. Например, если в
программу внесено 50 ошибок и к некоторому моменту тестирования обнаружено
25 собственных и 5 внесенных ошибок, то по формуле Миллса делается
предположение, что первоначально в программе было 250 ошибок.
Вторая часть модели связана с проверкой гипотезы от N Предположим, что
в программе имеется К собственных ошибок| и внесем в нее еще S ошибок. В
процессе тестирования были обнаружены все S внесенных ошибок и n
собственных ошибок.
Тогда по формуле Миллса мы предполагаем, что первоначально в программе
было N = n ошибок. Вероятность, с которой можно высказать такое
предположение, возможно рассчитать по следующему соотношению:
1, если n К, и наше предположение о том, что в программе нет ошибок, на 100%
не подтвердилось.
Таким образом, величина С является мерой доверия к модели и показывает
вероятность того, насколько правильно найдено значение N. Эти два связанных
между собой по смыслу соотношения образуют полезную модель ошибок: первое
предсказывает возможное число первоначально имевшихся в программе ошибок, а
второе используется для установления доверительного уровня прогноза. Однако
формула (54) для расчета С не может быть использована в случае, когда не
обнаружены все искусственно рассеянные ошибки. Для этого случая, когда
оценка надежности производится до момента обнаружения всех 5 рассеянных
ошибок, величина С рассчитывается по модифицированной формуле (55):
1, если n>K
C= [pic][pic], если n(K, (55)
где числитель и знаменатель формулы при n < К являются биноминальными
коэффициентами вида:
[pic]. (56)
В действительности модель Миллса можно использовать для оценки N после
каждой найденной ошибки. Предлагается во время всего периода тестирования
отмечать на графике число найденных ошибок и, текущие значения для N.
Достоинством модели являются простота применяемого математического
аппарата, наглядность и возможность использования в процессе тестирования.
Однако она не лишена и ряда недостатков, самые существенные из которых
- это необходимость внесения искусственных ошибок (этот процесс плохо
формализуем) и достаточно вольное допущение величины К, которое
основывается исключительно на интуиции и опыте человека, проводящего
оценку, т.е. допускает большое влияние субъективного фактора.
Модель Липова. Липов модифицировал модель Миллса, рассмотрев
вероятность обнаружения ошибки при использовании различного числа тестов.
Если сделать то же предположение, что и в модели Миллса, т.е. что
собственные и искусственные ошибки имеют равную вероятность быть
найденными, то вероятность обнаружения п собственных и V внесенных ошибок
Страницы: 1, 2, 3, 4
|