Кейс HomeTech

Задание

Вы - разработчик программного обеспечения в компании HomeTech. Ваша задача - создать консольное приложение для управления умными устройствами в доме.

Приложение должно позволять пользователю:

Система должна быть масштабируемой: в будущем планируется добавить новые типы устройств (умные замки, датчики движения, роботы-пылесосы и т.д.). Поэтому архитектура кода должна легко расширяться.

На текущий момент необходимо добавить поддержку следующих умных устройств:

Критерии оценивания

Критерий Макс. балл Комментарий
Иерархия наследования 3 Базовый класс и наследники спроектированы корректно
Полиморфизм 3 Виртуальные методы работают, вызовы осуществляются через базовый класс
Инкапсуляция 2 Поля защищены, доступ организован через методы
Управление памятью 2 Используются виртуальные деструкторы, умные указатели, нет утечек
Функциональность 2 Программа работает, все функции реализованы
Расширяемость 1 Добавление нового устройства не требует изменения существующего кода
Качество кода 1 Достигнута читаемость кода, соблюдён стандартный стиль оформления кода, код сопровождается комментариями
Итого 14