Название задания Учебный проект: Применение принципов SOLID к учебному проекту Цель Применить принципы SOLID, вывести проект на новый уровень. Описание задания К данному этапу ваш проект описан языком С4, однако сама программная система выглядит нерасширяемой и узкоспециализированной. Необходимо доработать систему, и позволить ей решать более широкий круг задач в заданной предметной области. На выходе необходимо предоставить диаграмму классов. Критерии, по которым будет оцениваться задание: Будет оцениваться соответствие проекта системы заданным условиям и соблюдение принципов SOLID при проектировании классов и модулей. Задание В зависимости от выбранного кейса, проведите работу над расширением возможностей системы: Сервис для уведомлений. Необходимо отслеживать изменение состояний внешнего источника и отправлять уведомления потребителю по событию. Источник, способ отправки и события могут добавляться. Сервис для бэкапов. Сервис принимает или забирает (push/poll) данные, после чего помещает их в хранилище с опциональным сжатием. Источник данных и хранилище могут быть добавлены или изменены. Сервис конвертации. Принимает файл одного формата, конвертирует в другой, результат работы сохраняет. Канал поступления исходных файлов, их форматы (+ возможность взаимной конвертации), а также методика сохранения и предоставления результата могут быть добавлены или изменены. REST API. Позволяет выполнять произвольные (заранее оговоренные) операции работы с данными в РСУБД. Базы данных и операции могут быть добавлены или изменены. Сервис умного дома. Предоставляет API для управления устройствами широкого спектра производителей. ETL. Сервис читает данные, преобразует данные, сохраняет результат. Источник, преобразования, выходное хранилище могут быть добавлены или изменены .