скачать (254.3 kb.)
Доступные файлы (16):
10.doc | 34kb. | 27.01.2006 23:07 | ![]() |
12-13.doc | 36kb. | 27.01.2006 23:13 | ![]() |
14.doc | 44kb. | 27.01.2006 23:30 | ![]() |
16.doc | 23kb. | 27.01.2006 23:33 | ![]() |
18.doc | 23kb. | 27.01.2006 19:24 | ![]() |
1.doc | 43kb. | 27.01.2006 20:28 | ![]() |
20.doc | 32kb. | 27.01.2006 23:43 | ![]() |
21-22.doc | 22kb. | 27.01.2006 22:00 | ![]() |
26-27.doc | 107kb. | 27.01.2006 19:49 | ![]() |
2.doc | 68kb. | 27.01.2006 22:25 | ![]() |
3.doc | 82kb. | 27.01.2006 20:21 | ![]() |
4.doc | 25kb. | 27.01.2006 20:19 | ![]() |
5.doc | 24kb. | 27.01.2006 19:51 | ![]() |
6.doc | 27kb. | 27.01.2006 21:20 | ![]() |
7.doc | 25kb. | 27.01.2006 20:52 | ![]() |
8.doc | 23kb. | 27.01.2006 22:49 | ![]() |
2.doc
.,Второй этап - структурный подход к программированию (60-70-е годы XX в.). Структурный подход к программированию представляет собой совокупность рекомендуемых технологических приемов, охватывающих выполнение всех этапов разработки программного обеспечения. В основе структурного подхода лежит декомпозиция (разбиение на части), сложных систем с целью последующей реализации в виде отдельных небольших (до 40 - 50 операторов) подпрограмм. С появлением других принципов декомпозиции (объектного, логического и т. д.) данный способ получил название процедурной декомпозиции.
В отличие от используемого ранее процедурного подхода к декомпозиции, структурный подход требовал представления задачи в виде иерархии подзадач простейшей структуры. Проектирование,, таким образом, осуществлялось «сверху-вниз» и подразумевало реализацию общей идеи, обеспечивая проработку интерфейсов подпрограмм. Одновременно вводились ограничения на конструкции алгоритмов, рекомендовались формальные модели их описания, а также специальный метод проектирования алгоритмов -метод пошаговой детализации.
Поддержка принципов структурного программирования была заложена в основу так называемых процедурных языков программирования. Как правило, они включали основные «структурные» операторы передачи управления, поддерживали вложение подпрограмм, локализацию и ограничение области «видимости» данных. Среди наиболее известных языков этой групп) стоит назвать PL/1, ALGOL-68, Pascal, С.
Одновременно со структурным программированием появилось огром ное количество языков, базирующихся на других концепциях, но большинст во из них не выдержало конкуренции. Какие-то языки были просто забыты идеи других были в дальнейшем использованы в следующих версиях разви ваемых языков.
Дальнейший рост сложности и размеров разрабатываемого программно го обеспечения потребовал развития структурирования данных. Как следст вие этого в языках появляется возможность определения пользовательски? типов данных. Одновременно усилилось стремление разграничить доступ к глобальным данным программы, чтобы уменьшить количество ошибок, возникающих при работе с глобальными данными. В результате появилась и начала развиваться технология модульного программирования.
^ предполагает выделение групп подпрограмм, использующих одни и те же глобальные данные в отдельно компилируемые модули (библиотеки подпрограмм), например, модуль графических ресурсов, модуль подпрограмм вывода на принтер (рис. 1.5). Связи между модулями при использовании данной технологии осуществляются через специальный интерфейс, в то время как доступ к реализации модуля (телам подпрограмм и некоторым «внутренним» переменным) запрещен. Эту технологию поддерживают современные версии языков Pascal и С (C++), языки Ада и Modula.
одули с локальными данными и попрограммами Архитектура программы, состоящей из модулей
Использование модульного программирования существенно упростило разработку программного обеспечения несколькими программистами. Теперь каждый из них мог разрабатывать свои модули независимо, обеспечи-, вая взаимодействие модулей через специально оговоренные межмодульные интерфейсы. Кроме того, модули в дальнейшем без изменений можно было использовать в других разработках, что повысило производительность труда программистов.
Практика показала, что структурный подход в сочетании с модульным программированием позволяет получать достаточно надежные программы, размер которых не превышает 100 000 операторов [10]. Узким местом модульного программирования является то, что ошибка в интерфейсе при вызове подпрограммы выявляется только при выполнении программы (из-за раздельной компиляции модулей обнаружить эти ошибки раньше невозможно). При увеличении размера программы обычно возрастает сложность межмодульных интерфейсов, и с некоторого момента предусмотреть взаимовлияние отдельных частей программы становится практически невозможно. Для разработки программного обеспечения большого объема было предложено использовать объектный подход.
визуального проектирования является заготовка будущей программы, в которую уже внесены соответствующие коды.
Использование объектного подхода имеет много преимуществ, однако его конкретная реализация в объектно-ориентированных языках программирования, таких, как Pascal и C++, имеет существенные недостатки:
фактически отсутствуют стандарты компоновки двоичных результатов
компиляции объектов в единое целое даже в пределах одного языка програм
мирования: компоновка объектов, полученных разными компиляторами C++
в лучшем случае проблематична, что приводит к необходимости разработки
программного обеспечения с использованием средств и возможностей одно
го языка программирования высокого уровня и одного компилятора, а значит,
требует наличия исходных кодов используемых библиотек классов;
изменение реализации одного из программных объектов, как мини
мум, связано с перекомпиляцией соответствующего модуля и перекомпонов
кой всего программного обеспечения, использующего данный объект.
Таким образом, при использовании этих языков программирования сохраняется зависимость модулей программного обеспечения от адресов экспортируемых полей и методов, а также структур и форматов данных. Эта зависимость объективна, так как модули должны взаимодействовать между собой, обращаясь к ресурсам друг друга. Связи модулей нельзя разорвать, но можно попробовать стандартизировать их взаимодействие, на чем и основан компонентный подход к программированию.
Скачать файл (254.3 kb.)