Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
госы 2008 / Госы2.doc
Скачиваний:
75
Добавлен:
29.05.2015
Размер:
986.62 Кб
Скачать

Вопрос 14. Классификация ошибок с точки зрения процесса разработки.

Ошибки с точки зрения процесса разработки можно разделить на:

  1. Синтаксические ошибки

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

  1. Опечатки

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

  1. Ошибки реализации алгоритма

Под эту категорию подпадают все ошибки, вызванные неверным про­граммированием при верном алгоритме. Этот тип ошибок, по-видимому, яв­ляется самым распространенным и наиболее трудно классифицируемым.

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

Тип

Варианты

Ошибки распреде­ления свободной памяти

а) Выделение памяти неверного размера (слиш­ком большого или меньше нужного) б) Освобождение невыделенной памяти (часто в результате повторного освобождения)

Ошибки доступа к памяти

а) Выход за границы массива (по указателю или индексу) б) Доступ по неинициализированному указателю (адресу)

Использование неинициализирован­ных переменных

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

  1. Ошибки алгоритма

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

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

  1. Ошибки метода

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

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

Соседние файлы в папке госы 2008