Компьютерные науки

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

Программа о фундаментальных основах объектной технологии и программной инженерии. Излагаются концепции классов, управления памятью, типизации, наследования и проектирования по контракту для создания надежного программного обеспечения.
Студентов 9829 Выпускников 641 Для специалистов
690 ₽ 1 200 ₽
или любая сумма на ваше усмотрение
Вы можете оплатить любую сумму, чтобы поддержать наш проект и авторов программы. Объем услуг не зависит от размера вашей оплаты.
Темы:
Программирование
Объем

36 час.
Длительность

30 дней
Нагрузка в неделю

9 час.
Формат обучения

Дистанционно (самостоятельно)
Описание Учебная программа опирается на классические труды Бертрана Мейера и детально разбирает критерии качества программных систем. В учебной программе изучается концепция класса как абстрактного типа данных и модуля, а также управление объектами и памятью. Значительная часть материала посвящена отношениям между классами, включая множественное наследование, универсализацию, проектирование по контракту и обработку исключений. Обучение выстроено как глубокое академическое погружение, где каждая тема подкрепляется проверочными заданиями. Материал обеспечивает системное понимание объектно-ориентированной парадигмы в контексте архитектуры программного обеспечения.
Цели
  • Раскрыть фундаментальные принципы объектной технологии и абстрактных типов данных.
  • Сформировать понимание механизмов проектирования по контракту для повышения надежности кода.
  • Дать системное представление о наследовании, типизации и управлении памятью в объектно-ориентированных средах.
Чему я научусь?
  • Применять принципы модульности и абстракции при проектировании программных систем.
  • Использовать проектирование по контракту для обеспечения корректности работы программ.
  • Анализировать и выстраивать иерархии классов с применением различных видов наследования.

Авторы

Мейер Бертран
Мейер Бертран
Возглавляет знаменитую кафедру Software Engineering в ETH, Цюрих, – в одном из старейших университетов Европы. Он автор языка Eiffel, основатель и научный руководитель фирмы Eiffel Software.
Чему я научусь?
  • Применять принципы модульности и абстракции при проектировании программных систем.
  • Использовать проектирование по контракту для обеспечения корректности работы программ.
  • Анализировать и выстраивать иерархии классов с применением различных видов наследования.

Учебный план

Занятия
Экзамен экстерном Внимание! Экзамен экстерном не обязательный для сдачи. При желании вы можете его пройти, если хотите подтвердить свои знания по данному курсу без его изучения или поверить свои знания по нему. Экзамен экстерном можно сдать только один раз. 90 мин
1 Качество ПО "Качество - это цель инженерной деятельности
Качество ПО тест для курса Основы объектно-ориентированного программирования 25 мин
2 Критерии объектной ориентации "В предыдущей лекции исследовались цели ОО-метода. Готовясь к чтению технических деталей метода в следующих лекциях, полезно... "В предыдущей лекции исследовались цели ОО-метода. Готовясь к чтению технических деталей метода в следующих лекциях, полезно быстро, но с широких позиций рассмотреть ключевые аспекты ОО-разработки ПО. Такова цель этой лекции. Прежде всего, здесь будет дано лаконичное пояснение того, что делает систему объектно-ориентированной. Уже в этом есть определенная польза, поскольку этот термин используется так неразборчиво, что необходим список точных свойств ещё
Критерии объектной ориентации тест для курса Основы объектно-ориентированного программирования 25 мин
3 Модульность В лекциях 3-6 будут рассмотрены требования к разработке программного продукта, которые почти наверняка приведут нас к... В лекциях 3-6 будут рассмотрены требования к разработке программного продукта, которые почти наверняка приведут нас к объектной технологии. ещё
Модульность тест для курса Основы объектно-ориентированного программирования 25 мин
4 Подходы к повторному использованию В этой лекции будут рассмотрены некоторые из проблем, направленных на широкомасштабное внедрение повторного использования программных компонентов.
Подходы к повторному использованию тест для курса Основы объектно-ориентированного программирования 25 мин
5 К объектной технологии Расширяемость, возможность повторного использования и надежность - наши главные цели - требуют выполнения ряда условий, определенных... Расширяемость, возможность повторного использования и надежность - наши главные цели - требуют выполнения ряда условий, определенных в предыдущих лекциях. Для их достижения требуется систематический метод декомпозиции системы на модули. В этой лекции представлены основные элементы такого метода, основанного на простой, но далеко идущей идее: строить каждый модуль на базе некоторого типа объектов. Здесь эта идея объясняется, логически обосновывается и из нее выводятся некоторые следствия. ещё
К объектной технологии тест для курса Основы объектно-ориентированного программирования 25 мин
6 Абстрактные типы данных (АТД) Чтобы объекты играли лидирующую роль в архитектуре ПО, нужно их адекватно описывать. В этой лекции показывается,... Чтобы объекты играли лидирующую роль в архитектуре ПО, нужно их адекватно описывать. В этой лекции показывается, как это делать. ещё
Абстрактные типы данных (АТД) тест для курса Основы объектно-ориентированного программирования 25 мин
7 Статические структуры: классы Анализируя основы программной инженерии, мы поняли причины, требующие совершенствования модульного подхода - повторное использование и расширяемость... Анализируя основы программной инженерии, мы поняли причины, требующие совершенствования модульного подхода - повторное использование и расширяемость кода. Мы осознали, что традиционные методы исчерпали себя, - централизованная архитектура ограничивает гибкость. Мы выявили хорошую теоретическую основу ОО-подхода - абстрактные типы данных. Теперь, когда проблемам уделено достаточно внимания, вперед к их решению! Раздел содержит введение в фундаментальные методы ОО-анализа, проектирования и программирования. Необходимые обозначения (элементы описания) будут вводиться по мере необходимости. Сначала необходимо рассмотреть базовые строительные блоки - классы. ещё
Статические структуры: классы тест для курса Основы объектно-ориентированного программирования 25 мин
8 Динамические структуры: объекты В предыдущей лекции отмечалось, что экземпляры классов называют объектами. Настало время переключить внимание на эти объекты,... В предыдущей лекции отмечалось, что экземпляры классов называют объектами. Настало время переключить внимание на эти объекты, и в общем смысле - на модель ОО-вычислений времени выполнения. В предыдущих лекциях рассматривались в основном концептуальные вопросы. Теперь необходимо обратиться к аспектам реализации. В частности, рассмотреть вопросы использования памяти (обсуждение будет продолжено в следующей лекции в связи со сборкой мусора). Неоднократно отмечалось, что одним из преимуществ объектной технологии разработки ПО является учет в полном объеме деталей реализации. Поэтому экскурсия в область реализации будет полезной, даже если сфера ваших интересов связана в основном с вопросами анализа и проектирования. Невозможно понять метод, не рассматривая его влияние на структуры времени выполнения. ещё
Динамические структуры: объекты тест для курса Основы объектно-ориентированного программирования 25 мин
9 Управление памятью Честно говоря, было бы неплохо забыть про память. Программы создавали бы объекты по мере надобности. Неиспользованные... Честно говоря, было бы неплохо забыть про память. Программы создавали бы объекты по мере надобности. Неиспользованные объекты исчезали бы в небытие, а необходимые медленно передвигались бы вверх. Этот процесс подобен движению по служебной лестнице работника большой корпорации, в конце карьеры достигшего уровня руководства. Но это не так. Память не безгранична и не организуется в непрерывный ряд слоев с уменьшающейся скоростью доступа. Нам необходимо увольнять наших бестолковых работников даже, если мы должны называть это ранним уходом на пенсию, продиктованным общей экономической ситуацией. Эта лекция изучает, кто все же должен быть сокращен, кем и как. ещё
Управление памятью тест для курса Основы объектно-ориентированного программирования 25 мин
10 Универсализация "Слияние двух концепций - модуля и типа - позволило разработать мощное понятие класса, послужившее основой ОО-метода.... "Слияние двух концепций - модуля и типа - позволило разработать мощное понятие класса, послужившее основой ОО-метода. Уже в таком виде оно позволяет делать многое. Однако для достижения наших целей - расширяемости, возможности повторного использования, надежности необходимо сделать конструкцию класса более гибкой. Развитие может идти в двух направлениях. Один, представленный вертикалью на следующем рисунке, показывает абстракцию и специализацию ещё
Универсализация тест для курса Основы объектно-ориентированного программирования 25 мин
11 Проектирование по контракту: построение надежного ПО Вооруженные базисными концепциями класса, объекта, параметризации вы можете теперь создавать программные модули, реализующие возможно параметризованные типы... Вооруженные базисными концепциями класса, объекта, параметризации вы можете теперь создавать программные модули, реализующие возможно параметризованные типы структур данных. Мои поздравления! Сделан важный шаг в битве за лучшую программную архитектуру. Но рассмотренных методов явно недостаточно для реализации всеобъемлющего видения качества, введенного в начале книги. Факторы качества, на которых было сконцентрировано наше внимание, - повторное использование, расширяемость, совместимость - не должны достигаться ценой надежности (корректность и устойчивость). Хотя концепция надежности просматривалась по ходу обсуждения, мы добиваемся большего. ещё
Проектирование по контракту: построение надежного ПО тест для курса Основы объектно-ориентированного программирования 25 мин
12 Когда контракт нарушается: обработка исключений Нравится это или нет, но не стоит притворяться, несмотря на все статические предосторожности, некоторые неожиданные и... Нравится это или нет, но не стоит притворяться, несмотря на все статические предосторожности, некоторые неожиданные и нежелательные события рано или поздно возникнут при одном из выполнений системы. Такие ситуации известны как исключения, и нужно должным образом уметь справляться с ними. ещё
Когда контракт нарушается: обработка исключений тест для курса Основы объектно-ориентированного программирования 25 мин
13 Поддерживающие механизмы "Выше рассмотрены все основные методы создания ОО-программного продукта, кроме одного важнейшего набора механизмов. Недостающий раздел -... "Выше рассмотрены все основные методы создания ОО-программного продукта, кроме одного важнейшего набора механизмов. Недостающий раздел - наследование и все, что к нему относится. Перед тем как перейти к этой последней составляющей подхода, опишем несколько механизмов, важных для создания систем: внешние программы и инкапсуляцию не ОО-программного продукта ещё
Поддерживающие механизмы тест для курса Основы объектно-ориентированного программирования 25 мин
14 Введение в наследование Интересные системы редко рождаются на пустом месте. Почти всегда новые программы являются расширениями предыдущих разработок, лучший... Интересные системы редко рождаются на пустом месте. Почти всегда новые программы являются расширениями предыдущих разработок, лучший способ создания нового - это подражание старым образцам, их уточнение и комбинирование. Традиционные методы проектирования по большей части не уделяли внимания этому аспекту разработки. В ОО-технологии он является весьма существенным. ещё
Введение в наследование тест для курса Основы объектно-ориентированного программирования 25 мин
15 Множественное наследование Полноценное применение наследования требует важного расширения этого механизма. Изучая его основы, мы столкнулись с необходимостью порождать... Полноценное применение наследования требует важного расширения этого механизма. Изучая его основы, мы столкнулись с необходимостью порождать новые классы от нескольких классов-родителей. Эта возможность, известная как множественное (multiple) наследование (именуемое так в противовес единичному (single) наследованию), действительно нужна для построения надежных ОО-решений. ещё
Множественное наследование тест для курса Основы объектно-ориентированного программирования 25 мин
16 Техника наследования Наследование - ключевая составляющая ОО-подхода к повторному использованию и расширяемости. В этой лекции нам предстоит исследовать... Наследование - ключевая составляющая ОО-подхода к повторному использованию и расширяемости. В этой лекции нам предстоит исследовать новые возможности, разнородные, но демонстрирующие замечательные следствия красоты базисных идей. ещё
Техника наследования тест для курса Основы объектно-ориентированного программирования 25 мин
17 Типизация "Эффективное применение объектной технологии требует четкого описания в тексте системы типов всех объектов, с которыми она... "Эффективное применение объектной технологии требует четкого описания в тексте системы типов всех объектов, с которыми она работает на этапе выполнения. Это правило, известное как статическая типизация (static typing), делает наше ПО: более надежным, позволяя компилятору и другим инструментальным средствам устранять несоответствия прежде, чем они смогут нанести вред ещё
Типизация тест для курса Основы объектно-ориентированного программирования 25 мин
18 Глобальные объекты и константы Локальных знаний не достаточно - компонентам ПО необходима глобальная информация: разделяемые данные, общее окно для вывода... Локальных знаний не достаточно - компонентам ПО необходима глобальная информация: разделяемые данные, общее окно для вывода ошибок, шлюз для подключения к базе данных или сети. В классическом подходе достаточно объявить такой объект глобальной переменной главной программы. В ОО-системах нет ни главной программы, ни глобальных переменных. Но разделяемые (shared) объекты по-прежнему нужны. ещё
Глобальные объекты и константы тест для курса Основы объектно-ориентированного программирования 25 мин
Тренировочный экзамен Внимание! Тренировочный экзамен экстерном не обязательный для сдачи. При желании вы можете его пройти, если хотите проверить свои знания курса перед сдачей экзамена. Тренировочный экзамен можно сдавать сколько угодно один раз. 90 мин
Экзамен 60 мин

Какой документ я получу?

Сертификат

Выдаётся автоматически после успешного завершения программы.

Удостоверение о повышении квалификации

Выдается при наличии среднего специального или высшего образования (необходимые документы).

Стоимость программы

690 ₽ 1 200 ₽
или любая сумма на ваше усмотрение
Вы можете оплатить любую сумму, чтобы поддержать наш проект и авторов программы. Объем услуг не зависит от размера вашей оплаты.