4. Методы разработки программ

 

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

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

Рассмотрим понятие модуля.

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


3

 

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

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

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

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

 

К оглавлению

Назад к разделу "3. Виды алгоритмов"

Вперед к разделу "5. Отладка и тестирование программ"