Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Методы структурного программирования




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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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




Поделиться с друзьями:


Дата добавления: 2014-12-16; Просмотров: 464; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.