Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по ООАП.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
1.01 Mб
Скачать

Вопросы к экзамену

по курсу «Объе́ктно-ориенти́рованный анализ и программи́рование»

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

  2. Объектно-ориентированная методология

  3. Основные понятия объектно-ориентированного анализа

  4. Методы объектно-ориентированного анализа

  5. Пример объектно-ориентированного анализа

  6. Основные понятия объектно-ориентированного проектирования

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

  8. История объе́ктно-ориенти́рованного программи́рования

  9. Определение ООП и его основные концепции

  10. Сложности определения ООП

  11. Особенности реализации ООП

  12. Подходы к проектированию объектно-ориентированных программ

  13. Компонентное объектно-ориентированное программирование

  14. Прототипное объектно-ориентированное программирование

  15. Производительность объектных программ

  16. Идентификация объектно-ориентированных языков

  17. Общая характеристика языка ООП С++

  18. Программирование линейных вычислительных процессов на С++

  19. Программирование разветвляющихся вычислительных процессов на С++

  20. Программирование циклических вычислительных структур на С++

  21. Программирование графики на С++

  22. Основные понятия языка ООП Delphi

  23. Основные понятия языка ООП Smalltalk

  24. Основные понятия языка ООП Java

  25. Основные понятия языка ООП C#

  26. Основные понятия языка ООП Ruby

  27. Основные понятия языка ООП ActionScript 

  28. Основные понятия языка ООП Perl

  29. Основные понятия языка ООП РНР

  30. Основные понятия языка ООП Visual Basic

Экзаменационный вопрос №1. Основные понятия объектно-ориентированного подхода

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

Положения объектно-ориентированного подхода:

- программа представляет собой модель некоторого реального процесса, части реального мира.

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

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

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

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

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

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

Иначе говоря - объект производного класса наследует все свойства своего базового класса.

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

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

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

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

Понятию “объект” сопоставляют ряд дополняющих друг друга определений.

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

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

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

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

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

Определенное воздействие одного объекта на другой, с целью вызвать соответствующую реакцию называют операцией. Типы операций:

- конструктор, создание и инициализация объекта;

- деструктор, разрушающий объект;

- модификатор, изменяющий состояние объекта;

- селектор для доступа к переменным объекта без их изменения;

- итератор для доступа к содержанию объекта по частям в определенной последовательности.

Объекты находятся в иерархических отношениях - использования и включения.

Отношение использования реализуется посылкой сообщений от объекта A к объекту B. При этом объект A может выступать в роли:

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

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

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

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

Структура и поведение сходных объектов определяют класс объектов.

Между классами также могут быть установлены отношения:

- отношение разновидности (кошка - вид определенного биологического семейства или кошка - домашнее животное);

- включения или составной части (лапа - часть кошки);

- ассоциативности, когда между классами есть чисто смысловая связь (кошки и собаки - домашние животные).

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

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

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