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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



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

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

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

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

 

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

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

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

Модульность. В таких ЯП (языках программирования), как С++ модульность является элементом конструкции, а классы и объекты составляют логическую структуру системы. Эти абстракции организуются в модули, формируя физическую структуру системы.

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

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

При объектном подходе выделяются две иерархические структуры: структура классов (или иерархия по типу) и структура объектов или (иерархия по составу).

Основным видом иерархии по типу является иерархия наследования.

Наследование – это такое соотношение между классами, когда один класс использует структурную или функциональную часть другого класса или классов, соответственно простое или множественное наследование.

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

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

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

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

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

Параллелизм. Каждая программа включает по крайней мере один канал управления. В параллельной системе таких каналов может быть несколько. Некоторые из них могут быть временными, а другие сохраняться в течении всего времени выполнения программы. Реальная параллельность достигается только в многопроцессорных системах, а системы с одним процессором имитируют параллельность только за счет разделения времени. Параллелизм связан с абстрагированием процессов и синхронизацией. Объект является основой, объединяющей обе эти концепции. Каждый объект, как абстракция реальности может представлять собой отдельный канал управления, т. е. абстракцию процесса. Такой объект называется активным. Для сложных систем, построенных на основе OOD реальность может быть представлена, как совокупность взаимодействующих объектов, часть которых является активными. Исходя из этого, параллелизм можно определить, как свойство объектов находиться в активном или пассивном состоянии. Проще говоря, параллелизм – это возможность одновременного функционирования некоторого числа объектов.

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

Существует несколько видов устойчивости объектов:

• Промежуточные результаты вычислений

• Локальные переменные

• Глобальные переменные

• Данные, сохраняемые между вызовами основной программы

• Данные, не изменяющиеся в различных версиях программы

• Данные, которые переживают программу

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

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

 

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

 

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

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

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

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

 

класс – это группа или множество объектов с общими свойствами или свойством.

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

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

 

Объект не может быть классом, но класс может быть объектом. Класс, экземплярами которого являются классы называется метаклассом.

 

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

Интерфейсную часть класса можно разделить на три составляющие:

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

Защищенная, где даются определения, видимые только для объектов, относящихся к подклассам данного класса

Обособленная, в которой даются определения, скрытые для объектов всех других классов

 

Отношение между Классами

Существует 3 основных типа отношений между классами:

Разновидность,определяющая степень общности,

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

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

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

Наследование

Использование

Представление

Метаклассы

 

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

 

Зависимость (dependency)— это однонаправленное отношение использования между двумя классами. На одном конце отношения находится зависимый класс, на втором — независимый. Объект-клиент зависимого класса для своего корректного функционирования пользуется услугами объекта-сервера независимого класса.

 

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

 



Поделиться:


Последнее изменение этой страницы: 2021-12-07; просмотров: 120; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.141.41.187 (0.02 с.)