Заходи
Гость

Хостинг

Статистика
Яндекс.Метрика Счетчик PR-CY.Rank
Онлайн всего: 1
Гостей: 1
Пользователей: 0

Ccылки

Свежак

Главная » Статьи » Все статьи » Прогараммирование

ТЕХНОЛОГИЯ СТРУКТУРНОГО ПРОГРАММИРОВАНИЯ

ПОНЯТИЕ СТРУКТУРНОГО ПРОГРАММИРОВАНИЯ

Исторически сложилось так, что императивные языки в настоящее время доминируют в программировании. Однако ис­следования, проведенные в 70-80-х годах XX века, показали, что аппликативная методика обеспечивает более эффективные способы верификации программ и доказательство их корректности. Это видно из блок-схем, представленных на рис. 4. На рис. 4, а изобра­жена блок-схема, типичная для программ 60-х годов XX века. В ней нет никакой явной структуры. Такие программы называют про-граммами-спагетти. Из-за большого числа нерациональных пере­дач управления назад и вперед трудно понять, каково состояние программы в каждый момент времени в процессе ее выполнения.

На рис. 4, б приведена более структурированная конструкция. Каждый сегмент данной блок-схемы можно заключить в пунктир­ный прямоугольник. Каждый из таких прямоугольников на этой схеме будет иметь одну точку входа и одну точку выхода. Эту про­грамму можно рассматривать как композицию четырех функций-подпрограмм, и поведение программы можно определить как функцию, которая получает данное состояние на входе выделенно­го пунктиром прямоугольника и преобразует его в результирующее состояние на выходе из него. Писать сложные программы в тысячи и десятки тысяч строк без расчленения на самостоятельные фраг­менты, т. е. без структурирования, просто невозможно.

Структурное программирование - подход, при котором для передачи управления в программе используются только три конст­рукции, допускающих последовательную, условную и итеративную передачи управления. При этом безусловная передача управления например, оператором goto запрещается.

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

Структурное программирование является результатом приме­нения аппликативных методов к императивным программам. Для этого используются процедурно-ориентированные языки, в кото­рых имеется возможность описания программы как совокупности процедур. Процедуры могут вызывать друг друга, и каждая из них может быть вызвана основной программой, которую также можно рассматривать как процедуру.

Структурный подход к программированию представляет собой методологию создания программ. Его внедрение обеспечивает:

повышение производительности труда программистов при на­писании и контроле программ;

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

создание программ коллективом разработчиков;

окончание создания программ в заданный срок.

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

ПРИНЦИП УТАИВАНИЯ ИНФОРМАЦИИ

Концепция структурного программирования предпола­гает разбиение программы на отдельные компоненты согласно принципу утаивания информации.

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

Процедуры и функции выступают как естественные текстовые единицы, с помощью которых ограничивается область существова­ния локальных идентификаторов.

Идентификатором называется строка символов, используемая для идентификации или именованная (последовательность букв, цифр и знаков подчеркивания, которая начинается с буквы или символа подчеркивания и не содержит пробелов).

Областью видимости (действия) идентификатора называется часть программы, где он может быть использован.

Область видимости идентификаторов определяется местом их объявления. Если идентификаторы допускается использовать толь­ко в рамках одной процедуры или функции, то такие идентифика­торы называются локальными. Если действие идентификаторов распространяется на несколько вложенных (не менее одной) про­цедур и/или функций, то такие идентификаторы называются гло­бальными. Правила определения области видимости для идентифи­каторов состоят в следующем:

1) действуют все идентификаторы, определенные внутри про­цедуры/функции;

2)  действуют все идентификаторы окружающего контекста, ес­ли их имена отличаются от имен, объявленных внутри процеду­ры/функции;

3)локальные идентификаторы процедуры/функции во внешнем окружении не действовуют никогда;

4)в случае совпадения имен глобального и локального иденти­фикаторов действует только внутренний, локальный идентифика­тор, независимо от того совпадают они по типу, или нет.

МЕТОДЫ СТРУКТУРНОГО ПРОГРАММИРОВАНИЯ

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

решения частных задач приводят к решению общей задачи;

данная последовательность отдельных действий наиболее ра­циональна;

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

Нисходящий подход к разработке программных систем. В соответствии с этим методом создание программы на­чинается сверху, т.е. с разработки самого главного, генерального алгоритма. Так как на верхнем уровне обычно еще не ясны детали реализации той или иной части программы, то эти части следует заменить временными заглушками .

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

На практике «чистую» нисходящую разработку осуществить невозможно. На одной из более поздних стадий часто обнаружива­ется, что некоторый выбор, сделанный ранее, был неадекватным и это приводит к необходимости итеративной разработки.

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

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

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

Категория: Прогараммирование | Добавил: Iron (12.06.2012)
Просмотров: 906 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск

Статьи
[Прогараммирование]
Как работает CSS?
[Прогараммирование]
ЛЕКЦИЯ. Язык Pascal
[Прогараммирование]
Введение в информатику
[Прогараммирование]
Разработка ПО с открытыми исходными текстами как особый вид прикладной науки
[Разное]
Большие секреты маленького BIOSa
[Прогараммирование]
ТЕОРИЯ ПЕРВИЧНЫХ ПРОГРАММ
[Разное]
Как избавиться от баннеров раз и навсегда
[Прогараммирование]
Подпрограммы
[Безопасность систем]
Резервирование и восстановление
[Прогараммирование]
Динамическая память

Категории
Операционные системы [30]
Устронение ошибок систем [13]
Безопасность систем [9]
Прогараммирование [32]
Технологические [0]
Информатика [23]
Бухгалтерский учет [3]
Ценообразование [0]
Экономика [0]
Менеджмент [3]
Психология [0]
Разное [4]

Популярный софт
Iron Kaspersky Internet Security 2015
Kaspersky Internet Security 2015
Iron Virtual DJ
Virtual DJ
Iron SoundForge 11
SoundForge 11
Iron Alcohol 120
Alcohol 120
Iron Norton Internet Security 2014
Norton Internet Security 2014
Iron Loaris Trojan Remover
Loaris Trojan Remover

Жми

Copyright MyCorp © 2024Конструктор сайтов - uCoz