Слайд 2Цели дисциплины
После изучения дисциплины студенты должны:
Знать:
Общие принципы объектно-ориентированного программирования;
Реализацию объектной модели в
![Цели дисциплины После изучения дисциплины студенты должны: Знать: Общие принципы объектно-ориентированного программирования;](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/978992/slide-1.jpg)
языке программирования С++;
Средства обобщенного программирования: классы и шаблоны
Уметь:
Составлять объектные программы на языке С++;
Эффективно использовать возможности языка С++ в программах;
Пользоваться стандартной библиотекой С++
Быть ознакомленными:
С особенностями объектной модели в других языках программирования;
С основами объектно-ориентированного проектирования
Слайд 3Краткое содержание дисциплины
Классы и объекты. Поля и методы. Конструкторы
Дружественные функции. Перегрузка операторов
Производные
![Краткое содержание дисциплины Классы и объекты. Поля и методы. Конструкторы Дружественные функции.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/978992/slide-2.jpg)
классы
Виртуальные функции. Полиморфизм
Обработка исключений
Множественное наследование
Шаблоны функций
Средства ввода-вывода
Контейнерные классы и итераторы
Слайд 4Основная литература
Х. Дейтел, П.Дейтел. Как программировать на С++. 5-е издание. М.: «Бином»,
![Основная литература Х. Дейтел, П.Дейтел. Как программировать на С++. 5-е издание. М.:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/978992/slide-3.jpg)
2018.- 1456 с.
П.Франка. С++. Учебный курс. 2-е издание. СПб.: «Питер», 2015.- 496 с.
С.Прата. Язык программирования С++. Лекции и упражнения. 6-е издание. М.: «Диалектика-Вильямс», 2012.- 1248 с.
С.Липпман и др. Язык программирования С++. Вводный курс. 5-е издание. М.: «Вильямс», 2014.
Слайд 5Дополнительная литература
Г.Буч. Объектно-ориентированный анализ и проектирование с примерами приложений на С++. 2-е
![Дополнительная литература Г.Буч. Объектно-ориентированный анализ и проектирование с примерами приложений на С++.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/978992/slide-4.jpg)
издание. М.: «Бином», 2014.- 506 с.
Б.Страуструп. Язык программирования С++. М.: «Бином», 2011.- 1136 с.
Слайд 6Сложность программного обеспечения
Технологии ООП возникли как ответ на нарастающую сложность ПО
Не
![Сложность программного обеспечения Технологии ООП возникли как ответ на нарастающую сложность ПО](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/978992/slide-5.jpg)
все программные системы сложны.
Промышленные программные продукты - диспетчеризация транспорта, складской учет, учет кадров, бухгалтерский учет
Промышленная программа имеет такой уровень сложности, что один разработчик не в состоянии охватить все детали системы
Слайд 7Причины сложности ПО
Сложность ПО вызывается следующими причинами:
Сложность реального мира
Предприятие –
![Причины сложности ПО Сложность ПО вызывается следующими причинами: Сложность реального мира Предприятие](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/978992/slide-6.jpg)
огромный механизм.
Сложность часто возникает из-за нестыковок между пользователями системы и разработчиками
Требования к программной системе меняются в ходе разработки
2. Трудность управления процессом разработки
Размер промышленных программных систем – десятки и сотни тысяч строк
Слайд 8Термины
Сопровождение ПО – устранение ошибок в ходе эксплуатации.
Эволюция ПО – внесение
![Термины Сопровождение ПО – устранение ошибок в ходе эксплуатации. Эволюция ПО –](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/978992/slide-7.jpg)
изменений в ответ на изменившиеся требования.
Сохранение ПО – поддержание работоспособности разрушающейся системы.
Слайд 9Признаки сложной системы
Сложные системы являются иерархическими и состоят из подсистем, которые
![Признаки сложной системы Сложные системы являются иерархическими и состоят из подсистем, которые](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/978992/slide-8.jpg)
тоже могут быть разделены на подсистемы.
2. Выбор, какие компоненты системы считаются простейшими, зависит от разработчика
Слайд 10Признаки сложной системы
3. Сложные системы обычно состоят из немногих типов подсистем,
![Признаки сложной системы 3. Сложные системы обычно состоят из немногих типов подсистем,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/978992/slide-9.jpg)
но по-разному скомбинированных и организованных.
4. Любая работающая сложная система является развитием работавшей более простой системы
Слайд 11Алгоритмическая декомпозиция
Это разделение системы на подсистемы и алгоритмы, где каждый модуль выполняет
![Алгоритмическая декомпозиция Это разделение системы на подсистемы и алгоритмы, где каждый модуль выполняет один из этапов](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/978992/slide-10.jpg)
один из этапов
Слайд 12Объектно-ориентированная декомпозиция
Критерий объектно-ориентированной декомпозиции – принадлежность элементов к различным абстракциям предметной области
Объект
![Объектно-ориентированная декомпозиция Критерий объектно-ориентированной декомпозиции – принадлежность элементов к различным абстракциям предметной](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/978992/slide-11.jpg)
1
Объект 2
Объект 3
Объект 4
Слайд 13Преимущества объектной декомпозиции
1. Уменьшается размер программных систем за счет повторного использования
![Преимущества объектной декомпозиции 1. Уменьшается размер программных систем за счет повторного использования](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/978992/slide-12.jpg)
кода.
2. Объектно-ориентированные системы более гибки и проще эволюционируют
Объектно-ориентированное проектирование – это методология проектирования, основанная на процессе объектной декомпозиции системы
Слайд 14Иерархия
Способ, позволяющий снизить уровень сложности – организация иерархии
Необходимо организовать внутри системы
![Иерархия Способ, позволяющий снизить уровень сложности – организация иерархии Необходимо организовать внутри](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/978992/slide-13.jpg)
иерархию классов и объектов
Структура классов определяет общность объектов и их поведения внутри системы
Слайд 15История программирования
Программирование в машинных кодах
Процедурные языки программирования (FORTRAN, ALGOL)
Структурное программирование
![История программирования Программирование в машинных кодах Процедурные языки программирования (FORTRAN, ALGOL) Структурное программирование Объектно-ориентированное программирование](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/978992/slide-14.jpg)
Объектно-ориентированное программирование