Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Этапы развития технологии программирования




1). «Стихийное» программирование (до середины 60х гг.).

Отсутствовала сформулированная технология, программирование было искусством. Программы имели простейшую структуру (программы на машинном языке и обрабатываемые ими данные).

<<Рис.1.2. Структура простейших программ.

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

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

Рис. 1.3. Структура программ с глобальной областью данных.>>

Было предложено в подпрограмме размещать локальные данные.

 

<<Рис. 1.4. Структура программ, использующих локальные данные.

 

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

В начале 60х гг. возник «кризис программирования»: фирмы, разрабатывающие сложные ПО, срывали сроки завершения проектов. Проект устаревал раньше, чем был готов к внедрению. Увеличилась стоимость и т.д..

Объективно это было вызвано несовершенством технологии программирования:

Стихийно использовалась разработка восходящего подхода и т. Д.

Процесс тестирования и отладки программ занимал более 80% времени разработки.

2). «Структурный» подход к программированию (60е – 70е гг.).

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

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

Модульное программирование предполагает выделение группы программ, использующих одни и те же глобальные данные в отдельно компилируемые модули (библиотеки). Связи между модулями осуществляется через специальный интерфейс, а доступ к реализации модуля (телам подпрограмм и некоторым внутренним переменным) запрещен. Эту технологию поддерживают современные версии языков Pascal, C, Ada.

1…n1 – подпрограммы с локальными данными.

<<Рис. 1.5. Структура программ, состоящих из модулей.

Использование модульного программирования упростило разработку ПО несколькими программистами: каждый мог разрабатывать свои модули независимо, обеспечивая взаимодействие модулей через межмодульный интерфейс. Также модули без изменений могли быть использованы в других разработках.

Буг: «Структурный» подход в сочетании с модульным программированием позволил получать достаточно надежные программы размером <= 100000 операторов». Недостатки модульного программирования: ошибка в интерфейсе при вызове подпрограммы выявляется только при выполнении программы. При увеличении размера программы вырастает сложность межмодульных интерфейсов и с некоторого момента предусмотреть взаимодействие отдельных частей программы становится практически невозможно. Для разработки ПО большого объема было предложено использовать объектный подход.

3). Объектный подход (середина 80-х – конец 90х гг.).

Объектно-ориентированное программирование (ООП) определяется как технология создания сложного ПО, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса. Классы образуют иерархию с наследованием свойств. Взаимодействие программных объектов в такой системе осуществляется путем передачи сообщений.

 

<<Рис.1.6. Структура программы при ООП.

 

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

Использование объектного подхода имеет ряд преимуществ, но конкретная реализация в объектно-ориентированных языках (Pascal, C++) имеет недостатки:

1.Фактически отсутствуют стандарты компоновки двоичных результатов компиляции объектов в единое целое, даже в пределах одного языка программирования, что приводит к необходимости разработки ПО с использованием средств и возможностей одного языка программирования и одного компилятора, а значит требует наличия исходных кодов, используемых библиотек классов.

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

 










Последнее изменение этой страницы: 2018-05-27; просмотров: 192.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...