Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
матодичка_2сем.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
175.1 Кб
Скачать

16 Вопрос

Концепция объектной модели

Объектно-ориентированный анализ (ООА) –> объектно-ориентированный дизайн (ООД) –> объектно-ориентированное программирование (ООП)

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

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

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

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

  2. Каждый объект является экземпляром некоторого множества объектов. Множество – класс. Элемент массива – объект.

  3. Классы организованны иерархически.

Описание принципов объектного подхода

Базовые 1-4, дополнительные 5-7:

  1. Абстрагирование

  2. Инкапсуляция

  3. Модульность

  4. Иерархия

  5. Типизация

  6. Параллелизм

  7. Сохранность

Базовые элементы объектного подхода

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

«бритва» Оката – незачем множить сущности без надобности.

Если уже существует абстракция удовлетворяющая исследователя, не нужно создавать новую.

Виды абстракций:

  1. Сущности – объект представляет собой полезную модель некоторой сущности в предметной области.

  2. Поведения – объект состоит из обобщенного множества операций.

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

  4. Произвольная – объект включает в себя некоторые операции не имеющие друг с другом ничего общего.

Контрактная модель программирования

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

Объект сервер – тот, кто оказывает услуги другим объектам.

Для каждой операции, которая совершается объектом можно выделить 2 условия:

  • Предусловие –

  • Постусловие –

x>=0 – предусловие;

y>=0 – постусловие.

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

(разделение)

Интерфейс

Реализация

- доступная секция;

- недоступная секция;

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

Модульность

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

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

Принципы...

Типизация

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

Выделяют языки сильной типизации и слабой типизации.

Сильная типизация – контроль типов на этапе компилирования.

Слабая типизация – контроль типов не производится. (язык Eiffel)

Плюсы сильной типизации:

  • Предохранение от ошибки типов;

  • Механизм связывания устанавливает конкретный момент, в который происходит ассоциирование переменных с их типами;

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

Позднее связывание – выделение памяти по ходу выполнения программы.

Преимущество строго типизированных языков

  1. Отсутствие контроля типов может приводить к загадочным событиям (сбоям в программе) в программе при ее выполнении.

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

  3. Объявление типов облегчит процесс документирования программы.

  4. Многие компиляторы генерируют код быстрее, если заранее знают типы.

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

Параллелизм – это способность программы выполнять несколько вычислительных потоков одновременно.

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