Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции 2010.doc
Скачиваний:
26
Добавлен:
10.05.2014
Размер:
2.28 Mб
Скачать

Технологические ошибки

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

Программная ошибка

Эти ошибки определяются степенью автоматизации программирования при использовании ЯВУ причем специализированных, количество ошибок снижается в 10-20 раз по сравнению с программированием на Assembler. У опытных программистов обычно получается 1-2% неверных операторов. 1 программная ошибка приводит, как правило, к изменению нескольких операторов до 10. Исправление ошибок очень часто приводит к возникновению новых ошибок.

Алгоритмические ошибки

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

Системные ошибки

Определяется как правило на последних этапах отладки, что часто приводит к тяжелейшим последствиям.

Другая трудность состоит в сложности получения некоторых режимов реальных объектов (например, сближение самолетов).

28.Динамика изменения количества сложных ошибок КП при отладке

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

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

Существует жестокая корреляция между 3 видами проявления ошибок в сложном КП:

  • Суммарным количеством ошибок в КП или количеством неверных операторов в программе по отношению к общему количеству операторов.

  • Количеством ошибок в КП выявляемых в единицу времени при постоянных усилиях.

  • Количеством искажений результатов на выходе КП из-за не выявленных ошибок.

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

Если отладка ведется при постоянных усилиях, то вероятность обнаружения ошибок в первом приближении определяется количеством ошибок в КП, то есть можно предположить, что количество обнаруженных ошибок в единицу времени пропорционально имеющемуся количеству ошибок. Считая, что каждая обнаруженная ошибка устраняется, количество ошибок КП и, следовательно, интенсивности их обнаружения должны экспоненциально убывать в зависимости от длительности отладки τ: λ=λо*exp(-α*τ) (1)

Где λо – интенсивность появления ошибок в начале отладки, λ – интенсивность появления и устранения ошибок.

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

Выражение (1) абсолютно правильно отражает характер изменения ошибок во времени, но не отражает их реальное количество ошибок в системе. Это объясняется главным образом тем, что различные части КП используются с различной частотой, примерно с такой же частотой они и тестируются, что, вообще говоря, разумно. Причиной этого является воздействие типовых входных ситуаций, вызывающих выполнение ограниченного круга функциональных программ, которые и тестируются. В других программах, работающих и тестирующихся реже, может сохраниться большее количество ошибок, при этом режиме эксплуатации получаем λэ = k*λо*exp(-λ*τ) (2) Исследования проведенные на практике отладки показывают, что ( k~100 ).