русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Отладка

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

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

Ошибки, которые могут быть допущены в программе, можно подразделить на два вида:

- синтаксические, появление которых связано с нарушением правил записи языковых конструкций;

- семантические (смысловые), вызывающие ошибки при выполнении.

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

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

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

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

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

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

Модульное представление программ облегчает тестирование. Реальные тесты должны быть подготовлены по функциональным спецификациям до начала программирования модуля. Кроме запланированных тестов нужно использовать и реальные данные из предметной области.

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

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

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

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

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

Просмотров: 803


Вернуться в оглавление



Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.