Мегаобучалка Главная | О нас | Обратная связь


Структурное программирование



2019-10-11 293 Обсуждений (0)
Структурное программирование 0.00 из 5.00 0 оценок




 

К началу 70-х годов ХХ века, когда развитие языков программирования достигло достаточно высокого уровня, а создаваемые программные комплексы достигли достаточно внушительных размеров (сотни тысяч – миллионы команд), стало очевидно, что программные проекты стали слишком сложными для успешного проектирования, кодирования и отладки в приемлемые сроки. Программисты, решающие сложные задачи, столкнулись с проблемой роста количества и размера программ до такой степени, что дальнейший процесс разработки становился практически неуправляемым, и никто из разработчиков не мог с уверенностью сказать, что созданный программный продукт всегда выполняет то, что требуется, и что он не выполняет ничего такого, что не требуется. Таким образом, возникла проблема коренного изменения подходов к созданию больших программных комплексов.

Исходя из этих проблем, ведущими программистами 70-х годов (Дейкстра, Вирт, Дал, Xoap, Йордан, Константин, Майерс и др.) были разработаны строгие правила ведения проектов, которые получили название структурной методологии.

Важным этапом в становлении этого подхода стали международные конференции по программированию, проведенные в 1968-69 годах. На второй из них Эдсгер Дейкстра впервые использовал термин «структурное программирование» и предложил принципиально новый способ создания программ. Он рассматривал программу как совокупность иерархических абстрактных уровней, которые позволяли: четко структурировать программу, что улучшило ее понимание программистами; выполнять доказательства ее корректности и тем самым повышать надежность функционирования программы; сокращать сроки разработки программ.

Еще одним толчком к изменению способа программистского мышления стало опубликованное письмо Дейкстры редактору одного из научных издательств, которое было озаглавлено «Оператор GOTO нужно считать вредным». Это письмо вызвало острую полемику среди программистов того времени, но в итоге победило все-таки структурное мышление, которое, кроме Дейкстры, активно поддерживали профессор Цюрихского технического университета Вирт и профессор Оксфордского университета Xoap.

Одним из результатов полемики было доказательство того, что любая программа может быть написана, используя только простую последовательность операторов, итеративную конструкцию типа while и конструкцию выбора case, а оператор goto не является необходимой управляющей конструкцией в структурном программировании. К сожалению, споры об операторе goto имели один отрицательный «побочный эффект» — довольно часто программирование без goto стало отождествляться со всем структурным программированием. Однако цели структурного программирования намного глобальнее и серьезнее.

Структурное программирование возникло как вариант решения проблемы уменьшения сложности разработки программного обеспечения.

Таким образом, цель структурного программирования –  повышение надежности программ, обеспечение сопровождения и модификации, облегчение и ускорение разработки.

 

Методы и концепции, лежащие в основе структурного программирования:

· метод алгоритмической декомпозиции сверху вниз — заключается в пошаговой детализации постановки задачи, начиная с наиболее общей задачи. Данный метод обеспечивает хорошую структурированность. Метод поддерживается концепцией алгоритма;

· метод модульной организации частей программы — заключается в разбиении программы на специальные компоненты, называемые модулями. Метод поддерживается концепцией модуля;

· метод структурного кодирования — заключается в использовании при кодировании трех основных управляющих конструкций. Метод поддерживается концепцией управления.

 

Данная методология является важнейшим развитием императивной методологии.

 

Математическая модель структурного программирования.

 

Теорема о структурировании (Бёма-Джакопини).

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

 

Следствие 1. Всякую программу можно привести к форме без оператора goto.

Следствие 2. Любой алгоритм можно реализовать в языке, основанном на трех управляющих конструкциях: последовательность, цикл, повторение.

Следствие 3. Сложность структурированных программ ограничена, даже в случае их неограниченного размера.

 

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

 

К достоинствам структурного программирования можно отнести следующее:

· позволяет значительно сократить число вариантов построения программы по одной и той же спецификации, что значительно снижает сложность программы и облегчает понимание её другими разработчиками;

· в структурированных программах логически связанные операторы находятся визуально ближе, а слабо связанные — дальше, что позволяет обходиться без блок-схем и других графических форм изображения алгоритмов (по сути, сама программа является собственной блок-схемой);

· сильно упрощается процесс тестирования и отладки структурированных программ.

 


 



2019-10-11 293 Обсуждений (0)
Структурное программирование 0.00 из 5.00 0 оценок









Обсуждение в статье: Структурное программирование

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (293)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.01 сек.)