Файл: Основные понятия объектно-ориентированного программирования(ОБЪЕКТНО-ОРИЕНТИРОВАННАЯ ТЕХНОЛОГИЯ).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 29.03.2023

Просмотров: 229

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

ВВЕДЕНИЕ

Давно известно, что программирование не является простой наукой. Научиться данной науке сложно. Еще сложнее программировать на уровне профессионалов – правильно и быстро создавать эффективные программы.

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

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

Основой разработки приложений для наиболее популярной на сегодняшней день операционной системы Microsoft Windows также является объектно-ориентированная технология программирования. Важно отметить, что все приложения Microsoft Windows относятся к классу программ, управляемых событиями. Язык программирования Object Pascal позволяет программисту создавать собственные обработчики для различных событий [19].

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

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

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

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

Объектом исследования данной работы является объектно-ориентированная технология программирования.


Предметом исследования - язык программирования Object Pascal.

Цель работы – описать основы объектно-ориентированного программирования и продемонстрировать их применение в языке Object Pascal.

Для достижения поставленной цели необходимо решить следующие задачи:

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

При написании работы в качестве опорных источников были использованы следующие книги: К.В. Отрутикова – «Основы объектно-ориентированного программирования» и Д.А. Слинкин – «Основы программирования на Турбо-Паскале».

Структруно работа состоит из трех глав:

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

1. ОБЪЕКТНО-ОРИЕНТИРОВАННАЯ ТЕХНОЛОГИЯ

1.1. Исторические аспекты

Объектно-ориентированная технология стала результатом долгого развития процедурного программирования. Основоположниками этой технологии являются норвежские ученые Кристен Нюгорт и Оле Джохан Дал, которые являются создателями языка программирования Simula [1].

Первое упоминание Simula относится к 1962 г. - это принято связывать с проектом Simulation Language, целью которого являлось моделирование метода Монте-Карло.

В 1965 г. Нюгарт и Дал предложили объединить данные и процедуры, служащие для обработки этих данных. В 1966 г. на саммите НАТО были официально утверждены возможности языка Simula I, а также было принято решение о его дальнейшем совершенствовании. Тогда же появились понятия классов и объектов, а затем и технология, которая в дальнейшем получила название «наследование». Язык Simula вобрал в себя возможности использования общих свойств разными классами за счет указания названий классов в виде префикса. Описанная технология программирования вызвала интерес в Дании, Германии и СССР.

Дальнейшее развитие технологии принято связывать с именем Алана Кея, придумавшего принципиально новую технологию разработки. Основой данной технологии была идея о том, что набор последовательно исполняемых команд может представляться в виде многомерной среды взаимодействия объектов, общающихся друг с другом посредством асинхронного обмена сообщениями. Таким образом, Кей создал возможность поддержки используемой среды целым множеством компьютеров, объединенных в сеть. Эти нововведения стали революционными и получили воплощение в новом объектном языке Smallalk. Первая документация SmallTalk была написана профессором лингвистики Аделью Голдберг [14].


В 1974 г. Марвин Мински, родоначальник теории искусственного интеллекта, ввел термин «фрейм», который отделил описание класса от его представления.

В 1976 г. Кристен Нюгорн предложил ввести концепцию шаблонов, представляющую собой более высокий уровень абстракций, по сравнению с объектами. Данная концепция нашла свою реализацию в языке BETA.

В 1980 г. Бьерн Страуструп ввел концепцию классов в язык программирования C.

В 1982 г. на восьмой Международной конференции по сверхбольшим базам данных в Мехико была предложена концепция объектно-ориентированных баз данных.

В 1983 г. окончательно сформировался язык программирования C++.

В 1986 г. состоялась первая всемирная конференция по объектно-ориентированным системам программирования в Портленде. Данное событие принято связывать с компонентной моделью CORBA (Common Object Request Broker Architecture), нацеленной на поддержку крупных проектов.

В 1992 г. вышел стандарт CORBA 1.0, который описывал базовые понятия объектной модели, наборы программных интерфейсов, а также декларативный язык определения этих интерфейсов.

В 1994 г. был опубликован стандарт CORBA 2.0, содержащий исправления недостатков предыдущей версии. Кроме того, в этой версии была добавлена работа с кодировкой Unicode и поддержка транзакций.

В 1995 г. компания Sun Microsystems опубликовала среду HotJava с поддержкой мобильного кода. Именно эта компания стала первой крупной компанией, предложившей полностью завершенное решение в области объектно-ориентированного программирования.

В настоящее время объектно-ориентированная технология поддерживается практически всеми языками программирования высокого уровня [7].

1.2. Причины популярности

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

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


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

  • надежда на то, что данная технология позволит быстро и просто увеличить показатели надежности и продуктивности разработки, за счет чего разрешится кризис программного обеспечения;
  • желание перехода от классических языков и технологий к принципиально новой концепции, которая открывает большие возможности;
  • сходство ООП с идеями, применяемыми в смежных областях науки и техники [4].

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

Место объектно-ориентированной технологии в рамках всех парадигм программирования изображено на рисунке 1.

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ

СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ

ПРОЦЕДУРНОЕ ПРОГРАММИРОВАНИЕ

ЛОГИЧЕСКОЕ ПРОГРАММИРОВАНИЕ

ФУНКЦИОНАЛЬНОЕ ПРОГРАММИРОВАНИЕ

АССЕМБЛИРОВАНИЕ

МАШИННОЕ КОДИРОВАНИЕ

Рисунок 1 – Эволюция парадигм программирования

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

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

ООП представляет собой новое понимание вычислений, а также того, как именно человек способен структурировать данные внутри компьютера [3].

1.3. Элементы

Ранее уже говорилось, что технология ООП появилась в процессе разработки языка Smalltalk. Объектно-ориентированную технологию принято считать парадигмой. Сам термин «парадигма» обозначает способ восприятия человеком-программистом компьютерной программы и процесса ее исполнения. В данном случае парадигма представляет собой нечто абстрактное, относящееся к мышлению программиста, а не к конкретным языковым средствам [16].


В рамках ООП есть два ключевых понятия:

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

Основные элементы объектно-ориентированного программирования представлены на рисунке 2:

Элементы ООП

абстрагирование

инкапсуляция

модульность

иерархия

типизация

параллелизм

устойчивость

Рисунок 2 – Основные элементы ООП

  • абстрагирование – определение важнейших характеристик объектов, которые отличают их на всем множестве объектов, четко определяя концептуальные границы. В процессе абстрагирования принято уделять внимание внешним особенностям и свойствам объекта, связанным с его поведением. Именно формирование правильного набора абстракций является основной задачей ООП;
  • инкапсуляция – процесс разделения объекта на отдельные элементы, определяющие его устройство и поведение. Основная задача инкапсуляции - изолировать интерфейс объекта, отвечающий за внешнее поведение, от внутренней реализации. В рамках объектно-ориентированного подхода собственные ресурсы объектов, которыми могут пользоваться объекты, скрыты от внешней среды. Инкапсуляция и абстрагирование являются взаимодополняющими операциями: при помощи абстрагирования можно сфокусироваться на внешних особенностях объектов, а при помощи инкапсуляции скрыть внутреннее устройство объектов;
  • модульность – это характеристика системы, связанная с возможностью ее декомпозиции. Процесс декомпозиции предполагает разбиение всей системы на несколько внутренне связанных модулей. При этом друг с другом модули могут быть вовсе не связаны. Модульность и инкапсуляция позволяют создавать препятствия между абстракциями;
  • иерархия – абстрактное расположение объектов по нескольким уровням. Основными структурами иерархии являются классовая структура и структура объектов;
  • типизация – свойство-ограничение, накладывающееся на классы объектов и препятствующее взаимозаменяемости различных классов. Основной задачей типизации является реализация защиты от использования объектов одного класса под видом других классов;
  • параллелизм – свойство объекта находиться в одном из двух состояний – активное или пассивное;
  • устойчивость – свойство объекта существовать во времени или пространстве [18].