Рецензия ведущего руководителя проекта в T-Systems RUS, Порошина Ильи Александровича, на магистерскую диссертацию Рахимзянова Даниса Ильшатовича на тему: «Автоматический рефакториг для целостной оптимизации Java-приложений» Актуальность темы рецензируемой работы обусловлена высокими темпами развития как технологий, используемых при разработке программного обеспечения, так и ростом объёма их исходного кода. Рассматриваемый автором класс приложений действительно зачастую нуждается в целостной оптимизации, заключающейся в эффективном использовании реляционных баз данных и SQL-языка в исходном коде Java-приложений. Рецензируемая работа посвящена исследованию возможности автоматической трансформации кода с целью повышения его эффективности. В работе поставлено три задачи, а именно, поиск вычислительно неэффективных фрагментов кода, логирование информации о потенциальном улучшении и, наконец, проведение автоматического рефакторинга выявленных проблемных шаблонов. Работа разделена на четыре части. В первой части описываются метрики для оценки качества, и приводится описание работ и инструментов, необходимых для синтаксического анализа исходного кода Java-приложений. Также в работе представляется внутренняя структура для хранения сущностей, полученных в ходе синтаксического анализа исходного кода. Последовательность изложения материала даёт целостное представление о процессе анализа. Вторая часть посвящена непосредственно проведению автоматической трансформации для ряда простых случаев, и в третьей части приводятся эксперименты, иллюстрирующие производительность до и после процесса рефакторинга. Приводятся соответствующие графиками и обоснованные выводы из них. Заключительная часть сопоставляет проделанную работу с ранее проведёнными исследованиями других авторов, описывает сходства и различия использованных методик и техник. Автор в значительной мере концентрируется на описании технических аспектов реализации предлагаемых инструментов, но при этом чересчур скромно указывает на высокую ценность своих результатов для промышленной разработки программного обеспечения, в частности, для оффшорной разработки, где исключительно часто приходится сталкиваться с задачей принятия в работу для дальнейшего развития и поддержки большого объёма программного кода, созданного ранее иным производителем. Данный процесс в значительной степени упрощается наличием возможности проведения автоматического рефакторинга чужого кода с целью приведения его к стандартам программирования, принятым в организации. Отсутствие в работе явного указания на данный аспект актуальности полученных автором результатов может не позволить в полной мере увидеть её практическую ценность. В целом, магистерская диссертация Рахимзянова Даниса Ильшатовича производит приятное впечатление, благодаря понятному изложению и уместным иллюстрациям, хотя некоторые использованные формулировки могли бы быть более чёткими. Диссертация выполнена на актуальную тему и соответствует требованиям, предъявляемым к работам магистерского уровня. Автор продемонстрировал умения проводить исследовательскую работу, уверенные знания в сфере обработки и анализа текстовой информации (исходного кода приложений), а также навыки создания программных продуктов. Полученные в работе результаты по осуществлению автоматического рефакторинга кода для выбранных случаев, я вижу как возможную основу для дальнейшего построения комплексного улучшения сложных программных продуктов. С учетом вышесказанного и в связи с отсутствием замечаний к работе, считаю, что работа заслуживает оценки «отлично», а ее автор – присвоения квалификации магистра и рекомендаций к опубликованию и поступлению в аспирантуру. Рецензент, Ведущий руководит