
- •Лекция №1 «Современные средства разработки по. Терминология. Основные понятия.»
- •Проектирование приложения.
- •Реализация программного кода приложения.
- •Тестирование приложения.
- •Лекция 2. История развития ооп и сред rad
- •Преимущества ооп
- •Среды разработки, использующие принципы rad
- •Лекция №3 ооп. Понятия объекта, свойства, метода, события.
- •Лекция №4 Классы
- •4.1 Объявление класса
- •4.2. Перегрузка функций.
- •4.3. Конструкторы.
- •4.4. Деструкторы.
- •4.5. Конструкторы с параметрами.
- •4.6. Указатели на объекты.
- •Лекция №5 Данные-элементы, статические данные, константные данные
- •6. Функции-элементы, дружественные функции, константные функции
- •Inline void SetA(int); // функция записи
- •Встраиваемые функции inline
- •3.3. Введение в наследование.
- •Виртуальные функции.
- •Производные классы: множественное наследование
Лекция 2. История развития ооп и сред rad
Объектно-ориентированное программирование (ООП) – относительно новый подход к построению программ. Этот подход впервые реализовался в языках программирования Ада, SmallTalk, C++, Borland Pаscal.
ООП является логическим развитием технологий и методик программирования. Развитие методик программирования осуществлялось примерно в следующем порядке.
программирование небольших программ на базе переключателей;
программирование на ассемблере;
машино-ориентированные языки;
проблемно-ориентированные языки;
программирование на языках высокого уровня (Фортран);
программирование на языках структурного программирования (Паскаль, Си);
объектно-ориентированное программирование (ООП).
Программирование на базе переключателей является самым древним способом создания программ. Переключателями могли выступать как механические элементы, например механическое пианино, шарманка и прочее, электромагнитные реле системы управления лифтом, лампы, полупроводниковые транзисторы и т.д (даже молекулярные нанотехнологические). Использование переключателей позволяет реализовать простейшие алгоритмы, изменить которые можно только путем физического переустройства (переставить выключатели, перепаять схему и т.д.)
Первые ассемблерные языки, которые появились вместе с первыми электронными вычислительными машинами, позволяли работать непосредственно со встроенным набором команд компьютера и были достаточно простыми для изучения. Но они заставляли смотреть на проблему с точки зрения работы оборудования. Поэтому программисту приходилось постоянно отслеживать перемещение байтов между регистрами, осуществлять их суммирование, сдвиг и, наконец, запись в нужные области памяти для хранения результатов вычислений. Это была очень утомительная работа с высокой вероятностью допущения ошибок.
Первые языки высокого уровня, например FORTRAN, разрабатывались как альтернатива языкам ассемблера. Они обеспечивали определенный уровень абстракции от аппаратной среды и позволяли строить алгоритм с точки зрения решаемой задачи, а не работы компьютера. Однако при их создании не учли динамики развития компьютерной техники и в погоне за упрощением процесса программирования упустили ряд существенных моментов. Языки FORTRAN и Algol оказались слишком абстрактными для системных программистов. Эти языки были проблемно-ориентированными, рассчитанными на решение общих инженерных, научных и экономических задач. Программистам, занимающимся разработкой новых системных продуктов, по-прежнему приходилось полагаться только на старые языки ассемблера.
Чтобы разрешить эту проблему, разработчикам языков пришлось сделать шаг назад и создать класс машинно-ориентированных языков. К таким языкам низкого уровня относились BCPL и В. Но при работе с ними возникла другая проблема: они были приспособлены только для компьютеров определенной архитектуры.
Многие современные средства разработки с использованием языков С++, Java и им подобных сохраняют преимущества языков программирования высокого и низкого уровней.
За последние 10-15 лет, в связи с бурным ростом средств телекоммуникаций и соответствующих технологий, появилось так же большое количество языков, которые ориентированы, прежде всего, не на проблему, а на технологию передачи данных. Они часто являются развитием или упрощением использующихся базовых языков, заимствующих иногда часть известного синтаксиса. Примерами могут послужить языки разметки документов для web-страниц html, языки обработки данных в клиентских приложениях vbscript, java-script, языки серверов обработки данных java, perl и их различные версии для разных платформ.