
- •«Объектно-ориентированный анализ и проектирование»
- •1. Принципы ооп. Классы.
- •Описание классов.
- •Объекты класса.
- •Конструкторы
- •Конструктор копирования
- •Статические элементы класса
- •Дружественные функции и классы
- •Деструкторы
- •Перегрузка операций
- •Перегрузка унарных операций
- •Перегрузка бинарных операций
- •Перегрузка операции присваивания
- •Рекомендации по составу классов
- •2. Наследование
- •Ключи доступа
- •Простое наследование
- •Пример замещения функций (практикум)
- •Виртуальные методы
- •Множественное наследование
- •3. Отношения между классами. Диаграммы класссов на языке uml.
- •4. Шаблоны классов.
- •4.1. Определения шаблонов классов Queue и QueueItem
- •4.2. Конкретизация шаблона класса
- •4.3. Аргументы шаблона для параметров-констант
- •4.4. Функции-члены шаблонов классов
- •5. Обработка исключительных ситуаций
- •5.1. Общий механизм обработки исключений.
- •5.2 . Синтаксис исключений
- •5.3. Перехват исключений
- •5.4. Исключения в конструкторах и деструкторах
- •Vector(int n) // Конструктор
- •5.5. Список исключений функции.
- •6. Строки
- •Преобразование строк
- •7. Контейнерные классы
- •7.1. Векторы.
- •7.2. Двухсторонние очереди (deque).
- •7.3. Списки (List).
- •7.4. Стеки
- •7.5. Очереди (queue)
- •7.6. Очередь с приоритетами(priority_queue)
- •8. Ассоциативные контейнеры
- •8.1. Словари (map)
- •8.2. Словари с дубликатами (multimap)
- •8.3. Множества (set)
- •8.4. Множества с дубликатами (multiset)
- •8.5. Битовые множества (bitset)
Бизнес-информатика
«Объектно-ориентированный анализ и проектирование»
Оъектно-ориентированное программирование (ООП) – технология, возникшая как реакция на кризис программного обеспечения, когда методы структурного программирования не справлялись со сложностью промышленного программного продукта.
Специфика проблемы состоит в ом, что создаваемый продукт, является результатом работы большого коллектива разработчиков. Возникающие при этом проблемы:
минимизация конфликтов, между разными группами разработчиков;
сопровождение продукта (устранение не выявленных ранее и возникающих ошибок);
возможность модификации.
Выходом является декомпозиция системы, которая существует и в структурном программировании, когда алгоритм разбивается на функциональные модули (функциональная декомпозиция). В ООП критериями декомпозиции связаны с принадлежностью ее элементов к различным абстракциям предметной области. То есть центральной проблемой становится анализ предметной области, вычленение отдельных объектов, определение для каждого объекта его свойств, когда каждому объекту ставится в соответствие программный продукт.
Критерии качества декомпозиции проекта связаны со сложностью реализации проекта:
На какие компоненты можно разбить программу? Простота компонент, а, следовательно, рост числа компонент ведет к росту сложности. При этом усложняется организация связи между компонентами, разделяются действия, связанные по сути.
Организация взаимосвязи между компонентами упрощается, если компонент рассматривается как «черный ящик»:
известные функции
в
Черный ящик
Совокупность входов и выходов, называемая интерфейсом, служит для получения информации либо изменения состояния компоненты. При этом компоненты играют роль сервера или клиента (клиент использует услуги сервера).
Для оценки качества программного продукта нужно учитывать:
сцепление внутри компоненты – показатель, характеризующий степень взаимосвязи частей компоненты;
связанность между компонентами – показатель, определяемый на основе анализа интерфейса между клиентом и сервером. При этом мера связанности – это общее число входов и выходов.
1. Принципы ооп. Классы.
Любая программа – набор инструкций процессора.
Повышение уровня абстракции программы:
функции;
собственные типы данных (typedef тип New_name [размерность]); структуры;
объединение в модули описаний типов и функций для их обработки (интерфейс).
Класс – тип данных, определяемый пользователем (члены класса - это поля (константы и переменные) и методы (функции их обработки)). Интерфейс класса – заголовки методов класса. Конкретные величины типа «класс» - экземпляры класса, или объекты. Сообщение – запрос на выполнение действия, содержащий набор необходимых параметров (вызов функций). ООП реализует «событийно-управляемая модель», когда данные активны и управляют вызовом того или иного фрагмента кода, программа ожидает действий пользователя (в «директивной модели» код предлагает пользователю делать те или иные действия).
Основные свойства ООП:
Инкапсуляция – ограничение доступа к данным и включение методов, образующих эти данные. Доступ к частям класса регулируются через ключи доступа: public (открытые), private (закрытые), protected (защищенные). Интерфейсом являются открытые поля и методы. Доступ в закрытую часть осуществляется через собственные методы, в защищенную часть - через собственные методы и методы классов-потомков.
Наследование – механизм получения нового класса из существующего путем изменения и добавления полей и методов класса. При это возникает иерархия родственных типов с совместным интерфейсом
Полиморфизм – возможность использовать в различных классах иерархии одно имя для обозначения сходных по смыслу действий (перегрузка, шаблон). Перегрузка операций и использование виртуальных методов позволяет выбрать на этапе выполнения нужный метод из одноименных методов базового и производного класса.