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

Содержание

Слайд 2

Цели дисциплины

После изучения дисциплины студенты должны:
Знать:
Общие принципы объектно-ориентированного программирования;
Реализацию объектной модели в

Цели дисциплины После изучения дисциплины студенты должны: Знать: Общие принципы объектно-ориентированного программирования;
языке программирования С++;
Средства обобщенного программирования: классы и шаблоны
Уметь:
Составлять объектные программы на языке С++;
Эффективно использовать возможности языка С++ в программах;
Пользоваться стандартной библиотекой С++
Быть ознакомленными:
С особенностями объектной модели в других языках программирования;
С основами объектно-ориентированного проектирования

Слайд 3

Краткое содержание дисциплины

Классы и объекты. Поля и методы. Конструкторы
Дружественные функции. Перегрузка операторов
Производные

Краткое содержание дисциплины Классы и объекты. Поля и методы. Конструкторы Дружественные функции.
классы
Виртуальные функции. Полиморфизм
Обработка исключений
Множественное наследование
Шаблоны функций
Средства ввода-вывода
Контейнерные классы и итераторы

Слайд 4

Основная литература

Х. Дейтел, П.Дейтел. Как программировать на С++. 5-е издание. М.: «Бином»,

Основная литература Х. Дейтел, П.Дейтел. Как программировать на С++. 5-е издание. М.:
2018.- 1456 с.
П.Франка. С++. Учебный курс. 2-е издание. СПб.: «Питер», 2015.- 496 с.
С.Прата. Язык программирования С++. Лекции и упражнения. 6-е издание. М.: «Диалектика-Вильямс», 2012.- 1248 с.
С.Липпман и др. Язык программирования С++. Вводный курс. 5-е издание. М.: «Вильямс», 2014.

Слайд 5

Дополнительная литература

Г.Буч. Объектно-ориентированный анализ и проектирование с примерами приложений на С++. 2-е

Дополнительная литература Г.Буч. Объектно-ориентированный анализ и проектирование с примерами приложений на С++.
издание. М.: «Бином», 2014.- 506 с.
Б.Страуструп. Язык программирования С++. М.: «Бином», 2011.- 1136 с.

Слайд 6

Сложность программного обеспечения

Технологии ООП возникли как ответ на нарастающую сложность ПО
Не

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

Слайд 7

Причины сложности ПО

Сложность ПО вызывается следующими причинами:
Сложность реального мира
Предприятие –

Причины сложности ПО Сложность ПО вызывается следующими причинами: Сложность реального мира Предприятие
огромный механизм.
Сложность часто возникает из-за нестыковок между пользователями системы и разработчиками
Требования к программной системе меняются в ходе разработки
2. Трудность управления процессом разработки
Размер промышленных программных систем – десятки и сотни тысяч строк

Слайд 8

Термины
Сопровождение ПО – устранение ошибок в ходе эксплуатации.
Эволюция ПО – внесение

Термины Сопровождение ПО – устранение ошибок в ходе эксплуатации. Эволюция ПО –
изменений в ответ на изменившиеся требования.
Сохранение ПО – поддержание работоспособности разрушающейся системы.

Слайд 9

Признаки сложной системы

Сложные системы являются иерархическими и состоят из подсистем, которые

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

Слайд 10

Признаки сложной системы

3. Сложные системы обычно состоят из немногих типов подсистем,

Признаки сложной системы 3. Сложные системы обычно состоят из немногих типов подсистем,
но по-разному скомбинированных и организованных.
4. Любая работающая сложная система является развитием работавшей более простой системы

Слайд 11

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

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

Слайд 12

Объектно-ориентированная декомпозиция Критерий объектно-ориентированной декомпозиции – принадлежность элементов к различным абстракциям предметной области

Объект

Объектно-ориентированная декомпозиция Критерий объектно-ориентированной декомпозиции – принадлежность элементов к различным абстракциям предметной
1

Объект 2

Объект 3

Объект 4

Слайд 13

Преимущества объектной декомпозиции

1. Уменьшается размер программных систем за счет повторного использования

Преимущества объектной декомпозиции 1. Уменьшается размер программных систем за счет повторного использования
кода.
2. Объектно-ориентированные системы более гибки и проще эволюционируют
Объектно-ориентированное проектирование – это методология проектирования, основанная на процессе объектной декомпозиции системы

Слайд 14

Иерархия

Способ, позволяющий снизить уровень сложности – организация иерархии
Необходимо организовать внутри системы

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

Слайд 15

История программирования

Программирование в машинных кодах
Процедурные языки программирования (FORTRAN, ALGOL)
Структурное программирование

История программирования Программирование в машинных кодах Процедурные языки программирования (FORTRAN, ALGOL) Структурное программирование Объектно-ориентированное программирование

Объектно-ориентированное программирование