6930

Хаотическое и структурное программирование

Доклад

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

Хаотическое и структурное программирование Для начального периода развития программотехники, когда программы были штучным продуктом, характерен стиль программирования, который впоследствии получил название хаотическое программирование....

Русский

2013-01-10

107 KB

2 чел.

Хаотическое и структурное программирование

Для начального периода развития программотехники, когда программы были штучным продуктом, характерен стиль программирования, который впоследствии получил название “хаотическое” программирование. Суть его в том, чтобы из операторов языка программирования сконструировать программу, выполняющую некоторое (заданное) преобразование данных. Ни набор операторов, ни порядок их применения никак не регламентировался. В общем случае для такого программирования, чем больше операторов в языке программирования, тем лучше.

Главный недостаток разработанного таким образом ПО – большие трудности его сопровождения. Программы, написанные без регламентации применения операторов языка программирования, имеют структуру “итальянского спагетти” из-за частого применения в таких программах оператора перехода goto. Как правило, в таких программах может разобраться только автор, они плохо пригодны для тиражирования и превращения в товар.

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

Знаменательной датой в истории программирования стал 1968 год. Тогда создавшееся в программировании положение обсуждалось на международной конференции, получившей название “Кризис программного обеспечения”. В этом году Чарльз Хоар и Николаус Вирт впервые указали на необходимость придания языку программирования свойств, которые превратили бы его в “инструмент надежного создания сложных программ”. Однако настоять на этом им не удалось.

Несколько позже автор структурного программирования голландский ученый Дийкстра (в некоторых источниках Дейкстра) выпустил работу под названием “заметки по структурному программированию”, в которой доказывал, что большинство программ сложны и неуправляемы из-за отсутствия в них четкой математической структуры. Интуитивному и бессознательному (“хаотическому”) программированию он последовательно противопоставлял логически строгую методологию, предполагавшую ко всему прочему личную дисциплинированность и ответственность программиста. Одним из его кардинальных предложений было признание оператора перехода goto недопустимым в программировании. Сначала это предложение смутило и удивило почти всех программистов, но затем они убедились в том, что доводы Дийкстры весьма основательны. Способствовало этому то обстоятельство, что Якопини и Ципнер доказали теорему о том, что теоретически любую программу можно написать без goto. Чтобы изложить эту историю о революции в программировании до конца, следует упомянуть, что в 1974 году на защиту оператора goto выступил американец Кнут и показал, что в некоторых случаях использование этого оператора желательно.

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

Перечислим эти принципы:

  1.  Каждый программный модуль (блок, функция, процедура) должен иметь только один вход и один выход.

Это позволяет максимально упростить стыковку модулей в программе.

  1.  В программах рекомендуется применять  4 типа конструкций:

а)  последовательность (модулей, операторов)

         

         б)  разветвление (условный оператор)

                                     

Перечеркивание означает, что Q может отсутствовать.

    в)  цикл

  1.  с предусловием

  1.  с постусловием

          г)  выбор из нескольких альтернатив (или переключатель)

              

  1.   разработку программ рекомендуется вести сверху – вниз или по нисходящей стратегии.

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

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

Этот подход воплощен в методике, называемой «построением прототипа», или макетированием. Такую методику независимо предложили англичанка Черер и американец Мартин. Они назвали свои методы “prototyping” и “maketing” соответственно. Суть их методов в том, что разработку сложной программы необходимо начать с ее макета, который воплощал бы в себе основные ее конструкции, функции или элементы в их взаимосвязи, но без подробной детализации. Детализация осуществляется на более поздних этапах и по принципу “сверху-вниз” Достоинства такого макета в следующем:

а) макет дает наглядное представление о будущем программном продукте;

б) на макете просматриваются основные функции, выполняемые программой;

в) не загроможденный деталями макет четко характеризует программное изделие и способы достижения поставленных целей проекта;

г) если макет демонстрирует недостаточное удовлетворение требований, его легко переделать на ранних стадиях проекта;

д) одобренный макет – основа документации к будущей программной системе;

е) по макету проще спланировать разделение труда исполнителей, скоординировать и проконтролировать выполнение работы.

Нисходящее проектирование и его реализация (макетирование) первоначально как бы встраивались в структурное программирование, но впоследствии они были выделены и встроены в CASE-технологии.

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


        Р

        Р

       Q


 

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

78297. Серцево-судинна система в умовах спокою, фізіологічних стресів, під час фізичного навантаження та в умовах патології: серцево-судинної системи в умовах патології 70.15 KB
  Ішемічна хвороба серця. В цілому стан шоку виникає якщо або суттєво знижена насосна функція серця або наповнення камер серця відбувається дуже неадекватно. Існує декілька додаткових компенсаторних процесів які виникають у разі виникнення шоку: Дихання часте і поверхневе що посилює венозне повернення до серця через діяльність дихального насосу. Однак через те що компенсаторні механізми включають значне звуження артеріол то кровоток в тканинах за виключенням серця і головного мозку може виявитися неадекватним не зважаючи на майже...
78298. Бронхо-легенева система в умовах спокою, тренувальних впливів, екстремальних, граничних та патологічних станів: бронхо-легенева система в умовах спокою 157.42 KB
  Кількісні показники зовнішнього дихання. Для цього треба застосовувати комплекси фізичних вправ які розвивають дихання. Дихання людини Дихання людини складається з таких процесів: Зовнішнє дихання вентиляція легень надходження повітря в повітроносні шляхи і газообмінміж альвеолами та зовнішнім середовищем. Значення дихання для людини Газообмін між організмом і зовнішнім середовищем надходження О2 до клітин організму а також виведення СО2 з організму.
78300. НОРМИРОВАНИЕ ТОЧНОСТИ УГЛОВЫХ РАЗМЕРОВ 187 KB
  Система единиц на угловые размеры Углом в плоскости называется геометрическая фигура образованная двумя лучами сторонами угла выходящими из одной точки вершины. Полуплоскости называются гранями двугранного угла а их общая прямая ребром. В промышленности чаще всего приходится иметь дело с двугранными углами однако для удобства измерений требования к точности относятся к углу в плоскости т. углу получаемому пересечением двугранного угла плоскостью перпендикулярной ребру.
78301. НОРМИРОВАНИЕ ТОЧНОСТИ МЕТРИЧЕСКОЙ РЕЗЬБЫ 606 KB
  Резьбовые соединения используемые в машиностроении Резьбовым соединением называется соединение двух деталей с помощью резьбы т. элементов деталей имеющих один или несколько равномерно расположенных винтовых выступов резьбы постоянного сечения образованных на боковой поверхности цилиндра или конуса. Контур сечения канавок и выступов в плоскости проходящей через ось резьбы общий для наружной и внутренней резьбы называется профилем резьбы.
78302. НОРМИРОВАНИЕ ТОЧНОСТИ ПРЯМОБОЧНЫХ ШЛИЦЕВЫХ СОЕДИНЕНИЙ 398.5 KB
  Шлицевым соединением или зубчатым соединением называется разъемное соединение вала с отверстием когда на валу имеются зубья выступы а в отверстии соответствующие впадины шлицы. Шлицевое соединение можно представить как многошпоночное соединение с равномерно расположенными шпонками. В зависимости от формы профиля выступов у вала и впадин у втулки имеются прямобочные шлицевые и эвольвентные соединения. Значительно реже применяются шлицевые соединения с треугольным профилем.
78303. НОРМИРОВАНИЕ ТОЧНОСТИ ШПОНОЧНЫХ СОЕДИНЕНИЙ 101 KB
  В шпоночных соединениях имеются вал и отверстие как в гладких соединениях. На валу и во втулке этого соединения имеются пазы расположенные вдоль оси. В машиностроении в основном используют шпоночные соединения с призматическими сегментными и клиновыми шпонками. Помимо перечисленных шпоночных соединений в машиностроении используются и нормируются точности других шпоночных соединений представляющих в определенном роде разновидность перечисленных: соединения с призматическими направляющими шпонками с призматическими высокими...
78304. НОРМИРОВАНИЕ ТОЧНОСТИ ЦИЛИНДРИЧЕСКИХ ЗУБЧАТЫХ КОЛЕС И ПЕРЕДАЧ 811 KB
  Зубчатое колесо представляет собой деталь сложной геометрической формы в виде диска с зубьями на внутренней или наружной цилиндрической или конической поверхности входящими в зацепление с зубьями другого зубчатого колеса. Принцип нормирования точности зубчатых колес и передач Трудность в отношении нормирования точностных требований к зубчатым передачам заключается в том что эти детали сложны по своей геометрической форме а кроме того они являются элементами кинематической...
78305. Сертификация, ее сущность и характеристики 967 KB
  Сущность сертификации Общие положения. Сертификация базируется на стандартах и в ее основе лежат испытания по нормам сертификации. Самосертификация выполняет все необходимые действия и заявляет об этом специальным документом или простановкой знака сертификации на продукции или сопроводительным документом. Любая система сертификации базируется на стандартах государственных предприятий технических условиях.