Сопровождение программы
Анализ результатов решения задачи
Тестирование
Отладка
Программирование
Построение алгоритма
Выбор метода, математической модели и спецификации данных
Постановка задачи
Этапы решения задачи с помощью компьютера
Решение начинается с постановки задачи, которая предполагает точную формулировку подлежащей решению задачи. Осуществляется сбор исходной информации о задаче и формулировка условия задачи. Определяются конечные цели решения задачи, форма представления результатов, описание данных (их тип, диапазон значений, структуры и т.п.).
На втором этапе производится выбор метода, определение соответствующей математической модели и спецификации исходных данных. Математическая модель представляет собой систему математических зависимостей, которые формально описывают структуру или правила функционирования объекта.
Третий этап связан с построением алгоритма, который представляет собой точное определение всех шагов вычислительного процесса, ведущего от начальных исходных данных к искомому результату. Отметим, что указанные три этапа носят творческий характер, поскольку каждая новая проблема требует от разработчика новых подходов, да и подходы для решения одной и той же проблемы могут быть разными.
На четвертом этапе проводится реализация разработанного алгоритма на одном из языков программирования. Обычно решаемую задачу стремятся разбить на более простые подзадачи, и, в свою очередь, каждую из подзадач также можно раскладывать на более простые, которые относительно легко описываются на языке программирования. В процессе расчленения исходной задачи на более простые составляющие выделяются самостоятельные подзадачи, реализуемые в виде процедур или функций. Результатом выполнения этого этапа будет являться исходный текст программы на выбранном языке программирования, который размещается в виде исходного текстового файла
Пятый этап связан с отладкой программы и включает в себя ее компиляцию и проверку правильности выполнения на контрольных тестах. Компиляция предполагает выполнение, во-первых, трансляции программы (перевод текста программы с языка программирования на машинный язык и формирование объектного кода программы), и, во-вторых, редактирование связей (формирование на основе полученного объектного кода программы и на основе библиотеки объектных кодов исполняемого кода программы). Трансляция начинается с выполнения синтаксического анализа исходного текста программы. В случае выявления синтаксических ошибок выдаются соответствующие сообщения, и дальнейшая трансляция приостанавливается. Когда все синтаксические ошибки будут исправлены, то проводится редактирование связей и формируется готовый к выполнению на компьютере код программы в виде отдельного файла. Отметим, что построенная таким образом программа не обязательно не содержит ошибок. Дело в том, что в программе кроме синтаксических ошибок могут присутствовать ошибки времени выполнения программы и логические ошибки.
Синтаксические ошибки связаны с неправильным соблюдением правил описаний элементов программы, например, в программе забыли описать переменную, при вызове процедуры неправильно записали список фактических параметров и т.д. Трансляторы могут по-разному производить обработку выявленных синтаксических ошибок. Так в пакете Borland Pascal при выявлении ошибки указывается ее предполагаемое местоположение путем позиционирования курсора и выводится сообщение об ошибке в служебном окне Edit. Пользователю необходимо исправить ошибку и вновь повторить трансляцию. После успешного прохождения компиляции могут возникать ошибки времени выполнения программы, которые часто называют Runtime-ошибками. Эти ошибки связаны с возможным наличием в выполняемой программе запрещенных действий, например, деление на ноль, чтение данных из несуществующего файла и т.п. В пакете Borland Pascal подобные ошибки сопровождаются выводом на экран сообщения формата:
Runtime error ## at seg:sme.
Кроме того, определяется местоположение ошибки и происходит переход в окно редактирования соответствующего исходного файла.
Программа может содержать и логические ошибки, которые возникают по причине неадекватности использованной математической модели или алгоритма решения реальному процессу. Отметим, что подобные ошибки наиболее трудно выявлять, и для этого необходимы хорошо подготовленные тесты.
Отладка программы предполагает локализацию и исправление всевозможных выявленных ошибок и тесно связана с еще одним этапом разработки компьютерной программы – тестированием.
Тестирование (шестой этап) носит деструктивный (разрушительный) характер, а основная задача его заключается в доказательстве того, что программа работает неправильно. Для проведения тщательного тестирования подбираются такие исходные данные, которые позволяют проверить правильность выполнения программы во всех особых случаях.
Предпоследний седьмой этап связан с анализом результатов решения задачи. При необходимости предусматривается уточнение математической модели, и тогда повторно выполняются этапы со второго по шестой включительно.
Заключительный восьмой этап – сопровождение программы может предусматривать доработку программы для решения конкретных задач. Составляются документации к:
1) решенной задаче;
2) математической модели;
3) алгоритму;
4) программе;
5) набору тестов;
6) использованию.