Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1846

.pdf
Скачиваний:
0
Добавлен:
15.11.2022
Размер:
949.61 Кб
Скачать

принципу "сверху-вниз" с необходимым описанием контекста, в котором обнаружена ошибка.

На первом уровне классификационной схемы выделены

5признаков ошибки:

1)где произошла ошибка;

2)на что похожа ошибка;

3)как была сделана ошибка;

4)когда произошла ошибка;

5)почему произошла ошибка.

Каждый признак представлен в виде набора категорий, разделов и подразделов.

Проблема создания надежных программ имеет 2 сторо-

ны:

разработка средств и методов, применение которых в процессе создания программы позволит обеспечить ему высокие показатели надежности;

развитие самой теории надежности: создание стройной системы показателей надежности; планирование уровня надежности на начальных этапах разработки программы; возможность оценить показатели надежности по результатам испытаний программ; контроль уровня надежности в процессе эксплуатации программы и т.д.

Известно, что программы создаются коллективами разработчиков на протяжении определенного времени, после чего они могут поставляться пользователям для эксплуатации по назначению.

Это означает переход от кустарных методов создания программ к их промышленному производству, т.е. к становлению новой отрасли материального производства - производству программных средств.

В этих условиях технология программирования (ТП) как направление совершенствования средств и методов создания программ высокого качества является основой для промышленного производства программ. При этом возникает ряд задач организационного, методологического, структурного и техно-

131

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

Нисходящее проектирование (проектирование сверхувниз) основано на пошаговом уточнении и анализе потоков данных.

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

В процессе эксплуатации программы могут подвергаться незначительным изменениям и корректировке. Процесс эксплуатации программы продолжается до полного морального износа (физическому износу программа не подвержена) вследствие изменений внешней среды функционирования.

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

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

Под ресурсами в данном случае понимаются время на создание программы, стоимость, машинное время и т.д.

132

Внастоящее время остро встала проблема индустриализации процесса создания и сопровождения программы. Действенным шагом в решении этой проблемы является признание программы продукцией производственно-технического назначения.

Анализ потока данных базируется на исследовании процессов передачи и преобразования входных элементов. Первоначальный поток данных разбивается на вход, преобразование

ивыход, интерпретируемые в программы управления вводом, выводом, непосредственно обработки информации.

Рекурсивно используемый на отдельных ветвях древовидной структуры программы метод разбиения на вход, преобразование, выход позволяет получить модули низшего уровня.

Вметодах расширения ядра и восходящего проектирования (проектирование снизу-вверх) больше внимания уделяется не определению функций всей программы в целом, а тем частным функциям, которые потребуются проектируемой программе.

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

Вметоде восходящего проектирования определяются функции самого низкого уровня, обеспечивающие такие элементарные операции, как управление внешней памятью, выбор библиотечных процедур и т.д. Далее разработанные модули, реализующие эти функции, используются для определения функций и создания модулей более высокого уровня, таких, как обновление файлов, корректировка информации и других, которые, в свою очередь, включаются в части программы на

133

более высоком уровне. Процесс продолжается до тех пор, пока разработка программы не будет завершена [3].

Обе последние стратегии проектирования ориентированы на разработку небольших по объему вспомогательных систем с имеющимися аналогами реализации, а также могут использоваться при модификации программ.

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

Ктаким технологиям можно отнести HIPO-технологию

иследующие технологии:

PSL/PSA (Problem Statement lanquaqe/Problem Statement Analyzer), включающая язык и анализатор постановки задач;

SREM (Softwore Requrements Engineering Metodology),

методология разработки требований к ПО, ориентированная на разработку систем реального времени;

PDM (Process Design Metodology), методология проек-

тирования процессов, предназначенная для проектирования и тестирования ПС;

SADT (Structured Analysis and Design Technique), мето-

дология структурного анализа и проектирования, состоящая из графического языка ссылок и языка синхронизации, используемая при разработке систем самых широких классов и т.д.

С целью управления надежностью ПС возникает необходимость определения количественных показателей надежности на различных этапах его разработки.

Чем обосновывается эта необходимость?

1. Надежность программных средств (ПС), оставаясь ценным качеством, достигается в действительности за счет

134

двух основных моментов: во-первых, за счет другой характеристики ПС, например объема программ, времени их выполнения, объема внешней и оперативной памяти и т.д.; во-вторых, за счет характеристик процесса создания ПС, таких, как стоимость разработки, материальные ресурсы, выделенные на создание ПС, график выполнения работ и т.д. Желательно, чтобы при выборе характеристик ПС и организации процесса его разработки можно было принимать компромиссные решения.

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

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

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

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

Основным средством определения количественных показателей надежности являются модели надежности, под которыми понимают математическую модель, построенную для оценки зависимости надежности от заранее известных или оцененных в ходе создания ПС параметров. В связи с этим опреде-

135

ление надежности показателей принято рассматривать в единстве трех процессов - предсказание, измерение, оценивание.

Предсказание - это определение количественных показателей надежности исходя из характеристик будущего ПС мер, из объема, сложности и т.д. Обычно выполняется после проектирования, когда известна структура разрабатываемого ПС.

Измерение - это определение количественных показателей надежности, основанное на анализе данных об интервалах между отказами, полученных при выполнении программ в условиях тестовых испытаний.

Оценивание - это определение количественных показателей надежности, основанное на данных об интервалах между отказами, полученными при испытании ПС в реальных условиях функционирования. [8]

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

Рассмотрим классификацию моделей надежности ПС (МНПС). МНПС подразделяются на аналитические и эмпирические. Аналитические модели дают возможность рассчитать количественные показатели надежности, основываясь на данных о поведении программы в процессе тестирования (измеряющие и оценивающие модели). Эмпирические модели базируются на анализе структурных особенностей программ. Они рассматривают зависимость показателей надежности от числа межмодульных связей, количества циклов в модулях, отношения количества прямолинейных участков программы к количеству точек ветвления и т.д. Часто эмпирические модели не да-

136

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

Аналитические модели представлены двумя группами:

динамические модели и статические. В динамических МНПС поведение ПС (появление отказов) рассматривается во времени. В статических моделях появление отказов не связывают со временем, а учитывают только зависимость количества ошибок от числа тестовых прогонов (по области ошибок) или зависимость количества ошибок от характеристики входных данных (по области данных).

Для использования динамических моделей необходимо иметь данные о появлении отказов во времени. Если фиксируются интервалы каждого отказа, то получается непрерывная картина появления отказов во времени (группа динамических моделей с непрерывным временем). С другой стороны, может фиксироваться только число отказов за произвольный интервал времени. В этом случае поведение ПС может быть представлено только в дискретных точках (группа динамических моделей с дискретным временем). Рассмотрим основные предпосылки, ограничения и математический аппарат моделей, представляющих каждую группу.

5.1.1. Аналитические модели надёжности

Аналитическое моделирование НПС включает четыре

шага:

1)определение предположений, связанных с процедурой тестирования ПС;

2)разработка или выбор аналитической модели, базирующейся на предположениях о процедуре тестирования;

137

3)выбор параметров моделей с использованием полученных данных;

4)применение модели - расчет количественных показателей надежности по модели.

5.1.1.1. Динамические модели надёжности

Модель Шумана

Исходные данные для модели Шумана, которая относится к динамическим моделям дискретного времени, собираются в процессе тестирования ПС в течение фиксированных или случайных временных интервалов. Каждый интервал - это стадия, на которой выполняется последовательность тестов и фиксируется некоторое число ошибок.

Модель Шумана может быть использована при определенным образом организованной процедуре тестирования. Использование модели Шумана предполагает, что тестирование проводится в несколько этапов. Каждый этап представляет собой выполнение программы на полном комплексе разработанных тестовых данных. Выявленные ошибки регистрируются (собирается статистика об ошибках), но не исправляются. По завершении этапа на основе собранных данных о поведении ПС на очередном этапе тестирования может быть использована модель Шумана для расчета количественных показателей надежности. После этого исправляются ошибки, обнаруженные на предыдущем этапе, при необходимости корректируются тестовые наборы и проводится новый этап тестирования. При использовании модели Шумана предполагается, что исходное количество ошибок в программе постоянно и в процессе тестирования может уменьшаться по мере того, как ошибки выявляются и исправляются. Новые ошибки при корректировке не вносятся. Скорость обнаружения ошибок пропорциональна числу оставшихся ошибок. Общее число машинных инструкций в рамках одного этапа тестирования постоянно.

138

Предполагается, что до начала тестирования в ПС имеется EТ ошибок. В течение времени тестирования обнаруживается C ошибок в расчёте на команду на машинном языке.

Таким образом, удельное число ошибок на одну машинную команду, оставшихся в системе после времени тестирования, равно

 

r

( )

ET

 

C

( ),

(14)

IT

 

 

 

 

 

где IT – общее число машинных команд, которое предполагается постоянным в рамках этого тестирования.

Автор предполагает, что значение функции частоты отказов Z(t) пропорционально числу ошибок, оставшихся в ПС после израсходованного на тестирование времени

Z(t) C r ( ),

где С – некоторая константа, t – время работы ПС без отказа.

Тогда, если время работы ПС без отказа отсчитывается от точки t=0, а остаётся фиксированным, функция надёжности, или вероятность безотказной работы на интервале времени от 0 до t, равна

R(t, ) exp C ET / IT

C ( ) t ;

(15)

tср

 

1

 

.

(16)

C ET

/ IT C ( )

Из величин, входящих в формулы (15) и (16), не известны начальное значение ошибок в ПС и коэффициент пропорциональности – С. Для их определения прибегают к следующим рассуждениям. В процессе тестирования собирается информация о времени и количестве ошибок на каждом прогоне, т.е. общее время тестирования складывается из времени каждого прогона: = 1+ 2+ 3+…+ n.

139

Предполагая, что интенсивность появления ошибок постоянна и равна , можно вычислить её как число ошибок в единицу времени

k

Аi

 

 

i 1

,

(17)

 

 

 

 

 

 

где Аi – количество ошибок на i-м прогоне.

 

tср

 

 

.

(18)

 

k

 

 

Аi

 

 

 

i 1

 

Имея данные для двух различных моментов тестирования А и b, которые выбираются произвольно с учётом требования, чтобы С ( b ) С ( А ) , можно сопоставить уравнения

(16) и (18) при А и b.

1

 

 

 

 

 

 

1

 

 

 

 

 

 

;

 

C E

T

/ I

T

 

C

(

А

)

А

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

1

 

 

 

 

 

.

 

C E

T

/ I

T

 

 

C

(

b

)

b

 

 

 

 

 

 

 

 

 

 

 

Вычисляя отношения (6) и (7), получим

ЕТ

 

ЕТ b

/ А

C ( A ) C

( b )

 

 

 

 

 

.

 

( b

/ А ) 1

 

 

 

 

 

 

(19)

(20)

(21)

Подставив полученную оценку параметров ЕТ в выражение (19), получим выражение для второго неизвестного параметра

С ЕТ

 

А

(22)

/ IN C ( A ) .

Получив неизвестные ЕТ и С, можно рассчитать надёжность программы по формуле (15).

140

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]