Лекция №3:
Основные вопросы объектно-ориентированного программирования на языке C++
+ ДЗ №3
+ ДЗ №4
+ ДЗ №5
Инкапсуляция и ответственность класса. Принципы SRP, OCP. Идиома RAII. Праводопустимые выражения. Конструкторы (операции) переноса и иные расширения объектной модели в C++11. Инкапсуляция и вопросы производительности.
Домашнее задание №3:
UML
Каждому участнику команды необходимо спроектировать свою часть библиотеки будущей системы в рамках объектной парадигмы и представить результаты на языке UML-диаграмм. Обязательно необходимо предусмотреть наличие внешних интерфейсов по отношению к пользователю библиотеки, а также интерфейсов между разными компонентами проектируемой библиотеки. Предполагается, что после индвидуального проектирования каждым из участников своей части с учётом интерфейсов взаимодействия друг с другом - в итоге будет сформирована единая архитектура, которую можно будет представить так же на языке UML-диаграмм. В решении задачи максимально актуализируются знания, полученные на лекциях №3 – 7.
Дедлайн: РК №2
Домашнее задание №4:
Каркас кода и покрытие тестами
Каждому участнику команды необходимо реализовать программный интерфейсный каркас кода своего компонента библиотеки в соответствии со спроектированной объектной архитектурой. Также необходимо реализовать набор тестов, покрывающий требования к будущему продукту и к интерфейсам - как к внешним по отношению к пользователю, так и между компонентами в рамках разрабатываемой библиотеки. В решении задачи максимально актуализируются знания, полученные на лекциях №3 – 7
Домашнее задание №5:
Прохождение ревью
Оценивается программная реализация трёх компонент:
- реализация интерфейсного каркаса проекта и юнит-тестов - 5 баллов
- реализация основной библиотеки с использованием STL, реализующей ядро проекта и предоставляющей необходимые интерфейсы для возможного расширения - 5 баллов
- доработка проекта с использованием сторонних библиотек и современных возможностей языка - 5 баллов