Файл: Понятия объектно-ориентированного программирования.pdf

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

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

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

Добавлен: 14.06.2023

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

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

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


ВВЕДЕНИЕ

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

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

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

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

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

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

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

Исходя из вышесказанного, определяется цель исследования: рассмотреть основные понятия объектно-ориентированного программирования.

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

  1. Рассмотреть сущность объектно-ориентированного программирования;
  2. Привести основные характеристики объектно-ориентированного программирования;
  3. Проанализировать понятие «классы» в контексте объектно-ориентированного программирования;
  4. Охарактеризовать понятие «Наследование» в контексте объектно-ориентированного программирования;
  5. Рассмотреть понятие «Инкапсуляция» в контексте объектно-ориентированного программирования;
  6. Дать анализ понятию «Полиморфизм» в контексте объектно-ориентированного программирования.

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

Глава 1. Объектно-ориентированное программирование. Сущность, характеристики

Сущность объектно-ориентированного программирования

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

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

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

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

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

Объект можно определить как осязаемую реальность – предмет или явление, которое имеет четко определяемое поведение. Объект обладает такими характеристиками, как состояние, поведение, индивидуальность; структура и поведение схожих объектов определяют общий для них класс[3].


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

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

Класс – это некоторое множество объектов, которые связаны общностью структуры и поведения. Класс инкапсулирует (объединяет) в себе данные (атрибуты) и поведение (операции). Любой объект представляет собой экземпляр класса.

Среди основных базовых составляющих объектно-ориентированного подхода можно выделить основные:

    • унифицированный процесс;
    • унифицированный язык моделирования;
    • шаблоны проектирования[4].

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

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

На стадиях анализа и проектирования будущей информационной системы зачастую применяются так называемые шаблоны (паттерны) проектирования. В данном случае под шаблоном понимается именованная пара «проблема/решение», которая содержит готовое обобщенное решение некоторой типичной проблемы. В большинстве случаев шаблон кроме текстового описания может также включать одну или несколько диаграмм UML (например, диаграммы классов, последовательности и/или коммуникации), которые графически иллюстрируют состав и структуру классов, и, кроме того, особенности их взаимодействия при решении некоторой проблемы. Шаблоны должны быть разработаны опытными профессионалами и являться проверенными, эффективными, оптимальными решениями. Помимо всего прочего, использование шаблонов может многократно уменьшить затраты и повысить качество разработки программного и информационного обеспечения[5].


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

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

Модель содержит далеко не все признаки и свойства представляемого ею предмета (понятия), а только те, которые являются существенными для разрабатываемой информационной системы. Таким образом модель выходит «беднее», и, следовательно, проще, чем тот предмет (явление), который она представляет. Но основное преимущество содержится даже не в этом, а в том, что модель является только формальной конструкцией: формальный характер моделей предоставляет возможность определения формальных зависимостей между ними и формальных операций над ними. Это упрощает не только разработку и анализ моделей, но и их реализацию посредством технических и аппаратных средств. В частности, формальный характер моделей предоставляет возможность получения формальной модели разрабатываемой информационной системы как композиции формальных моделей ее составляющих частей.

Таким образом, объектно-ориентированный подход обеспечивает адекватные подходы к решению следующих проблем:

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

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

Характеристики объектно-ориентированного программирования

Среди основных механизмов объектно-ориентированного подхода можно выделить следующие:


    • абстрагирование (abstraction);
    • инкапсуляция (encapsulation);
    • наследование (inheritance);
    • полиморфизм (polymorphism);
    • модульность (modularity);
    • иерархия (hierarchy)[7].

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

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

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

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

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

Иерархия представляет собой ранжированную или упорядоченную систему абстракций, их некоторое распределение по уровням. Основными видами иерархических структур применительно к сложным системам являются структура классов и структура объектов. Как пример иерархии классов можно привести: простое и множественное наследование (один класс применяет структурную или функциональную часть соответственно одного или нескольких других классов), а иерархии объектов – агрегация[8].