ОТЗЫВ на выпускную квалификационную работу обучающегося СПбГУ Николаева Сергея Юрьевича по теме «Аспектно-ориентированная реализация принципа инверсии зависимости при разработке программного обеспечения» В данной работе рассматривается система аспектно-ориентированного рефакторинга паттерна проектирования dependency injection. Ее применение позволяет повысить качество целевого проекта путем устранения зависимости от конкретного IOC-контейнера, что свидетельствует об актуальности данной работы. Принцип ее работы заключается в вынесении всей работы с IOC-контейнером в специальную библиотеку классов в виде аспектов Aspect.NET. Таким образом, необходимо создать аспекты для инициализации IOC-контейнера нужными зависимостями, а затем определить перехватывающие действия для каждого разрешения зависимостей. В этом случае аспект Aspect.NET является по сути декоратором IOC-контейнера. Для автоматизированной генерации кода аспектов использовалась система MS Roslyn. В работе присутствуют достаточные теоретические сведения по данной тематике и краткий обзор литературы. Программный код представлен в приложении. В целом, текст логично структурирован. Основные цели данной работы были достигнуты, но не полностью. С одной стороны Николаев С.А. успешно продемонстрировал возможность такого рефакторинга вручную и сформулировал его основные приемы. Однако реализовать удалось лишь автоматическое вынесение инициализации IOC-контейнера в аспект. Все остальные этапы АОП-рефакторинга не реализованы: обнаружение использования IOC-контейнера, перенос этого кода в специально созданное действие аспекта, а затем удаление из целевого проекта всех ссылок на IOC-контейнер. Также отсутствует оценка качества кода после преобразований. С учетом отмеченных недостатков, считаю, что автор работы заслуживает оценки «УДОВЛЕТВОРИТЕЛЬНО». Научный руководитель: Григорьев Д. А. кандидат физико-математических наук, доцент кафедры информатики СПбГУ