- •Санкт-петербургский государственный ордена трудового красного знамени институт точной механики и оптики (технический университет)
- •Б.С.Падун
- •Содержание
- •Глава 4. Качество программного обеспечения ……………………….
- •Глава 5. Вопросы разработки и внедрения пакетов прикладных
- •Глава 6. Основные требования, предъявляемые к программному
- •Глава 8. Основы технологии разработки программного обеспечения ..
- •Введение в1. Цель и задачи курса
- •В2. Роль программных систем сапр тпп в современном производстве
- •В3. Развитие сапр тпп
- •В4. Связь курса с другими дисциплинами в5. Основные разделы курса Глава 1. Общие вопросы программного обеспечения сапр тпп
- •Структура и состав программного обеспечения (по) сапр тпп
- •Назначение основных компонент по
- •. Основные принципы проектирования по сапр тпп
- •Структура математического обеспечения астпп
- •Программное обеспечение
- •Методы разработки по сапр
- •Глава 2. Классификация сфер применения и пользователей сапр тпп
- •Характеристика сфер применения сапр тпп
- •2.2. Характер решаемых задач и квалификация пользователей сапр тпп
- •Структуры пакетов прикладных программ
- •Глава 4. Качество программного обеспечения
- •4.1. Анализ эффективности функционирования программных систем
- •4.2. Основные характеристики качества программного обеспечения.
- •4.3. Показатели качества этапа проектирования программных систем
- •4.4. Показатели качества этапа эксплуатации программных систем
- •Вычислительная сложность
- •2.5. Показатели качества этапа сопровождения программных систем
- •Глава 5. Разработка и внедрение пакетов прикладных программ
- •5.1. Стадия исследования и обоснования создания сапр
- •5.2. Стадия технического задания
- •5.3. Стадия эскизного проекта
- •5.4. Стадия технического проекта
- •5.5. Стадия рабочего проекта
- •5.6. Стадия изготовления несерийных компонент
- •5.7. Стадия введения в действие комплекса средств автоматизации проектирования
- •5.8. Стадия сопровождение программных систем
- •Глава 6. Основные требования, предъявляемые к программному продукту со стороны пользователя
- •Система группирования деталей.
- •База данных «Деталь» и «Оснащение»
- •Основы технологии разработки программного обеспечения
- •8.1. Понятие технологии программирования
- •Язык программирования
- •8.2. Модульное программирование
- •8.3. Программирование сверху-вниз
- •8.4. Структурное программирование
- •8.5. Hipo – технология
- •Система мт (метатранслятор)
- •Примеры применения системы мт.
- •Обеспечение диалогового режима работы.
- •Обращение к вычислительной системе в графической форме
- •Описание внешних схем баз данных
- •Входной язык пакета прикладных программ
- •Пример оформления алгоритма расчета режимов резания
8.4. Структурное программирование
Понятие структурного программирования представляет собой некоторые принципы написания программ в соответствии с набором жестких правил и имеет целью облегчение процессов тестирования, повышения производительности программистов и улучшения читабельности программ.
В структурном программировании любой алгоритм на любом уровне проектиро-вания, организованного по нисходящей схеме, должен быть записан только с помощью допустимых структур. Различают три допустимые структуры (рис.19): линейна (функциональный блок), выбора (конструкция выбора решения из заданного множества) и циклическая (конструкция обобщенного цикла). Все структуры имеют один вход и один выход (на рисунке обозначены жирными стрелками). Допускается неограниченное вложение структур друг в друга и рекурсивное.
В конструкции выбора Р(х) – это одномерный предикат вида Р(х)=(х*А), где * - отношение, а Р1(х) – это система одномерных предикатов вида:
(х*А) (х*В) ……. (х*С)
Р1(х)=
А
F1
F
F2
F2
F1
……...
Fn
F
*A
*C
*B
F1
F2
Fn
Б
P(x) 1
0
P(x)
F1
F
F2
F1
F2
……...
Fn
P(x)
F
-
P1(x)
*A
*B
….
*C
F1
F2
…..
Fn
а б в
Рис.19.Допустимые элементы структурного программирования:
по вертикали: а – линейная структура; б – структура ввода;
в – циклическая структура.
по горизонтали: А - общепринятые блок-схемы;
Б-стилизованные рекурсивные диаграммы
Всякая программа, может быть представлена, как суперпозиция допустимых структур. Программа, построенная путем применения таких структур, является модульной. Идея “вложенных структур”, при преобразовании программы по нисходящей схеме позволяет любой функциональный элемент, заменить эквивалентным из допустимых структур, не вызывая никаких последствий, в остальной части программы. Процесс преобразований может продолжаться до тех пор, пока не будет достигнут уровень “атомарных” модулей, т.е. отдельных вычислительных операторов. В этом состоит существенное различие в подходах структурного и модульного программирования, т.к. программист, применяя технологию модульного программирования, пытается разбить каждый модуль на меньшие модули и, если модуль не поддается дальнейшему разбиению, то он рассматривается, как неделимая система (элемент). Это означает, что тестирование, отладка, сопровождение и понимание такого модуля затруднены.
Для суперпозиции допустимых структур, не требуется применение операторов GOTO поэтому, структурное программирование называется еще программированием “без GOTO”. Структурные программы, в отличие от программных, имеют простую, древовидную архитектуру, легко читаются и модифицируются. В структурной программе, нет клубка переходов вперед-назад, нет латок. Это достигается, как преобразованием программы по нисходящей схеме, так и тем, что на этапе проектирования созданы некоторые, искусственные трудности – запрещено использовать оператор GOTO, конструирование программ разрешено проводить только с использованием допустимых структур. Эти трудности удлиняют процесс проектирования программы, что приводит к ее дополнительной проработке, а так же структурированная программа, требует больше ресурсов ЭВМ (памяти и времени) по сравнению с неструктурированной программой. Но на структурированной программе, появляется возможность провести формально доказательство правильности процесса ее проектирования, а так же резко сократить процесс отладки, а, следовательно, сократить и весь процесс изготовления программ.
Теоретическая основа структурного программирования, допускает реализацию его принципов на многих современных языках систем программирования. Исключительными средствами реализации структурного программирования, являются системы программирования – Алгол и ПЛ/1. Системы программирования Кобол и Фортран, по мнению многих сторонников структурного программирования не достаточны, для формализации структуры, не содержащей операторов GOTO.
