Этапы разработки программы

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

& постановка задачи;

& анализ, формализованное описание задачи, выбор модели;

& выбор или разработка алгоритма решения задачи;

& проектирование общей структуры программы;

& кодирование;

& отладка и верификация программы;

& получение результата, его интерпретация и, возможно, последующая модификация модели;

& публикация или передача заказчику результата работы;

& сопровождение программы;

Рассмотрим подробнее содержание каждого из перечисленных этапов.

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

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

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

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

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

Отладка и верификация программы представляют собой очень важную часть процесса разработки программы. Отладка заключается в устранении ошибок программирования, ошибок перевода алгоритма на язык программирования. Верификация – это доказательство того, что программа работает правильно, дает правильный результат. Для этого разрабатывается система тестов, которые могут представлять собой специально подобранные наборы параметров, для которых задача может быть решена точно .Это могут быть, например, какие – нибудь предельные случаи. Если результат, полученный с помощью программы совпадает ( с учетом погрешности машинного счета ) с ожидаемым, есть основание полагать, что программа работает корректно. Но это всего лишь основание, а не абсолютная уверенность! Среди начинающих программистов распространено убеждение, что если программа успешно откомпилирована и, будучи запущена на выполнение, выдает на экран ряды цифр, задача решена. На самом же деле программа готова, если разработчик смог доказать заказчику (да и самому себе ), что результат работы программы является решением поставленной задачи.

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

Наши рекомендации