Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
24
Добавлен:
31.03.2015
Размер:
199.68 Кб
Скачать

Кроме описанных правил добавляется возможность отсутствия текста:

[<текст>]

[<текст> …]

a) б)

В форме а) предусматривается возможность отсутствия составляющей, а в форме б) –

возможность отсутствия повторения.

7.9. Предупреждение ошибок и отладка программы

.

Ошибки в программе могут проявиться двумя способами:

1) во время выполнения программы в виде исключительных ситуаций,

  1. после выполнения программы в виде неправильного решения.

Отладка - это процесс поиска и исправления ошибок в программе

Цель отладки – получение правильной программы, т.е. программы, в которой отсутствуют ошибки проекта. Ошибки проекта включают ошибки, которые могут возникнуть на всех этапах разработки программы.

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

На этапе постановки задачи и ее уточнения способом предупреждения ошибок является:

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

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

  • анализ поведения программы при недопустимых входных данных и формирование

сообщений программы, разъясняющих причины ошибок.

На этапе проектирования алгоритма способом предупреждения ошибок является:

  • нисходящее проектирование и модульность;

  • обеспечение основного принципа понятности программы: текстуальная упорядо –

ченность программы должна соответствовать порядку вычислений. Для простых типов данных структура алгоритма должна отражать структуру выходного документа и метод решения;

  • использование дисциплины структурного программирования.

Процесс отладки состоит из трех этапов:

  • контроль правильности программы,

  • локализация ошибок, обнаруженных в процессе контроля,

  • исправление ошибок.

Контроль правильности программы является ключевым этапом отладки. Цель его

 обнаружение ошибки. Он состоит из таких основных действий как синтаксический контроль, визуальный контроль и тестирование.

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

Синтаксический контроль выполняет компилятор, проверяя нарушение синтаксических правил.

Тестирование – это выполнение программы на компьютере для специально подобранных входных данных с целью обнаружения ошибки.

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

Те части программы, которые еще не разработаны и записаны как абстракции, заменяются заглушками, которые служат для тестирования интерфейса модуля. Заглушка заменяет сложный алгоритм, который потребует специального обдумывания, упрощенным алгоритмом. Например, если в данный момент разработки программы неизвестно, как вычислять сумму ряда S (Лабораторная работа №2), то можно в том месте программы, где должен стоять алгоритм вычисления, поставить простейшую заглушку в виде оператора присваивания: S := 99.

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

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

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

Метод трассировки.

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

Трассировка может являться способом визуального контроля и выполняться без помощи компьютера, а также может выполняться с помощью компьютера..

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

В качестве примера рассмотрим фрагмент программы из раздела 7.11: нахождение максимального значения в последовательности, которая вводится из файла fin.

xmax:= -99;

while not eof (fin) do

begin read (fin, x);

if x > xmax then

xmax := x;

end;

xmax

x

-99

3

3

7

7

4

7

fin

3 7 4

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

1. Вставка в программу отладочной печати промежуточных данных.

2. Использование средств отладки Турбо Паскаля.

Рассмотрим способ 2. Для того, чтобы провести трассировку программы, надо:

  • открыть отладочное окно Watch с помощью опции Debug/Watch;

  • записать в отладочное окно имена интересующих переменных: для добавления

каждой переменной надо установить опцию Debug/Add Watch (или Ctrl-F7), открывающую окно Add Watch, записать имя переменной и выполнить ОК.

Теперь можно выполнять трассировку, продвигаясь по программе с использова -нием функциональных клавиш F7, F8, F4 и следя за изменением значений переменных в окне Watch. При каждом нажатии F7 и F8 выполняется одна строка программы, но F8 обходит процедуры. При F4 начинается или продолжается выполнение программы до той строки, на которой стоит курсор.

Для тестирования логики программы используются методы структурного тестирования. Качество структурного тестирования определяется тем, насколько полно проверена логика программы. С методом тестовых счетчиков можно познакомиться в учебном пособии [1].

Соседние файлы в папке ПРАКТИКУМ-1--5