Экспоненциальная модель и модели роста надежности

УДК 004.412

ЭКСПОНЕНЦИАЛЬНАЯ МОДЕЛЬ И МОДЕЛИ РОСТА

НАДЕЖНОСТИ

А. А. Суслин

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

Ключевые слова: модель Релея, модель роста надежности, экспоненциальная модель, статистические данные.

В отличие от модели Релея, модели роста надежности обычно основаны на данных, полученных на различных стадиях тестирования. Следовательно, наилучшую производительность данные модели показывают на завершающих стадиях разработки, особенно в случае, когда производится так называемое «ориентированное на пользователя тестирование». Особенность такого процесса заключается в том, что динамика сбоев и обнаружения ошибок при таком тестировании моделирует период, когда программный продукт используется конечными пользователями [1].

Экспоненциальная модель - это частный случай распределения Вейбулла для значения параметра m = 1. Наилучшим образом она описывает процессы, показатели которых снижаются монотонно и асимптотически. Функции экспоненциального распределения и плотности описываются следующим образом:

F (t) = 1 - е _ (t 1 c), f (t) = -e ~(t 1 c).

c

Применительно для надежности программного обеспечения, вводится параметр:

c

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

метров К и 1.

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

Конкретно в надежности программного обеспечения на базе экспоненциального распределения созданы и исследуются модели роста надежности. Например, П.Н. Мисра использовал экспоненциальную модель для оценки растущего потока сбоев в программном обеспечении системы приземления космических шаттлов для КАБА [2]. 200 последующих часов реальной работы испытуемой системы показали, что модель работоспособна и показывает высокий уровень точности прогнозирования. Более того, было подтверждено, что рассмотренная ранее в работах Гэля и Окамото [3] модель негомогенного процесса Пуассона в разрезе оценки надежности программного обеспечения является фактически случаем экспоненциальной модели.

На рисунке 1 и рисунке 2 показаны результаты сравнения статистических данных, собранных на поздних этапах разработки (после начала системного тестирования) программного обеспечения для серверов 1ВМ АБ/400 и смоделированного экспоненциальным распределением прогноза показателей [4].

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

I I I I I I I Г I I I I I I I I I I I I I I I I I I I I I I I I I 11 І I I I I I I I I I I I I I Недели

Рис. 1. Количество еженедельных ошибок на тысячу измененных строк кода (Kilo Code Source Instructions - KCSI) и плотность экспоненциального распределения

204

Г II II I I' П I 'МП I 'I I I I I Г I П I I I I Г1 I III I П I I I I Г I I I II Г I

Недели

Рис. 2. Количество накопленных еженедельных ошибок на тысячу измененных строк кода (Kilo Code Source Instructions - KCSI) и функция экспоненциального распределения

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

Исследования показали, что удовлетворительное прогнозирование роста сбоев при применении экспоненциальной модели происходит уже при 50-60% выполнения сценария системного тестирования [6].

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

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

- проблематика комплексного применения метрик;

- проблемы использования метрик размера и сложности в качестве

основы для прогнозирования дефектов;

- проблемы, связанные с качеством обрабатываемых статистических данных, в частности, их противоречивостью и неполнотой;

- некорректные попытки установить «идеальные» показатели процесса разработки для надежности ПО, противоречащие принципам декомпозиции ПО;

- отсутствие универсальности моделей.

Список литературы

1. Кулаков А. Ф. Оценка качества программ ЭВМ. Киев : Техшка,

1984.

2. Misra P. N. Software Reliability Analysis, IBM Systems Journal, 1983, vol. 22.

3. Halstead M.H. Elements of Software Science. Elsevier North-Holland, 1975.

4. Kan Stephen H. Metrics and models in software quality engineering / Addison-Wesley 2nd ed, 2002.

5. Ohba M. Software Reliability Analysis Models, IBM Journal of Research and Development, 1984, vol. 28.

6. Ehrlich W. K., Lee S. K., Molisani R. H. Applying Reliability Measurement : A Case Study, IEEE Software, 1990.

Суслин Антон Александрович, канд. техн. наук, suslin@brvs.net, Россия, Тула, ООО «BREVIS»

EXPONENTIAL MODEL AND GROWTH MODELS RELIABILITY

A.A. Suslin

Models of growth of reliability, usually based on the data received at various stages of testing, show the best productivity on development closing stages when "the testing focused on the user" is made so-called. Feature of such process is that dynamics of failures and detection of mistakes at such testing models the period when the software product is used by end users.

Key words: hydraulic drive with volume regulation, output shaft, the total moment, working liquid.

Suslin Anton Aleksandrovich, candidate of technical science, sus/in a.brvs.net, Russia, Tula, LLC “BREVIS".