36222

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

Доклад

Информатика, кибернетика и программирование

Создавались вполне работоспособные программы. Это можно объяснить только тем что программы в те времена были в основном простые работала над каждой группа не больше чем 10 человек а чаще всего вообще только программист. Он же потом осуществлял сопровождение программы и перенос в случае необходимости на другие аппаратные платформы...

Русский

2015-01-18

37.5 KB

1 чел.

Парадигмы программирования

Программирование как таковое существует с середины XX века. По преобладанию определённой парадигмы можно различить три периода:

  1.  На заре  появления программирования как такового никаких правил, ограничивающих фантазию программиста, не существовало. Причём создавались вполне работоспособные программы. Это можно объяснить только тем, что  программы в те времена были в основном простые, работала над каждой группа, не больше, чем 10 человек, а чаще всего вообще только 1 программист. Он же потом осуществлял сопровождение программы и перенос в случае необходимости на другие аппаратные платформы.

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

На это были свои причины, написание логичных и читабельных программ было невозможно  объективно, поскольку не было нужных средств в самих языках программирования, например, каждая ветвь условного оператора (IF) в языке FORTRAN позволяла исполнить только 1 оператор в каждой ветви, поневоле приходилось использовать безусловный переход (GOTO), чтобы отработать все операторы ветви, а затем ещё один переход, чтобы вернуться на следующий оператор после IF.

Но не было и объективной необходимости ставить читабельность одним из основных качеств программы:

  •  не было аппаратных средств, позволяющих работать в интерактивном режиме, и данное обстоятельство существенно снижает потребность в условных конструкциях.
  •  программы были небольшими и поэтому писались одним программистом
  •  программы были, в основном, вычислительными, а для таких задач критичны временные затраты, поэтому на первый план для них выходит увеличение быстродействия. А требования повышения быстродействия и читабельности противоречат друг другу.
  1.  Со временем умножились потребности общества в очень разноплановом ПО, создание которого стало возможным благодаря качественно – значимому росту потенциала электронной техники. В тысячи раз возросли быстродействие, и память ЭВМ. Это позволило создавать уже не компактные программы, а огромные программные комплексы, так называемые пакеты программ.  Совместная работа многих программистов в рамках одного проекта стала насущной потребностью. А она бесконечно осложнялась беспорядочностью программ и их плохой читабельностью.

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

Структурное программирование – это дисциплина,  которую программист навязывает сам себе, имея целью создание качественного ПО.

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

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

  1.  При построении структуры пакета программ, придерживаться иерархической структуры, избегая беспорядочного вызова мелких подпрограмм.
  2.  Каждая подпрограмма должны выполнять законченную логическую функцию.
  3.  Желательно, чтобы размер подпрограммы не превышал 100 операторов (оптимально -25 операторов, которые можно одновременно увидеть на экране монитора).
  4.  Использовать только обобщённые управляющие конструкции (см. след. раздел), применять оператор GOTO только в специальных, «разрешённых» случаях (например при переходе на конец программы).
  5.  Заботиться о прозрачности программ, о возможности их тестирования ещё на этапе разработки структуры пакета, приступать к написанию тестов ещё до написания программ.
  6.  Повышать «читабельность» программы, для чего следует:
  •  Избегать вложенности циклов и операторов IF более 3-х уровней
  •  Избегать так называемых «программистких трюков» всегда отдавая предпочтения наиболее понятному варианту при написании кода.
  •  Использовать «говорящие» идентификаторы, родственные идентификаторы должны начинаться с одинакового префикса.
  •  Комментировать программу
  1.  Следующий кризис программирования произошёл двадцать лет спустя.  К этому времени неизмеримо возросли возможности электронной техники. Вычислительные задачи перестали быть основным её предназначением. С появлением персональных компьютеров (ПК) наиболее распространёнными стали мультимедийные задачи. Потребность в написании программ стала столь велика, что невозможно стало её удовлетворение «ручным» способом. Насущной стала проблема автоматизации процесса программирования.

Второй проблемой, разросшейся до катастрофических размеров, стала проблема защиты данных. Это не только и не столько защита от несанкционированного доступа, но защита их от непредумышленной порчи при создании ПО. Так наличие глобальных параметров, которые доступны для изменения в любой подпрограмме, неизбежно приводит к их неумышленной порче.

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

В 1989 году началась так называемая война методологий. До того времени господствовала структурная парадигма. С появлением возможностей объектно-ориентированного программирования  появилась парадигма ООП. Надо сказать, что она не отрицает структурную парадигму и скорее строится на ее базе.

Основу  ООП составляют :

  1.  Инкапсуляция - объединение в рамках одного объекта не только данных,  но и методов (процедур/функций) которые осуществляют все манипуляции с данными.
  2.  Наследование – возможность объявить какие-то классы дочерними по отношению к другим, которые в этом случае называются родительскими. Объекты дочерних классов при этом кроме собственных полей (данных) и методов (процедур/функций)  имеют еще поля и методы родительских.
  3.  Полиморфизм – наличие у дочерних и родительских типов методов с одним и тем же именем и возможность по необходимости вызывать нужный метод.


 

А также другие работы, которые могут Вас заинтересовать

31886. Кассир. Должностные обязанности 23 KB
  Должен знать: постановления распоряжения приказы другие руководящие и нормативные документы вышестоящих и других органов касающиеся ведения кассовых операций; формы кассовых и банковских документов; правила приема выдачи учета и хранения денежных средств и ценных бумаг; порядок оформления приходных и расходных документов; лимиты остатков кассовой наличности установленной для организации; правила обеспечения их сохранности; порядок ведения кассовой книги составления кассовой отчетности; правила эксплуатации электронно вычислительной...
31887. Работа с формулами. Абсолютная и относительная адресация при работе с формулами 44.5 KB
  Вам необходимо определить стоимость каждой квартиры таким образом чтобы общая сумма полученных денег равнялась 7 млн. Известно что: дом 6ти этажный кирпичный; на каждом этаже по 4 квартиры 1но 2х 3х и 4х комнатные общей площадью 63; 90; 118; 146 соответственно; стоимость квартир зависит от этажа на первом и последнем дешевле; стоимость 1 м2 в центре Екатеринбурга 60. В ячейку G2 введите стоимость одного квадратного метра – 60. Выделите все ячейки связанные с суммами стоимость квартир и задайте Финансовый формат с двумя...
31888. Сердечно-легочная и церебральная реанимация 103 KB
  Проверить реакцию пострадавшего: аккуратно встряхнуть его за плечи и громко спросить Что с Вами€. Принять решение: если пострадавший реагирует – оставить его в том же положении попытаться выяснить причины происходящего и позвать на помощь регулярно оценивать состояние пострадавшего; если пострадавший не реагирует – громко позвать на помощь повернуть на спину и открыть дыхательные пути путем запрокидывания головы и подтягивания подбородка – рукой нужно надавить на лоб а другой рукой подтянуть подбородок. Альтернативный способ –...
31889. Русский язык и культура речи 247 KB
  ФОНЕТИЧЕСКИЙ УРОВЕНЬ Содержит задания отражающие проблемы связанные с нормами постановки ударения акцентологические нормы. СЛОВООБРАЗОВАТЕЛЬНЫЙ УРОВЕНЬ В заданиях необходимо найти ошибки допущенные при образовании слов и исправить их. ГРАММАТИЧЕСКИЙ УРОВЕНЬ В данном блоке представлен комплекс заданий на проверку знания морфологических норм нормы образования форм слов различных частей речи и синтаксических норм нормы употребления форм слов в словосочетании и предложении нормы построения предложений. ЛЕКСИЧЕСКИЙ УРОВЕНЬ Данный блок...
31890. ПЛАНЫ СЕМИНАРСКИХ ЗАНЯТИЙ И ТЕМЫ РЕФЕРАТОВ ПО ФИЛОСОФИИ 377.5 KB
  Горького Рассмотрены на заседании кафедры философии Протокол № 7 от 4 апреля 2005 г. Творческое усвоение студентами философии т. При творческом усвоении философии у студентов формируются следующие умения по различным блокам философского знания: историкофилософский блок: вычленять смысл философской системы: как в ней решаются вопросы метафизики антропологии гносеологии аксиологии культурологии социологии политологии праксиологии; определять педагогическую значимость той или иной философской системы и аргументировать ответ;...
31891. Методические рекомендации, планы семинарских занятий и темы контрольных работ по философии 198.5 KB
  Андреев Одобрены на заседании кафедры философии. кафедрой философии С. 2005 Введение При усвоении дисциплины студент должен иметь программу по философии в которой отражены цели задачи требования к уровню усвоения содержания дисциплины приведена основная и дополнительная литература по всем темам курса контрольные вопросы для подготовки к экзамену.
31892. Задания и методические указания для выполнения курсовых работ по дисциплине «Основы маркетинга» 77.5 KB
  Шапошников Одобрена на заседании кафедры менеджмента и маркетинга. Методические указания к написанию курсовой работы Главное условие успешного овладения студентами знаниями в области дисциплины Основы маркетинга заключается в самостоятельной систематической работе. При высоком уровне знаний проявленных при защите курсовой работы и другим контрольным мероприятиям а также на практических занятиях по дисциплине Основы маркетинга студент может быть освобожден от экзамена.
31893. Статистика. Задания к контрольным работам по дисциплине «Статистика» и методические указания для их выполнения 510 KB
  Группировкой называется расчленение множества единиц изучаемой совокупности на группы по определенным существенным для них признакам. Группировка выявляющая взаимосвязи между изучаемыми явлениями и их признаками называется аналитической группировкой. После определения признака положенного в основание группировки определяют количество групп на которые разбивают исследуемую совокупность. Число групп зависит от задач исследования типа группировки вида признака положенного в основание группировки численности совокупности степени вариации...
31894. ЭКОНОМИЧЕСКИЙ АНАЛИЗ 366.5 KB
  При изучении данной дисциплины и выполнении курсовой работы студенты должны быть знакомы с вопросами экономической статистики экономики предприятия бухгалтерского учета финансов предприятия изучаемыми на предыдущих курсах. Объектом изучения дисциплины выступает финансовохозяйственная деятельность предприятия соответственно курсовая работа направлена на выявление проблем в финансовохозяйственной деятельности определение резервов использования ресурсов и формулирование мероприятий по их реализации. Цель курсовой работы по дисциплине...