Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций по Информатике.doc
Скачиваний:
49
Добавлен:
15.04.2015
Размер:
257.54 Кб
Скачать

IV. Понятия структурного программирования

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

При разработке алгоритма могут выдвигаться различные критерии его качества. Еще недавно такими критериями выступали экономия памяти ЭВМ и времени вычислений. Но лет 15 назад разработка программ перешла от кустарного метода к промышленному производству. Появилась задача сопровождения. Приходилось разбираться в программе спустя длительное время после ее изготовления и часто другим программистом. В качестве основного критерия стала выступать легкость сопровождения. Чтобы программа легко читалась, она должна быть "прозрачной" - понятной.

Для упрощения программ сначала пытались избавиться от оператора "GOTO", но выяснилось, что этого недостаточно. Появился комплекс методов, которые начали называть "прогрессивными методами проектирования алгоритмов". Они позволяли повысить надежность алгоритмов, упростить их создание, отладку и сопровождение за счет введения некоторой дисциплины в процесс разработки алгоритмов в целом.

1. Метод декомпозиции

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

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

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

К технологическим относятся: а) модульное программирование; б) нисходящее проектирование, кодирование и тестирование системы алгоритмов; в) структурное программирование.

К организационным относятся: а) работа коллектива программистов по принципу группы главного программиста; б) создание и поддержка библиотеки; в) формирование структурной документации.

Некоторые моменты требуют пояснения. Например, бригадная работа связана с тем, что обычная производительность программистов - 5-8 отлаженных кодов (операторов) в день, но встречаются специалисты, отлаживающие до 200 кодов в день. Бригада в этом случае работает на ведущего программиста, и общая производительность повышается в 3-4 раза. Кроме ведущего программиста в бригаде есть его заместитель, есть "библиотекарь", который ведет библиотеку проекта, есть специалист по документации, по операционной системе, языку и т.д.