1.44M
Категория: ПрограммированиеПрограммирование

Принципы и технологии структурного программирования

1.

Принципы и технологии
структурного программирования
19.10.23

2.

Цель занятия
Познакомиться с
основными
принципами и
технологиями
структурного
программирования.

3.

Задачи
Ознакомится с
понятием структурного
программирования и
его основными
принципами.
Рассмотреть принцип
единства управления и
почему он важен для
создания
структурированного
кода.
Разобрать
принцип
структурирования
и принцип
модульности кода.

4.

Структурное программирование
• Структурное программирование - это
методология разработки программного
обеспечения, основанная на использовании
структурных элементов, таких как
последовательность, ветвление и циклы.
Она была разработана в 1960-х годах и
стала одной из основных парадигм
программирования.

5.

История
• Методология разработки программного
обеспечивания была предложена в 70-х
годах XX в. Э.Дейкстрой, разработана и
дополнена Н.Виртом

6.

Ученые
Эдсгер Вибе Дейкстра (1930 – 2002) —
нидерландский учёный, идеи
которого оказали влияние на
развитие компьютерной индустрии.
Известен как создатель алгоритма
поиска кратчайшего пути на графе,
один из основателей структурного
программирования. В 1972 г. стал
лауреатом премии Тьюринга.
Никлаус Вирт (1934) —
швейцарский учёный, специалист в
области информатики, один из
известнейших теоретиков в
области разработки языков
программирования, профессор
компьютерных наук, лауреат
премии Тьюринга 1984 г. Ведущий
разработчик языков
программирования Паскаль,
Модула-2, Оберон.

7.

Методами структурного
программирования являются:
нисходящее проектирование
(проектирование сверху вниз);
модульное (процедурное)
программирование;
структурное кодирование;

8.

В соответствии с методологией
структурного программирования:
1. Любая программа представляет собой структуру,
построенную из трёх типов базовых конструкций:
• Последовательное исполнение — однократное
выполнение операций в том порядке, в котором они
записаны в тексте программы;
• Ветвление — однократное выполнение одной из
двух или более операций, в зависимости от
выполнения некоторого заданного условия;
• Цикл — многократное исполнение одной и той же
операции до тех пор, пока выполняется некоторое
заданное условие (условие продолжения цикла).

9.

Методами структурного
программирования являются:
• Повторяющиеся фрагменты программы (либо не
повторяющиеся, но представляющие собой
логически целостные вычислительные блоки) могут
оформляться в виде подпрограмм (процедур или
функций). В этом случае в тексте основной
программы, вместо помещённого в подпрограмму
фрагмента, вставляется инструкция вызова
подпрограммы.
• При выполнении такой инструкции выполняется
вызванная подпрограмма, после чего исполнение
программы продолжается с инструкции, следующей
за командой вызова подпрограммы.
• Разработка программы ведётся пошагово, методом
«сверху вниз».

10.

Достоинства структурного
программирования
• Структурное программирование позволяет
значительно сократить число вариантов построения
программы по одной и той же спецификации, что
значительно снижает сложность программы и
облегчает понимание её другими разработчиками.
• В структурированных программах логически
связанные операторы находятся визуально ближе, а
слабо связанные — дальше, что позволяет обходиться
без блок-схем и других графических форм
изображения алгоритмов (по сути, сама программа
является собственной блок-схемой).
• Сильно упрощается процесс тестирования и отладки
структурированных программ.

11.

Целями структурного
программирования являются:
• Обеспечение дисциплины программирования в процессе
создания программных комплексов*.
• Улучшение читабельность программы. Читабельность
улучшается, если придерживаться следующих правил:
– избегать использования языковых конструкций с неочевидной
семантикой;
– стремиться к локализации действия управляющих
конструкций и использования структур данных;
– разрабатывать программу так, чтобы ее можно было читать от
начала до конца без управляющих переходов на другую
страницу.
• Повышение эффективности программ. Этого можно
достигнуть, если выполнять структурирование программы,
разбивая ее на модули так, чтобы можно было легко
находить и корректировать ошибки, а также чтобы текст
любого модуля с целью увеличения эффективности можно
было переделать независимо от других

12.

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

13.

Основные принципы
структурного программирования
Абстракция
Абстракция позволяет программисту вообразить требуемое решение проблемы
без сиюминутного учета множества деталей. Программист может рассматривать
программу по уровням: верхний уровень показывает большую абстракцию,
упрощает взгляд на проект, в то время как нижний уровень показывает мелкие
детали реализации.
• Формальность
Использование при разработке программы строгого методического подхода, что
является базой для превращения программирования из импровизации в
инженерную дисциплину. Этот принцип дает основания для доказательства
правильности программ, так как позволяет изучать программы (алгоритмы) как
математические объекты.
• «Разделяй и властвуй»
Разделение программы на отдельные фрагменты (модули), которые просты по
управлению и допускают независимую отладку и тестирование.
• Иерархическое упорядочение
Структура разбиения на части не менее важна, чем сам факт такого разделения.
Этот принцип выдвигает требование иерархического структурирования
взаимосвязей между модулями программного комплекса, что облегчает
достижение целей структурного программирования.

14.

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

15.

Функциональная структура
приложения

16.

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

17.

Модульное программирование
• Модульное программирование является
естественным следствием проектирования
сверху вниз и заключается в том, что программа
разбивается на части – модули,
разрабатываемые по отдельности.
• Модуль – это самостоятельная часть
программы, имеющая определенное
назначение и обеспечивающая заданные
функции обработки автономно от других
программных модулей.

18.

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

19.

Модуль должен обладать следующими свойствами:
• один вход и один выход – на входе программный модуль
получает определенный набор исходных данных, выполняет
содержательную обработку и возвращает один набор
результатных данных, т.е. реализуется стандартный принцип
IPO (Input–Process–Output – вход-процесс-выход);
• функциональная завершенность – модуль выполняет
перечень регламентированных операций для реализации
каждой отдельной функции в полном составе, достаточных
для завершения начатой обработки;
• логическая независимость – результат работы программного
модуля зависит только от исходных данных, но не зависит от
работы других модулей;
• слабые информационные связи с другими программными
модулями – обмен информацией между модулями должен
быть по возможности минимизирован;
• обозримый по размеру и сложности программный код.

20.

Функционально-модульная
структура алгоритма приложения

21.

Структурное кодирование
• Структурное кодирование — это метод написания
программ, имеющих определенную структуру и за
Фундаментом структурного программирования является
теорема о структурировании, сформулированная
итальянскими математиками К.Бомом и Дж.Якопини в
1966 г.
• Теорема устанавливает, что как бы сложна ни была
задача, схему алгоритм ее решения (и, соответственно,
программу) всегда можно представить в виде
композиции трех типов вложенных блоков:
следования (begin-end – начало-конец),
ветвления (if-then-else – если-то-иначе),
циклов с предусловием (while – пока).

22.

23.

• https://learningapps.org/watch?v=pqpxdg8xt
23

24.

Схема
Заголовок
Шаг 1
Title in
Вставьте
here
текст
Title in
Вставьте
here
текст
1.Описание для шага 1
- Дополнительное описание
- Дополнительное описание
2. Описание для шага 2
Шаг 2
Шаг 3
- Дополнительное описание
- Дополнительное описание
3. Описание для шага 3
Вставьте
Title in
текст
here
- Дополнительное описание
- Дополнительное описание

25.

Содержание
1
Вставьте Ваш текст
2
Вставьте Ваш текст
3
Вставьте Ваш текст
4
Вставьте Ваш текст
5
Вставьте Ваш текст
English     Русский Правила