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

Содержание

Слайд 2

Популярность и назначение языков программирования

Популярность и назначение языков программирования

Слайд 3

Популярность и назначение языков программирования PYPL PopularitY of Programming Language 2020

Популярность и назначение языков программирования

PYPL PopularitY of Programming Language
2020

Слайд 4

Основные модели программирования Императивное программирование Процедурная Структурная Аспектно-ориентированная Объектно-ориентированная Агентно-ориентированная Компонентно-ориентированная

Основные модели программирования

Императивное программирование
Процедурная
Структурная
Аспектно-ориентированная
Объектно-ориентированная
Агентно-ориентированная
Компонентно-ориентированная
Прототипно-ориентированная
Декларативное программирование
Функциональное программирование
Логическое программирование

Слайд 5

Императивное программирование Императивное программирование — это парадигма программирования (стиль написания исходного

Императивное программирование
Императивное программирование — это парадигма программирования (стиль написания исходного кода

компьютерной программы), для которой характерно следующее:
• в исходном коде программы записываются инструкции (команды);
• инструкции должны выполняться последовательно;
• при выполнении инструкции данные, полученные при выполнении предыдущих инструкций, могут читаться из памяти;
• данные, полученные при выполнении инструкции, могут записываться в память.
Слайд 6

Декларативное программирование Декларативное программирование — это парадигма программирования, в которой задаётся

Декларативное программирование
Декларативное программирование — это парадигма программирования, в которой задаётся спецификация

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

Процедурное программирование Процедурное программирование — программирование на императивном языке, при котором

Процедурное программирование
Процедурное программирование — программирование на императивном языке, при котором последовательно

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

Структурное программирование Структурное программирование — методология разработки программного обеспечения, в основе

Структурное программирование
Структурное программирование — методология разработки программного обеспечения, в основе которой

лежит представление программы в виде иерархической структуры блоков. Предложена в 1970-х годах Э. Дейкстрой и др.
В соответствии с данной методологией любая программа строится без использования оператора goto из трёх базовых управляющих структур: последовательность, ветвление, цикл; кроме того, используются подпрограммы. При этом разработка программы ведётся пошагово, методом «сверху вниз».
Слайд 9

Функциональное программирование Функциональное программирование — раздел дискретной математики и парадигма программирования,

Функциональное программирование
Функциональное программирование — раздел дискретной математики и парадигма программирования, в

которой процесс вычисления трактуется как вычисление значений функций в математическом понимании последних (в отличие от функций как подпрограмм в процедурном программировании).
Противопоставляется парадигме императивного программирования, которая описывает процесс вычислений как последовательное изменение состояний (в значении, подобном таковому в теории автоматов). При необходимости, в функциональном программировании вся совокупность последовательных состояний вычислительного процесса представляется явным образом, например, как список.
Слайд 10

Логическое программирование Логическое программирование — парадигма программирования, основанная на автоматическом доказательстве

Логическое программирование
Логическое программирование — парадигма программирования, основанная на автоматическом доказательстве теорем,

а также раздел дискретной математики, изучающий принципы логического вывода информации на основе заданных фактов и правил вывода.
Логическое программирование основано на теории и аппарате математической логики с использованием математических принципов резолюций.
Слайд 11

Объектно-ориентированное программирование Объектно-ориентированное программирование (ООП) — методология программирования, основанная на представлении

Объектно-ориентированное программирование
Объектно-ориентированное программирование (ООП) — методология программирования, основанная на представлении программы

в виде совокупности объектов, каждый из которых является экземпляром определённого класса, а классы образуют иерархию наследования.
Идеологически ООП — подход к программированию как к моделированию информационных объектов, решающий на новом уровне основную задачу структурного программирования: структурирование информации с точки зрения управляемости, что существенно улучшает управляемость самим процессом моделирования, что, в свою очередь, особенно важно при реализации крупных проектов.
Слайд 12

Компонентно-ориентированное программирование Компонентно-ориентированное программирование — это своеобразная «надстройка» над ООП, набор

Компонентно-ориентированное программирование
Компонентно-ориентированное программирование — это своеобразная «надстройка» над ООП, набор правил

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

Неконтролируемый доступ к данным Глобальные и локальные переменные

Неконтролируемый доступ к данным

Глобальные и локальные переменные

Слайд 14

Неконтролируемый доступ к данным Процедурный подход

Неконтролируемый доступ к данным

Процедурный подход

Слайд 15

Объектно-ориентированный подход Объектно-ориентированный подход

Объектно-ориентированный подход

Объектно-ориентированный подход

Слайд 16

Объектно-ориентированный подход Корпоративный подход

Объектно-ориентированный подход

Корпоративный подход

Слайд 17

Классы и объекты

Классы и объекты

Слайд 18

Наследование и повторное использование кода

Наследование и повторное использование кода

Слайд 19

Полиморфизм и перегрузка

Полиморфизм и перегрузка

Слайд 20

Пользовательские типы и операции position1 = position2 position3 = position2 +

Пользовательские типы и операции
position1 = position2
position3 = position2 + origin
isLager =

position1 > position2
Слайд 21

Универсальный язык моделирования (UML)

Универсальный язык моделирования (UML)

Слайд 22

Универсальный язык моделирования (UML)

Универсальный язык моделирования (UML)