Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на экзаменационные вопросы.doc
Скачиваний:
109
Добавлен:
01.05.2014
Размер:
583.17 Кб
Скачать

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

Появление и основные идеи ООП

1. Разделение работы между программистами:

- разработка типов данн6ых (классов)

- использование этих типов

2. Необходимость в трансформируемых типах данных

Потребности теории и практики программирования

Пример1:

Задача по обработке списков

Сущности: элемент списка, список

Схема описания сущностей:

1. Элемент списка:

- тип проблемной части

- значение проблемной части

- связь

- действия с элементом

2. Список:

- вход

- действия со списком

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

Проблемная сущность - Абстрактный тип данных (АПД) – класс.

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

Пример2:

Двунаправленный список

Если мы не хотим переписывать уже имеющийся однонаправленный список?

Фактор 2. Дополнение существующих типов новыми свойствами (данными и действиями) с целью образования нового типа, т.е. преобразование существующего типа в новый тип. Преобразование состоит в дополнении.

Пример3: необходимо сделать переменным тип проблемной части списка.

Вывод. Необходимо сделать переменным тип проблемной части.

Выход1: Программу написать в терминах обобщенного типа, а при реализации конкретных списков подставить вместо обобщенного типа конкретный.

2. Появление ооп: необходимость в трансформируемых типах данных.

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

Ф1. Реализуется классом

Ф2. Реализуется наследованием

Ф3. Реализуется шаблонами классов (не относится к ООП, это модель обобщенного программирования)

Наследование и шаблоны – повторное использование

Фактор 4. Необходимость повторного использования разрабатываемых типов данных.

Фактор 5. Необходимость разделения труда программистов по разработке и использованию классов.

Фактор 6. Необходимость в наличии автоматизированных инструментальных сред, которые позволяют эффективно разрабатывать, использовать классы.

3. Появление ооп: необходимость обеспечения распределения вычислений в пространстве и во времени. Основные идеи ооп.

Развитие средств ВТ

Современная ВТ характеризуется распределением вычислительного процесса во времени и пространстве (сетевой подход)

Как координировать распределение во времени и распределение в пространстве?

Выход: части (сущности) программы должны обмениваться сообщениями.

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

Обеспечение эффективной работы пользователя

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

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

Основные идеи ООП

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

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

Основные модели ООП и их реализация на языке С++

1. С++ позволяет реализовать все модели ООП

2. С++ позволяет создать свою технологию ООП

3. С++ поддерживается ведущими фирмами-производителями.

4. С++ хорошо обеспечен литературой.

Задание 1: составить аннотированный перечень Интернет-источников, посвященных стандарту С++ и методам эффективного использования языка при реализации модели ООП.

4. Концептуальная модель объекта

Концептуальная модель ООП

1. Объект – некоторая сущность,

- объединяющая в себе атрибуты и методы

- отличная от себе подобных

- динамичная по природе

- обладающая собственным поведением

- имеющая состояния

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

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

Состояние – набор значений атрибутов

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

5. Выделение объектов проблемной области: объектно-ориенти­рованная модель задачи, информационная и математическая модели объектов

2. Свойства объекта порождены его отражением реального мира. Выделение объекта и его свойств – неформализуемая задача.

Пример:

Предметная область – геометрические фигуры на плоскости.

Объекты (идея)

Точка

Квадрат

Имя объекта Р1 (точка)

Атрибуты:

х,у

r, fi – удобно, если вращать точку.

Методы:

- задать х, задать у

- передать х, передать у

- получить х, получить у

- перевод х, у в r, fi

- перевод r, fi в х, у

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

4. Объект может быть уничтожен.

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

6. Атрибутами объекта может быть другой объект.

Пример: Квадрат. Атрибуты – точка и длина стороны.

7. Объект может быть снабжен набором методов.

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

9. Метод может иметь параметры.

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

11. Каждый метод объекта имеет прямой доступ к атрибутам и методам объекта.

12. Доступ к атрибутам имеют только методы того же объекта.

14. Среди методов объекта могут быть методы для передачи сообщений. Цель передачи сообщений – вызов какого-либо метода.

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

16. В сообщении обязательно должен быть указан объект, которому оно передается.

Объект анализирует сообщение: может ли он выполнить метод или нет. Если нет – передает сообщение.

Пример: Имя_объекта.ЗадатьХ

17. Объект может быть идентифицирован с помощью имени.

18. Идентификация объекта может быть осуществлена с помощью специального набора атрибутов.

6. Концептуальная модель класса объектов.