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

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

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

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

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

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

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

Авторы

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

Учебный план

Занятия
Экзамен экстерном Внимание! Экзамен экстерном не обязательный для сдачи. При желании вы можете его пройти, если хотите подтвердить свои знания по данному курсу без его изучения или поверить свои знания по нему. Экзамен экстерном можно сдать только один раз. 90 мин
1 Введение "У слушателей Интернет университета появилась уникальная возможность не только пройти курсы лекций по замечательной книге ""Почувствуй... "У слушателей Интернет университета появилась уникальная возможность не только пройти курсы лекций по замечательной книге ""Почувствуй класс. Учимся программировать хорошо с объектами и контрактами"", но и увидеть, услышать автора книги – профессора Бертрана Мейера. Отвечая на вопросы профессора Владимира Биллига – переводчика книги, Бертран Мейер объясняет, почему этот курс может быть интересен студентам, приступающим к изучению информатики, чем книга может быть интересна преподавателям, читающим подобный курс, чем книга и курсы по ней могут быть интересны профессионалам ИТ. Он рассказывает о том, как учат информатике в ЕТН – одном из старейших учебных заведений Европы, об особенностях этого курса. В беседе затрагиваются и другие вопросы, в частности Бертран говорит о своей любви к русскому языку и о том, как он, будучи школьником, учил русский язык. Эта лекция является хорошим введением в курс, полученным ""из первых уст""." ещё
2 Наследование и полиморфизм В лекции рассматриваются свойства классов и объектов, связанные с наследованием. Наследование не только позволяет повторно использовать... В лекции рассматриваются свойства классов и объектов, связанные с наследованием. Наследование не только позволяет повторно использовать код (компоненты, определенные предками класса), но использовать наиболее подходящий метод - метод того объекта, с которым в момент выполнения связана полиморфная сущность. В лекции подробно рассматриваются важнейшие для наследования понятия – полиморфизм, динамическое связывание, динамический и статический тип сущности, согласование типов. ещё
Наследование и полиморфизм тест для курса Объектно-ориентированное программирование и программная инженерия 40 мин
3 Проектирование семейства классов "В лекции рассматриваются новые свойства, связанные с проектированием семейства классов, связанных отношением наследования. Как правило, проектирование... "В лекции рассматриваются новые свойства, связанные с проектированием семейства классов, связанных отношением наследования. Как правило, проектирование семейства начинается с создания отложенного класса (deferred class) – класса, в котором для ряда методов задана только спецификация – контракт и сигнатура, но не задана реализация методов, которую обеспечат потомки класса в соответствии со своей спецификой. В лекции подробно рассматриваются важнейшие для проектирования понятия – ""программы с дырами"", отложенные методы, переопределение и переобъявление методов наследниками класса." ещё
Проектирование семейства классов тест для курса Объектно-ориентированное программирование и программная инженерия 40 мин
4 Контракты и наследование В лекции объясняется роль контрактов при наследовании, как изменяются контракты в процессе наследования. Класс наследует от... В лекции объясняется роль контрактов при наследовании, как изменяются контракты в процессе наследования. Класс наследует от родителя не только компоненты, но и инвариант класса. Методы наследуют предусловия и постусловия. Наследники обязаны выполнять контракт родителя, но могут брать новые обязательства, делая контракт более привлекательным для клиентов класса. В лекции подробно рассматривается также общая структура наследования и проблемы, возникающие при множественном наследовании. ещё
Контракты и наследование тест для курса Объектно-ориентированное программирование и программная инженерия 40 мин
5 Универсальность плюс наследование "В лекции рассматривается комбинация двух важнейших механизмов объектно-ориентированного проектирования – наследования и универсальности. Показана важная роль... "В лекции рассматривается комбинация двух важнейших механизмов объектно-ориентированного проектирования – наследования и универсальности. Показана важная роль ограничения универсальности, позволяющая расширить возможности сущностей, тип которых задается родовыми параметрами универсального класса. Исследуются приемы взаимного использования двух механизмов ООП. В частности большое внимание уделяется рассмотрению образца проектирования ""Посетитель""." ещё
Универсальность плюс наследование тест для курса Объектно-ориентированное программирование и программная инженерия 40 мин
6 Агенты как функциональный тип данных В лекции рассматривается новый тип данных, называемый функциональным типом. Объектами этого типа являются функции и процедуры... В лекции рассматривается новый тип данных, называемый функциональным типом. Объектами этого типа являются функции и процедуры – методы класса. В языке Eiffel вводится понятие агента, при определении которого с агентом связывается некоторый метод класса. Агентное выражение может быть присвоено переменной функционального типа. Механизм агентов находит широкое применение в различных проблемных областях. В лекции подробно обсуждаются вопросы, связанные с заданием агентов. Обсуждаются важные примеры применения агентов в задачах итерирования, численного интегрирования, построения командных систем с встроенным механизмом откатов – redo и undo. ещё
Агенты как функциональный тип данных тест для курса Объектно-ориентированное программирование и программная инженерия 40 мин
7 Введение в лямбда исчисление В лекции рассматриваются основы лямбда исчисления. Эта теория позволяет лучше понимать свойства агентов и их применение.... В лекции рассматриваются основы лямбда исчисления. Эта теория позволяет лучше понимать свойства агентов и их применение. В лекции подробно обсуждаются вопросы, связанные с преобразованием функций, переименованием переменных, подстановкой. Изучаются две основные операции, применимые к лямбда-выражениям, – бета-редукция и альфа-преобразование. Обсуждается связь теории с практикой программирования в Eiffel и других языках программирования. ещё
Введение в лямбда исчисление тест для курса Объектно-ориентированное программирование и программная инженерия 40 мин
8 События "В лекции рассматривается технология проектирования ПО, в которой процесс вычисления управляется событиями, возникающими по ходу процесса.... "В лекции рассматривается технология проектирования ПО, в которой процесс вычисления управляется событиями, возникающими по ходу процесса. Как правило, такая технология применяется в интерактивных системах, где ведущая роль управления процессом вычислений отводится пользователю. В такой технологии программный проект рассматривается как набор сервисов, вызываемых в ответ на возникновение событий, инициатором которых зачастую является пользователь, управляющий процессом вычислений. Центральным понятием этой технологии является понятие ""события"". Одни элементы ПО, называемые издателями, могут генерировать события. Другие элементы ПО, называемые подписчиками, могут обрабатывать события, получая сообщения об их возникновении. В лекции подробно рассматриваются важнейшие элементы этой технологии – объявление событий, включение событий, подписка на события, обработка событий, образец проектирования МОК (MVC)." ещё
События тест для курса Объектно-ориентированное программирование и программная инженерия 40 мин
9 Образцы проектирования "В лекции рассматриваются образцы проектирования, связанные с событиями. Подробно рассматривается образец ""Наблюдатель"" (pattern Observer). Обсуждаются достоинства... "В лекции рассматриваются образцы проектирования, связанные с событиями. Подробно рассматривается образец ""Наблюдатель"" (pattern Observer). Обсуждаются достоинства и недостатки этого классического образца. Используя такие возможности языка Eiffel, как агенты и кортежи, рассматривается более совершенный образец, применимый в задачах типа ""Издатели"" и ""Подписчики"", - образец, основанный на классе EVENT_TYPE. Этот класс является основой контроллера при построении более мощного образца проектирования МОК – Модель - Облик – Контроллер (MVC – Model – View – Controller)." ещё
Образцы проектирования тест для курса Объектно-ориентированное программирование и программная инженерия 40 мин
10 Цель - инженерия программ Эта часть содержит заключительную лекцию, предшествующую приложениям. В ней рассматриваются требования, необходимые для перехода на новый... Эта часть содержит заключительную лекцию, предшествующую приложениям. В ней рассматриваются требования, необходимые для перехода на новый уровень, перехода от простого программирования к профессиональной разработке ПО промышленного качества. Этот уровень называется программной инженерией. ещё
Цель - инженерия программ тест для курса Объектно-ориентированное программирование и программная инженерия 40 мин
11 Технологии инженерии программ В лекции рассматриваются вопросы создания программного продукта, входящие в сферу интересов инженерии программ. Рассматриваются различные модели... В лекции рассматриваются вопросы создания программного продукта, входящие в сферу интересов инженерии программ. Рассматриваются различные модели жизненного цикла программного продукта, включая современную технологию гибкой разработки, получившей название Agile методологии. Большое внимание уделяется требованиям к программным системам, созданию документа требований, роли и качеству этого документа. Обсуждаются вопросы сертификации фирм, занимающихся разработкой ПО, в частности подробно рассматривается сертификация CMMI. ещё
Технологии инженерии программ тест для курса Объектно-ориентированное программирование и программная инженерия 40 мин
12 Программирование в ETH
Тренировочный экзамен Внимание! Тренировочный экзамен экстерном не обязательный для сдачи. При желании вы можете его пройти, если хотите проверить свои знания курса перед сдачей экзамена. Тренировочный экзамен можно сдавать сколько угодно один раз. 90 мин
Экзамен 60 мин

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

Сертификат

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

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

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

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

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