Тема 14 Структурное программирование программных продуктов
Методы и правила структурированности ПП. Критерии и достоинства структурированности программ.
Структу́рное программи́рование — методология разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры блоков. Предложена в 70-х годах XX века Э. Дейкстрой, разработана и дополнена Н. Виртом В соответствии с данной методологией.
Любая программа представляет собой структуру, построенную из трёх типов базовых конструкций:
последовательное исполнение — однократное выполнение операций в том порядке, в котором они записаны в тексте программы;
ветвление — однократное выполнение одной из двух или более операций, в зависимости от выполнения некоторого заданного условия;
цикл — многократное исполнение одной и той же операции до тех пор, пока выполняется некоторое заданное условие (условие продолжения цикла).
В программе базовые конструкции могут быть вложены друг в друга произвольным образом, но никаких других средств управления последовательностью выполнения операций не предусматривается.
Повторяющиеся фрагменты программы (либо не повторяющиеся, но представляющие собой логически целостные вычислительные блоки) могут оформляться в виде т. н. подпрограмм (процедур или функций). В этом случае в тексте основной программы, вместо помещённого в подпрограмму фрагмента, вставляется инструкция вызова подпрограммы. При выполнении такой инструкции выполняется вызванная подпрограмма, после чего исполнение программы продолжается с инструкции, следующей за командой вызова подпрограммы.
Разработка программы ведётся пошагово, методом «сверху вниз».
Сначала пишется текст основной программы, в котором, вместо каждого связного логического фрагмента текста, вставляется вызов подпрограммы, которая будет выполнять этот фрагмент. Вместо настоящих, работающих подпрограмм, в программу вставляются «заглушки», которые ничего не делают. Полученная программа проверяется и отлаживается. После того, как программист убедится, что подпрограммы вызываются в правильной последовательности (то есть общая структура программы верна), подпрограммы-заглушки последовательно заменяются на реально работающие, причём разработка каждой подпрограммы ведётся тем же методом, что и основной программы. Разработка заканчивается тогда, когда не останется ни одной «затычки», которая не была бы удалена. Такая последовательность гарантирует, что на каждом этапе разработки программист одновременно имеет дело с обозримым и понятным ему множеством фрагментов, и может быть уверен, что общая структура всех более высоких уровней программы верна. При сопровождении и внесении изменений в программу выясняется, в какие именно процедуры нужно внести изменения, и они вносятся, не затрагивая части программы, непосредственно не связанные с ними. Это позволяет гарантировать, что при внесении изменений и исправлении ошибок не выйдет из строя какая-то часть программы, находящаяся в данный момент вне зоны внимания программиста.
Перечислим некоторые достоинства структурного программирования:
Структурное программирование позволяет значительно сократить число вариантов построения программы по одной и той же спецификации, что значительно снижает сложность программы и, что ещё важнее, облегчает понимание её другими разработчиками.
В структурированных программах логически связанные операторы находятся визуально ближе, а слабо связанные — дальше, что позволяет обходиться без блок-схем и других графических форм изображения алгоритмов (по сути, сама программа является собственной блок-схемой).
Сильно упрощается процесс тестирования и отладки структурированных программ.
- Тема 1 Основные понятия и определения
- Тема 3 Проектирование программных продуктов.
- Основные группы методов
- Эвристические методы
- Метод итераций (последовательного приближения)
- Метод декомпозиции
- Метод контрольных вопросов
- Тема 4 Структура и формат, статические и динамические данные.
- Тема 5 Стандартизация программных продуктов
- Стандартизация программных продуктов
- Система качества пп
- Тема 6 Модульное программирование
- Тема 6 Модульное программирование
- 2. Минимизации количества передаваемых параметров
- Тема 7 Эффективность и оптимизация программ
- 1. Эффективность и технологичность. Способы экономии памяти. Способы уменьшения времени выполнения
- 2. Правила оптимизации программ
- Жертвуем памятью ради скорости
- Жертвуем скоростью ради памяти
- Логические правила
- Составление процедур
- Составление выражений
- Тема 8 Требования и спецификация качества к программных продуктов
- Тема 9 Защита программ
- Тема 10 Инструментальные средства разработки программ
- Тема 11 Коллективная разработка программных средств
- 1.1 Структура управления разработкой программных средств.
- Тема 12 Объектный подход к разработке программных продуктов
- Тема 13 Факторы надежности программных продуктов
- Тема 14 Структурное программирование программных продуктов
- Тема 15 Объектно-ориентированное программирование (ооп)
- Тема 15 Объектно-ориентированное программирование (ооп)
- Тема 16 Стиль программирования
- Тема 16 Стиль программирования
- Тема 17 Отладка, тестирование, сопровождение программ
- 2.Тестирование «белым ящиков»
- 6.Виды сопровождения и отладок пп.
- Тема 18 Экономические аспекты создания и использования программных средств
- Тема 20 Пакеты прикладных программ
- Тема 21 Язык программирования Турбо-Пролог
- Язык Пролог
- Тема 22 Списки и структуры в Прологе.
- Списки в Прологе
- Тема 23 Работа с файлами и динамическими базами данных в Прологе
- Работа с файлами
- Работа с файлами
- 3.6.3. Динамические базы данных