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

Обновлено: 04.07.2024

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

Основные этапы программирования как науки:

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

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

4 этап - Компонентный подход и CASE-технологии (с середины 90-х годов XX в. до наст.времени)

Стихийное программирование (С момента появления первых вычислительных машин до середины 60-х годов ХХ в.)

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

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

Создание языков программирования высокого уровня (Фортран, Алгол) упростило программирование вычислений, увеличило сложность программ.

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

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

Чтобы сократить количество ошибок предложено использовать локальные данные в подпрограммах.

Появление средств поддержки подпрограмм позволило разрабатывать программное обеспечение нескольким программистам параллельно.

Понятия: стандарт, унификация. Национальный и международный стандарты.

Стандарт.

Международная организация по стандартизации (ИСО) приняла определение:

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

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

Унификация - рациональное ограничение характеристик и (или) номенклатуры объектов материального производства, в результате которого повышается их взаимозаменяемость, совместимость и конструктивно-технологическое подобие, сокращаются затраты в производстве и эксплуатации.

В зависимости от масштабов работы по стандартизации она может быть национальной и международной.

Национальный стандарт - документ, принятый национальным органом по стандартизации. Основная его функция - разработка и/или опубликование национальных стандартов, утверждение стандартов, подготовленных другими органами. Во всех странах мира национальные стандарты утверждаются на государственном уровне. Международный стандарт - стандарт, принятый международным органом, занимающимся стандартизацией. Наиболее представительные органы - Международная организация по стандартизации (ИСО) и Международная электротехническая комиссия (МЭК).

Понятие жизненного цикла ПО.

Жизненный цикл программного обеспечения (ПО) — это непрерывный процесс, который определяется как период времени, который начинается с момента принятия решения о необходимости создания программного продукта и заканчивается в момент его полного изъятия из эксплуатации.

Модели жизненного цикла ПО.

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

На протяжении последних лет сменились три модели жизненного цикла ПО: каскадная, модель с промежуточным контролем и спиральная

Каскадная модель (1970-1985).

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

Стадии жизненного цикла.

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


Рис. 1. Стадии жизненного цикла ПО

Требования к качеству ПО.

· непротиворечивость требований к системе и степень учета потребностей пользователей;

· возможности поставщика выполнять заданные требования;

· соответствие выбранных процессов ЖЦ ПО условиям договора;

· адекватность стандартов, процедур и среды разработки процесса ЖЦ ПО;

· соответствие проектных спецификаций ПО заданным требованиям;

· корректность описания в спецификациях входных/выходных данных, интерфейсов, логики;

· соответствие кода проектным спецификациям и требованиям;

· тестируемость и корректность кода, его соответствие принятым стандартам кодирования;

· корректность интеграции компонентов ПО в систему;

· адекватность, полнота и непротиворечивость документации.

Основные этапы развития программирования. Стихийное программирование.

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

Основные этапы программирования как науки:

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

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

4 этап - Компонентный подход и CASE-технологии (с середины 90-х годов XX в. до наст.времени)

Стихийное программирование (С момента появления первых вычислительных машин до середины 60-х годов ХХ в.)

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

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

Создание языков программирования высокого уровня (Фортран, Алгол) упростило программирование вычислений, увеличило сложность программ.

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

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

Чтобы сократить количество ошибок предложено использовать локальные данные в подпрограммах.

Появление средств поддержки подпрограмм позволило разрабатывать программное обеспечение нескольким программистам параллельно.

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



Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого.


Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой.

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

Содержание работы
Содержимое работы - 1 файл

Куросовая работа.doc

Государственное Образовательное Учреждение

Среднего Профессионального Образования

"Уральский политехнический колледж"

Курсовая работа

Тема: Технология программирования и основные этапы ее развития

По дисциплине: Технологии разработки программных продуктов

Выполнил студент: 3 курса

Устюгов Артем Владимирович

__________Юдина Ирина Игоревна

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

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

4. Компонентный подход и CASE-технологии (с середины 90-х годов XX в. до нашего времени) 11

Техническое задание 16

Практическая часть 17

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

ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ И ОСНОВНЫЕ ЭТАПЫ ЕЕ РАЗВИТИЯ

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

• указание последовательности выполнения технологических операций;

• перечисление условий, при которых выполняется та или иная операция;

• описания самих операций, где для каждой операции определены исходные данные, результаты, а также инструкции, нормативы, стандарты, критерии и методы оценки и т. п.

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

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

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

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

Создание языков программирования высокого уровня, таких, как FORTRAN и ALGOL, существенно упростило программирование вычислений, снизив уровень детализации операций.

Это, в свою очередь, позволило увеличить сложность программ.

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

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

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

Слабым местом такой архитектуры было то, что при увеличении количества подпрограмм возрастала вероятность искажения части глобальных данных какой-либо подпрограммой. Например, подпрограмма поиска корней уравнения на заданном интервале по методу деления отрезка пополам меняет величину интервала. Если при выходе из подпрограммы не предусмотреть восстановления первоначального интервала, то в глобальной области окажется неверное значение интервала. Чтобы сократить количество таких ошибок, было предложено в подпрограммах размещать локальные данные.

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

2. СТРУКТУРНЫЙ ПОДХОД К

ПРОГРАММИРОВАНИЮ (60-70-Е ГОДЫ ХХ В)

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

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

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

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

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

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

II этап. Структурное (модульное) программирование

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

Дальнейший рост сложности и размеров ПО потребовал развития структурированных данных.

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

Модульное программирование предполагает выделение группы подпрограмм, которые используют одни и те же данные в отдельно компилируемые модули. Технологию модульного программирования поддерживают все современные языки программирования.

III этап. Объектный подход к программированию (середина 70-х гг – конец 90-х гг).

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

Недостаток: отсутствие стандартов компоновки двоичных результатов компиляции объектов в единое целое.

IV этап. Компонентный подход и case-технологии (середина 90-х гг – настоящее время).

Компонентный подход предполагает построение ПО из отдельных компонентов, взаимодействующих между собой через стандартизированные двоичные интерфейсы. Компонентный подход лежит в основе технологий, разработанных на базе COM.

13. Понятие CASE – технологии и ее фундаментальные принципы. Основные составляющие CASE-технологии.

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

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

Преимущества CASE-технологии по сравнению с традиционной технологией оригинального проектирования сводятся к сле­дующему:

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

• возможность повторного использования компонентов разра­ботки;

• поддержание адаптивности и сопровождения ЭИС;

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

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

• возможность коллективной разработки ЭИС в режиме реаль­ного времени.

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

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

• мощные графические средства для описания и документирования ИС, обеспечивающие удобный интерфейс с разработчиком и развивающие его творческие возможности;

• интеграция отдельных компонент CASE-средств, обеспечивающая управляемость процессом разработки информационной системы;

• использование специальным образом организованного хранилища проектных метаданных (репозитория).

Интегрированное CASE-средство (или комплекс средств, поддерживающих полный жизненный цикл ПО) содержит следующие компоненты:

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

· графические средства анализа и проектирования, обеспечивающие создание и редактирование иерархически связанных диаграмм (DFD, ERD и др.), образующих модели информационной системы;

· средства разработки приложений, включая языки 4GL (4GL – четвёртого поколения) и генераторы кодов;

· средства конфигурационного управления;

· средства управления проектом;

14. Система стандартов ISO 9001.

15. Управление конфигурацией. Case-системы.

Цель конфигурационного управления (КУ) - обеспечить управляемость и контролируемость процессов разработки и сопровождения ПО. Для этого необходима точная и достоверная информация о состоянии ПО и его компонент в каждый момент времени, а также о всех предполагаемых и выполненных изменениях.

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

К таким средствам относятся CASE-средства. CASE-средства являются сравнительно новым направлением в информационных технологиях. Примерами используемых в настоящее время CASE-средств являются: ProKit*WORKBENCH, Design / IDEF, CASE Oracle (Designer / 2000), Power Designer (S-Designor), ERWin, SILVERRUN, ERStudio и другие.

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

При сравнении CASE-систем кроме используемой методологии ER-моделирования, необходимо учитывать специфические критерии, связанные с реализацией функций автоматизированного проектирования:

· число и перечень поддерживаемых целевых СУБД;

· поддержку распределенных БД;

· поддержку коллективной работы при проектировании (управление правами пользователей, ведение репозитория и т. д.);

· построение концептуальной ER-модели по описанию структуры существующей БД – реверс-инжиниринг;

· автоматизируемые функции проектирования и степень их автоматизации;

· качество и жесткость проектных решений (возможность выбора из нескольких альтернативных решений, возможность ручного вмешательства в процесс);

· открытость системы (возможность стыковки с другими средствами);

удобство графического редактора;

· количественные ограничения (общее число сущностей, число уровней вложенности для обобщенной сущности и др.);

· возможность автоматической оценки объема памяти для проектируемой БД;

· возможность автоматической генерации процедур;

· наличие средств моделирования хранилищ данных;

· требования к ресурсам компьютера;

CASE-средства показывают модель с разной степенью детализации:

· только обозначения сущностей и связей между ними;

· сущности + ключи + внешние ключи;

· сущности + все атрибуты.

Наличие таких возможностей создает существенные удобства, особенно при создании больших и сложных моделей.

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

Еще одним критерием сравнения СASE-средств является степень проверки правильности построенных моделей. Ни одна система автоматизации проектирования не может гарантировать соответствия построенной концептуальной модели реалиям предметной области. Это определяется только квалификацией разработчиков, их пониманием предметной области и умением отобразить ее в модели.

Многие CASE-средства позволяют:

§ задавать в модели ограничения целостности и генерируют программы (триггеры, хранимые процедуры), проверяющие эти ограничения при эксплуатации БД;

§ генерировать программы ведения БД;

§ экспортировать модели в другие системы и, наоборот, импортировать их из других систем.

16. Понятие технологии программирования

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

· указание последовательности выполнения технологических операций;

· перечисление условий, при которых выполняется та или иная операция;

· описания самих операций, где для каждой операции определены исходные данные, результаты, а также инструкции, нормативы, стандарты, критерии и методы оценки и т. п.

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

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

Этапы решения задачи на ЭВМ

I.Постановка задачи – точная формулировка её условий и целей решения. На этом этапе должно быть чётко определено, что дано и что требуется найти, т.е. под постановкой задачи понимается ответ на два вопроса: какие исходные данные известны и что необходимо определить?

постановка задачи включает в себя:

1. Сбор сведений о задаче;

2. Формулировка условий задачи;

3. Определение конечных целей решения;

4. Определения формы вывода результатов.

5. Выбор метода решения. Построение математической модели для решения математических соотношений.

6. Разработка алгоритма по выбранному методу решения. Алгоритм записывается в любой форме.

7. Запись алгоритма на языке программирования.

8. Отладка и тестирование программы на компьютере.

Отладка – процесс нахождения и исправления ошибок в программе. Отладка включает в себя синтаксическую, семантическую, логическую отладку.

Тестирование – проверка конкретных вариантов значений на соответствие фактическим данным.

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

Как любая другая технология она представляет собой набор технологических инструкций, включающих:

- указание последовательности выполнения технологических операций;

- перечисление условий, при которых выполняется та или иная операция;

- описания самих операций, где для каждой операции определены исходные данные, результаты, а также инструкции, нормативы, стандарты, критерии и методы оценки и т.п.

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

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


Рис. 1. Структура первых программ

Создание языков программирования высокого уровня, таких, как FORTRAN и ALGOL, существенно упростило программирование вычислений, снизив уровень детализации операций, что позволило увеличить сложность программ.

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


Рис. 2. Архитектура программы с глобальной областью данных

Слабым местом такой архитектуры было то, что при увеличении количества подпрограмм возрастала вероятность искажения части глобальных данных какой-либо подпрограммой. Например, подпрограмма поиска корней уравнения на заданном интервале по методу деления отрезка пополам меняет величину интервала. Если при выходе из подпрограммы не предусмотреть восстановления первоначального интервала, то в глобальной области окажется неверное значение интервала. Чтобы сократить количество таких ошибок, было предложено в подпрограммах размещать локальные данные (рис. 3).


Рис. 3. Архитектура программы использующей подпрограммы с локальными данными

Появление средств поддержки подпрограмм позволило осуществлять разработку программного обеспечения нескольким программистам параллельно.

Одновременно вводятся:

- ограничения на конструкции алгоритмов;

- формальные модели их описания;

- метод пошаговой детализации проектирования алгоритмов.

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

Модульное программирование предполагает выделение групп подпрограмм, использующих одни и те же глобальные данные, в отдельно компилируемые модули (библиотеки подпрограмм), например, модуль графических ресурсов, модуль подпрограмм вывода на принтер и т.п. (рис. 4).


Рис. 4. Архитектура программы, состоящей из модулей

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

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

Объектная структура программы впервые была использована в языке имитационного моделирования сложных систем Simula (60-е годы XX в.), в специализированном языке моделирования Smalltalk (70-е годы XX в.), а затем в новых версиях универсальных языков программирования, таких, как Pascal, C++, Modula, Java.

Бурное развитие технологий программирования, основанных на объектном подходе, позволило решить многие проблемы. Так были созданы среды, поддерживающие визуальное программирование, например, Delphi, C++ Builder, Visual C++ и т.д. При использовании визуальной среды у программиста появляется возможность проектировать некоторую часть, например, интерфейсы будущего продукта с применением визуальных средств добавления и настройки специальных библиотечных компонентов. Результатом визуального проектирования является заготовка будущей программы, в которую уже внесены соответствующие коды.



Рис. 5. Архитектура программы при объектно-ориентированном программировании

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

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

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

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

Четвертый этап – компонентный подход и CASE-технологии (с середины 90-х годов XX до нашего времени). Компонентный подход предполагает построение программного обеспечения из отдельных компонентов физически отдельно существующих частей программного обеспечения, которые взаимодействуют между собой через стандартизованные двоичные интерфейсы. В отличие от обычных объектов объекты-компоненты можно собрать в динамически вызываемые библиотеки или исполняемые файлы, распространять в двоичном виде (без исходных текстов) и использовать в любом языке программирования, поддерживающем соответствующую технологию.

Компонентный подход лежит в основе технологий, разработанных на базе COM (Component Object Model – компонентная модель объектов), и технологии создания распределенных приложений CORBA (Common Object Request Broker Architecture – общая архитектура с посредником обработки запросов объектов). Эти технологии используют сходные принципы и различаются лишь особенностями их реализации.

Технология СОМ фирмы Microsoft является развитием технологии OLE (Object Linking and Embedding – связывание и внедрение объектов), которая используется в Windows. Технология СОМ определяет общую парадигму взаимодействия программ любых типов: библиотек, приложений, операционной системы. Т.е. позволяет одной части программного обеспечения использовать функции (службы), предоставляемые другой, независимо от того, функционируют ли эти части в пределах одного процесса, в разных процессах на одном компьютере или на разных компьютерах (рис. 6). Модификация СОМ, обеспечивающая передачу вызовов между компьютерами, называется DCOM (Distributed COM – распределенная СОM).


Рис. 6. Взаимодействие программных компонентов различных типов

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

Объект всегда функционирует в составе сервера – динамической библиотеки или исполняемого файла, которые обеспечивают функционирование объекта.

Различают три типа серверов:

- внутренний сервер – реализуется динамическими библиотеками, которые подключаются к приложению-клиенту и работают в одном с ними адресном пространстве. Это наиболее эффективный сервер, он не требует специальных средств;

- локальный сервер – создается отдельным процессом (модулем , ехе), который работает на одном компьютере с клиентом;

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

Например, Microsoft Word является локальным сервером. Он включает множество объектов, которые могут использоваться другими приложениями.

Взаимодействие клиента и сервера обеспечивается базовыми механизмами СОМ или DCOM, поэтому клиенту безразлично местонахождение объекта. При использовании локальных и удаленных серверов в адресном пространстве клиента создается proxy-объект – заместитель объекта-СОМ, а в адресном пространстве сервера СОМ – заглушка, соответствующая клиенту. Получив задание от клиента, заместитель упаковывает его параметры и, используя службы операционной системы, передает вызов заглушке. Заглушка распаковывает задание и передает его объекту-СОМ. Результат возвращается клиенту в обратном порядке.

На базе технологии СОМ и ее распределенной версии DCOM были разработаны компонентные технологии, решающие различные задачи разработки программного обеспечения.

OLE-automation или просто Automation (автоматизация) – технология создания программируемых приложений, обеспечивающая программируемый доступ к внутренним службам этих приложений. Вводит понятие диспинтерфейса (dispinterface) – специального интерфейса, облегчающего вызов функций объекта. Эту технологию поддерживает, например, Microsoft Excel, предоставляя другим приложениям свои службы.

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

Основными преимуществами технологии ActiveX, обеспечивающими ей широкое распространение, являются:

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

- открытость и мобильность;

- возможность написания приложений с использованием знакомых средств разработки;

- большое количество уже существующих бесплатных программных элементов ActiveX (к тому же, практически любой программный компонент OLE совместим с технологиями ActiveX и может применяться без модификаций в сетевых приложениях);

- стандартность – технология ActiveX основана на широко используемых стандартах Internet (TCP/IP, HTML, Java), с одной стороны, и стандартах, введенных в свое время Microsoft и необходимых для сохранения совместимости (COM, OLE).

MTS (Microsoft Transaction Server – сервер управления транзакциями) технология, обеспечивающая безопасность и стабильную работу распределенных приложений при больших объемах передаваемых данных.

MIDAS (Multitier Distributed Application Server – сервер многозвенных распределенных приложений ) – технология, организующая доступ к данным разных компьютеров с учетом балансировки нагрузки сети.

Технология CORBA, разработанная группой компаний ОМС (Object Management Group – группа внедрения объектной технологии программирования), реализует подход, аналогичный СОМ, на базе объектов и интерфейсов CORBA. Программное ядро CORBA реализовано для всех основных аппаратных и программных платформ и потому эту технологию можно использовать для создания распределенного программного обеспечения в гетерогенной (разнородной) вычислительной среде. Организация взаимодействия между объектами клиента и сервера в CORBA осуществляется с помощью специального посредника, названного VisiBroker, и другого специализированного программного обеспечения.

Отличительной особенностью современного этапа развития технологии программирования, кроме изменения подхода, является создание и внедрение автоматизированных технологий разработки и сопровождения программного обеспечения, которые были названы CASE-технологиями (Computer-Aided Software/System Engineering – разработка программного обеспечения /программных систем с использованием компьютерной поддержки). Без средств автоматизации разработка достаточно сложного программного обеспечения на настоящий момент становится трудно осуществимой: память человека уже не в состоянии фиксировать все детали, которые необходимо учитывать при разработке программного обеспечения. На сегодня существуют CASE-технологии, поддерживающие как структурный, так и объектный (в том числе и компонентный) подходы к программированию.

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

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 13.02.2016
Размер файла 16,8 K

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

ОБЛАСТНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ СРЕДНЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

Тема: История развития языков программирования

студент гр. 533з-1,633з-1

Содержание

Первые языки программирования высокого уровня

Алгоритмические языки программирования

Языки объектно-ориентированного программирования (90-ые г. XX в.)

Введение

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

Всю историю компьютерной индустрии и компьютерных наук с определенной точки зрения можно представить как историю развития языков программирования. Меняются времена, усложняются задачи, то, что раньше требовало человеко-лет, нынче энтузиасты делают на коленке за несколько недель; накоплена огромная масса типовых решений, типовых библиотек и типовых программистов. А создание, развитие и изменение языков программирования идет полным ходом.

Машинный язык

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

Ассемблер (начало 50-ых годов XX в.)

Язык Ассемблера - это символическое представление машинного языка. Он облегчает процесс программирования по сравнению с программированием в машинных кодах.

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

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

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

Первые языки программирования высокого уровня

С середины 50-ых гг. XX в. начали создавать первые языки программирования высокого уровня (high-level language). Эти языки были машинно-независимыми (не привязаны к опред. типу ЭВМ). Но для каждого языка были разработаны собственные компиляторы.

Примеры таких языков: FORTRAN (FORmula TRANslator; 1954) предназначен для научных и технических расчетов; COBOL (1959) был предназначен в основном для коммерческих приложений (обрабатывал большие объемы нечисловых данных) - Common Business-Oriented Language); язык BASIC (Beginner's All Purpose Instuction Code - универсальный язык символьных инструкций для начинающих) (1964 г.)

Бейсик - это продукт Новой Англии. Cозданный в 1964г., как язык обучения программированию. Бейсик является общепринятым акронимом от"Beginner's All-purpose Symbolic Insruction Code" (BASIC) - Многоцелевой Символический Обучающий Код для Начинающих".

Вскоре как обучаемые, так и авторы программ обнаружили, что Бейсик может делать практически все то, что делает скучный неуклюжий Фортран. А так как Бейсику было легко обучиться и легко с ним работать, программы на нем писались обычно быстрее, чем на Фортране. Бейсик был также доступен на персональных компьютерах, обычно он встроен в ПЗУ. Так Бейсик завоевал популярность. Интересно, что спустя 20 лет после изобретения Бейсика, он и сегодня самый простой для освоения из десятков языков общецелевого программирования, имеющихся в распоряжении любителей программирования. Более того, он прекрасно справляется с работой.

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

Современный Фортран (Fortran 95 и Fortran 2003) приобрёл черты, необходимые для эффективного программирования для новых вычислительных архитектур; позволяет применять современные технологии программирования, в частности, ООП.

Алгомл- название ряда языков программирования, применяемых при составлении программ для решения научно-технических задач на ЭВМ.

Алгоритмические языки программирования

С начала 80-ых г. XX в. начали создаваться языки программирования, которые позволили перейти к структурному программированию (использование операторов ветвления, выбора, цикла и практически отказ от частого использования операторов перехода (goto). К этим языкам относятся:

· язык Pascal (назван его создателем Никлаусом Виртом в честь великого физика Блеза Паскаля; 1970);

· язык Си, позволяющий быстро и эффективно создавать программный код (1971). язык программа компьютер

Язык программирования Pascal был создан Никлаусом Виртом, и назван в честь французского философа и математика XVII в. Блеза Паскаля.

Языки объектно-ориентированного программирования (90-ые г. XX в.)

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

· язык С++ (1983) - продолжение алгоритм. языка Си.

· язык Object Pascal (1989) был создан на основе языка Pascal. После создания среды программирования - Delphi (1995).

· язык Visual Basic(1991) был создан корпорацией Microsoft на основе языка Qbasic (1975) для разработки приложений с графическим интерфейсом в среде ОС Windows.

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

Единственный способ изучать новый язык программирования - писать на нём программы.

Читайте также: