- •Этапы решения задачи на эвм
- •2.1.1 Постановка задачи
- •Составление проекта
- •2.1.3 Алгоритмизация
- •Программирование
- •Компиляция
- •Отладка
- •Отчет о работе
- •Модернизация
- •Тестирование
- •Оформление программы
- •Тестирование
- •Необходимость тестирования программных продуктов
- •Отладка и общие принципы тестирования
- •Алгоритмическое тестирование
- •Функциональное или аналитическое тестирование
- •Содержательное тестирование
- •Типы тестов
- •Вырожденный тест
- •Тест граничных значений
- •Аварийный тест
- •Стыковочные тесты
- •Комплексные тесты
- •2.2.4 Модульное тестирование
- •2.3 Надежность
- •2.3.1 Критерии надежности
- •Анализ надежности программного обеспечения
- •Основные факторы, влияющие на надежность
Программирование
В случае, когда на предыдущем этапе был получен детально разработанный алгоритм, составление программы на выбранном для программирования языке (алгоритмическом языке высокого уровня, автокоде, языке ассемблера или машинном языке) сводится к переводу этого алгоритма на язык программирования. Основные трудности и, следовательно, причины ошибок на этом этапе заключаются, во-первых, в необходимости знания всех требований и ограничений выбранного языка программирования и, во-вторых, в необходимости постоянного внимания ко многим деталям языка, которые приходится учитывать в ходе написания программы. Если этап алгоритмизации был выполнен некачественно и алгоритм представлен недостаточно детально, то его доводку придется выполнять «на ходу», во время программирования. Это затруднит процесс программирования-перевода и поведет к возникновению дополнительных ошибок в программе. Чем более процесс программирования будет походить на перевод, чем более механическим будет такой перевод, тем более легким будет составление программы и тем меньше возникнет ошибок на этом этапе, самом щедром на ошибки.
(Этап программирования, т. е. собственно процесс н а п и с а н и я программы, в последнее время все чаще называют кодированием, подчеркивая тем самым его механический, нетворческий характер).
После составления программы проводится ее проверка для обнаружения и исправления ошибок, внесенных на этом этапе. Если при проверке обнаруживаются ошибки, допущенные на предыдущем этапе, то соответствующие исправления вносятся и в алгоритм, поскольку к нему еще придется обращаться на следующих этапах, и тексты алгоритма и программы должны соответствовать друг другу.
Компиляция
Компилятор в ходе осуществления данного этапа, наряду с попыткой перевода исходного текста программы в машинный код, производит поиск синтаксических ошибок в программе и, в случае их обнаружения, печатает диагностику, помогающую последующей локализации ошибок. Отсутствие синтаксических ошибок не говорит о том, что в программе нет ошибок. В тех случаях, когда в распоряжении программиста имеется несколько компиляторов, сначала выбирается тот, который представляет больше возможностей для проведения начинающейся отладки. После окончания отладки производится компиляция с целью изготовления экземпляра программы, используемой в дальнейшем для отладки.
При написании программ на Delphi нужно опасаться трех типов дефектов:
синтаксических ошибок, которые часто бывают опечатками;
ошибок выполнения, к которым относятся любые ошибки, появляющиеся во время исполнения программы;
логических ошибок, которые случаются, когда программа не делает того, что вы хотели, или делает то, чего вы не хотели.
Компилятор в Delphi является конфигурируемым. Для конфигурации компилятора нужно его настроить соответствующим образом. Компилятор Delphi позволяет найти синтаксические ошибки, допущенные в программе.
Можно дать Delphi команду проверить синтаксис программы двумя способами. Первый способ - проверить только синтаксические ошибки, при этом Delphi компилирует каждый модуль проекта и остановится на найденной ошибке. Второй путь — запустить компилятор. Этот метод иногда лучше, чем первый, поскольку он заставляет Delphi не только компилировать программу, но и компоновать ее. Если программа не имеет синтаксических ошибок, нажатие кнопки Run запустит программу на выполнение. Если один из указанных методов обнаружит ошибки, Delphi покажет в статусной строке сообщение об ошибке и установит указатель вставки в редакторе кода на место, явившееся причиной ошибки.
Ошибки выполнения появляются тогда, когда программа синтаксически правильна и может компилироваться, но во время выполнения возникают ошибки. В Delphi имеется много средств, которые помогут проследить и устранить ошибки выполнения. Первое из них было описано выше. Если произошла ошибка, то указатель вставки в редакторе кода будет стоять в месте возможной ошибки. Положение указателя должно подсказать, в чем заключается проблема.
Даже если программа действительно запускается и никогда не "вылетает", она все же может работать не так, как задумано. Некоторые логические ошибки проявляют себя довольно быстро. Такие виды ошибок - самые тяжелые для нахождения и исправления. Именно для поиска и исправления таких ошибок служит отладка.
