Разделы презентаций


Методы программирования (2 семестр) презентация, доклад

ННГУ, ВМК, 2004 г. Методы программирования 2. ООП Л. 01. Введение в ООП. Мееров И.Б.Математика делает то, что можно, так, как

Слайды и текст этой презентации

Слайд 1ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

Методы программирования (2 семестр)

Раздел 2. Лекция 01 Введение в ООП

Нижегородский государственный университет
им. Н.И. Лобачевского

Факультет вычислительной математики и кибернетики

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 2ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

Математика делает то, что можно, так, как нужно, тогда как информатика делает то, что нужно, так, как можно.
Программистский фольклор

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 3ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

Технологические основы языков программирования высокого уровня_1

Проблемы:
Трудно проектировать.
Трудно реализовывать.
Трудно отлаживать.
Трудно сопровождать.
Трудно модифицировать.

Сложные задачи

Большие программы

Решение проблемы: Коллективная разработка

Один человек не в состоянии справиться с задачей

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 4ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

Технологические основы языков программирования высокого уровня_2

Промышленное программирование – технологический процесс.


Необходимы специальные технологии.
Структурное, модульное программирование.

Дальнейший рост сложности задач.
Что дальше? Как с этим бороться?

Мы строим корабль

Мы пишем Windows

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 5ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

Технологические основы языков программирования высокого уровня_3

Необходимы новые технологии.
Для того, чтобы понять, какие именно, необходимо ответить на следующие вопросы:
Какие задачи являются сложными, а какие простыми?
Почему некоторые задачи сложные?
Как можно бороться со сложностью задач?

1

2

3

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 6ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

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

Наиболее популярная версия: сложные задачи – задачи, которые я не умею решать.
? А может кто-нибудь умеет?

1

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 7ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

Сэр Исаак Ньютон по секрету признавался друзьям, что он знает, как гравитация ведет себя, но не знает, почему.
Лили Томлин (Lily Tomlin)

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 8ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

Простые и сложные программные системы

Версия классиков (Grady Booch):
Простые программные системы – “разрабатываются и сопровождаются одним человеком. В случае необходимости внесения изменений проще создать систему заново”.
Сложные программные системы – “имеют большое время жизни, и большое количество пользователей оказывается в зависимости от их нормального функционирования”.

1

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 9ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

Сложность

Брукс пишет: "Эйнштейн утверждал, что должны существовать простые объяснения природных процессов, так как Бог не действует из каприза или по произволу. У программиста нет такого утешения: сложность, с которой он должен справиться, лежит в самой природе системы“.

1

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 10ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

Итог:

Сложные задачи – это не те задачи, которые не умеет решать один конкретный коллектив.
Сложные задачи – сложные сами по себе, не в зависимости от тех, кто их решает. Эти задачи имеют большую важность и связаны с нормальным функционированием многих людей.
Примеры:
Расчет конструкции моста.
Прогноз погоды.
Корпоративная информационная система.
Операционная система.

1

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 11ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

Почему некоторые задачи сложные?

От склероза нельзя избавиться, о нем можно только забыть.
Народная мудрость
Со сложностью задач можно справиться, но от нее нельзя избавиться.
Чтобы справиться со сложностью, нужно применять специальные технологии.
Чтобы определить, какие технологии требуются, необходимо разобраться, откуда возникает сложность задач.

2

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 12ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

Почему некоторые задачи сложные?

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

2

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 13ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

Как можно бороться со сложностью задач?

Ответ: применение новой специальной технологии – объектно-ориентированной технологии.

Далее: в чем ее суть? Каковы особенности, область применения, достоинства и недостатки.

3

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 14ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

"В 1980-х годах объектно-ориентированное программирование будет занимать такое же место, какое занимало структурное программирование в 1970-х. Оно всем будет нравиться. Каждая фирма будет рекламировать свой продукт как созданный по этой технологии. Все программисты будут писать в этом стиле, причем все по-разному. Все менеджеры будут рассуждать о нем. И никто не будет знать, что же это такое."

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 15ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

Объектно-ориентированная технология основывается на так называемой объектной модели.
Основными ее принципами являются: абстрагирование, инкапсуляция, иерархичность (наследование), полиморфизм.
Каждый из этих принципов сам по себе не нов, но в объектной модели они впервые применены в совокупности.

Объектная модель

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 16ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

Начало: язык Simula (далее Smalltalk, Object Pascal и C++).
Общая тенденция в развитии языков программирования:
смещение акцентов от программирования отдельных деталей к программированию более крупных компонент;
развитие и совершенствование языков программирования высокого уровня.

Эволюция объектной модели

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 17ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

Объектно-ориентированный анализ и проектирование принципиально отличаются от традиционных подходов структурного проектирования.

ДЕКОМПОЗИЦИЯ

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

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 18ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

Главные строительные блоки – алгоритмы. Предметная область рассматривается как совокупность алгоритмов, запускающихся в определенной последовательности.

ДЕКОМПОЗИЦИЯ

Алгоритмическая

Объектно-ориентированная

Объектно-ориентированная и алгоритмическая декомпозиции_1

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 19ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

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

ДЕКОМПОЗИЦИЯ

Алгоритмическая

Объектно-ориентированная

Объектно-ориентированная и алгоритмическая декомпозиции_2

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 20ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

Модели приложений 1

Модульный и структурный подходы

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 21ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

Модели приложений 2

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

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 22ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

Составные части объектно-ориентированной технологии. Терминология

Путаница с терминологией в Российской и Западной литературе. ООП, OOP, OOD, OOA.
Россия: ООП – объектно-ориентированное программирование.
Западные теоретики: OOA – object-oriented analysis ; OOD – object-oriented design; OOP – object-oriented programming.

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 23ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

OOA – object-oriented analysis

Объектно-ориентированный анализ (или OOA, object-oriented analysis) направлен на создание моделей реальной действительности на основе объектно-ориентированного мировоззрения.
Определение: Объектно-ориентированный анализ – это методология, при которой требования к системе воспринимаются с точки зрения классов и объектов, выявленных в предметной области.

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 24ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

OOD – object-oriented design

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

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 25ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

OOP – object-oriented programming

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

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 26ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

Взаимодействие OOA, AAD и OOP

На результатах ООА формируются модели, на которых основывается OOD;
OOD в свою очередь создает фундамент для окончательной реализации системы.
Реализация проводится с использованием методологии OOP.

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 27ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

Составные части объектного подхода. Абстрагирование

Абстрагирование является одним из основных методов, используемых для решения сложных задач.
Абстракция выделяет существенные характеристики некоторого объекта, отличающие его от всех других видов объектов и, таким образом, четко определяет его концептуальные границы с точки зрения наблюдателя (Grady Booch).
Выбор правильного набора абстракций для заданной предметной области представляет собой главную задачу объектно-ориентированного проектирования.

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 28ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

Составные части объектного подхода. Абстрагирование

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

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 29ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

Составные части объектного подхода. Инкапсуляция

Абстракция объекта всегда предшествует его реализации.
После того, как решение о реализации принято, оно должно трактоваться как секрет абстракции, скрытый от большинства клиентов.
"Никакая часть сложной системы не должна зависеть от внутреннего устройства какой-либо другой части”.
В то время, как абстракция "помогает людям думать о том, что они делают", инкапсуляция "позволяет легко перестраивать программы“.

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 30ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

Составные части объектного подхода. Инкапсуляция

Инкапсуляция – это процесс отделения друг от друга элементов объекта, определяющих его устройство и поведение; инкапсуляция служит для того, чтобы изолировать контрактные обязательства абстракции от их реализации (Гради Буч).
Россия: под инкапсуляцией в литературе понимается:
Скрытие деталей реализации.
Объединение данных и подпрограмм их обработки в рамках одной синтаксической структуры языка программирования высокого уровня.

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 31ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

Составные части объектного подхода. Инкапсуляция

Инкапсуляция скрывает детали реализации объекта

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 32ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

Иерархия (наследование)

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

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 33ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

Иерархия (наследование)

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

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 34ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

Пример: координатная плоскость

Выделение абстракций:
Точка.
Круг.
Эллипс.
Квадрат.
Прямоугольник.
Треугольник.
Координатная плоскость.

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 35ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

Наследование

Точка: (x, y)
Круг: (x, y, R)
Эллипс.(x, y, R1, R2)
Квадрат.(x, y, a)
Прямоугольник (x, y, a, b).
Треугольник.(x1,y1, x2,y2, x3,y3)
Координатная плоскость (набор фигур)

Агрегация

Наследование

ТОЧКА (x, y)

КРУГ (R)

ФИГУРА

ИЛИ:

ТОЧКА (x, y)

КРУГ (R)

КВАДРАТ (a)


ТРЕУГОЛЬНИК = ТОЧКА + ТОЧКА + ТОЧКА

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 36ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

Иерархия

Абстракции образуют иерархию

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 37ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

Полиморфизм

Полиморфный (много смыслов, много значений)
Общая идея: одинаковое обозначение для схожих операций.
Пример: операция + в языках программирования высокого уровня – полиморфная операция.

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 38ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

Достоинства и недостатки объектного подхода

Достоинства:
проектирование;
модификация;
повторное использование;
надежность;
отладка.
В итоге: время и деньги.
Недостатки:
требует дополнительных навыков от программиста,
плохо сказывается на быстродействии приложений.

!

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 39ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

Выводы

Есть задачи, где идей структурного и модульного программирования недостаточно – сложные задачи.
На помощь приходит объектно-ориентированный подход (технология).
В основе подхода – объектно-ориентированная декомпозиция.
3 части – OOA, OOD, OOP.
Основные принципы: абстракция, инкапсуляция, иерархия (наследование), полиморфизм.

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Слайд 40ННГУ, ВМК, 2004 г.

Методы программирования 2. ООП Л. 01.

Введение в ООП. Мееров И.Б.

Литература к лекции

Гради Буч. Объектно-ориентированный анализ и проектирование с примерами приложений на C++.
Из книги заимствованы различные идеи, элементы текста и часть иллюстраций к слайдам.

ННГУ, ВМК, 2004 г.           Методы программирования 2.

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика