Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Понятие ошибки программы




Введенное определение надежности ПО базируется на понятии «отказ» программы, трактуемом как наблюдаемое экспертами случайное событие (не принадлежность y множеству ) при . Если используемые при этом технические средства считаются абсолютно надежными, а сама программа рассматривается только как фрагмент некоторой информации, то невольно возникает вопрос: каковы же истинные причины отказа? Что «ломается», «разрушается» в программе, если она в случайные моменты вдруг выдает «неразумные» результаты? Ответы на эти вопросы может дать понятие ошибки (неточности, дефекта) программы, вносимой программистом при написании алгоритма и текста программы и проявляющей себя при некотором, возможно весьма редком сочетании кодов перерабатываемой информации, погрешности округления при выполнении вычислительных операций, адресации команд и др. Эти ошибки попадают в программный комплекс на стадии разработки спецификации, проектирования ПО и реализации программ. Процесс появления ошибок при разработке ПО иллюстрируют рис. 4.1 и, особенно рис. 4.3, где N(t) – число ошибок в момент времени t, .

Рис. 4.3 – Зависимость числа ошибок N на стадиях разработки ПО

 

Вероятнее всего, что наибольшее количество ошибок Nmax накапливается в программе к концу этапа реализации (кодирования) программ. На этапах отладки отдельных программ и всего ПО число ошибок N(t) естественно уменьшается относительно Nmax. Этому способствует и этап динамического тестирования, когда ПО (или программа) полностью и правильно решает тестовые задачи. К моменту времени tр , когда заканчивается оформление документов о приемке-сдаче ПО в эксплуатацию, в полностью готовом программном комплексе остается не выявленных ошибок. При этом, судя по американскому опыту, для ПО РВ величина N(0)» 0,5 Nmax и несколько меньше для ПО универсальных ЭВМ, в частности N(0)»(0,2 - 0,3) Nmax.

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

 

Классификация программных ошибок

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

Преднамеренные ошибки вводятся специально в программу с целью искажения или разрушения ее текста (информации) в некоторый заранее заданный момент времени «икс» или при возникновении тех или иных условий. Такие неслучайные ошибки получили название «компьютерные вирусы» или программы-«вандалы». Первоначально подобные программы писались в 60-е годы высококвалифицированными специалистами для компьютерных игр, а с начала 80-х годов – «одержимыми» программистами - фанатами или «хакерами» для уничтожения чужих программ в конкурентных целях или без каких-либо видимых целей (термин «хакер» происходит от английского слова Hack – рубить, кромсать, он отражает цель вирусных программ – «кромсание» других ПО).

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

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

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

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

Случайные ошибки могут вызывать сбои ПО и устойчивые отказы программного комплекса.

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

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

Систематические ошибки подразделяются на первичные (закладываются на 1 – 2 этапах жизненного цикла программного комплекса) и вторичные (являются следствием первичных ошибок и возникают на этапах реализации и отладки программ).

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

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

- логические ошибки (пропуски логических условий, неверное использование символов >, ≥, <, ≤ и др.);

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

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

- ошибки ввода-вывода информации;

- ошибки документации, технических заданий, инструкций.

 





Поделиться с друзьями:


Дата добавления: 2015-05-08; Мы поможем в написании ваших работ!; просмотров: 1640 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Сложнее всего начать действовать, все остальное зависит только от упорства. © Амелия Эрхарт
==> читать все изречения...

2239 - | 2107 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.