Исследовательская группа
Методы машинного обучения в области программной инженерии
Методы машинного обучения приобретают всё большую популярность во всех областях исследований и индустрий, в том числе и в области программной инженерии. В этой группе мы ставим задачу объединить последние разработки машинного обучения и программной инженерии для разработки новых способов создания и улучшения кода.
Текущая область интересов группы:
- Подходы к обнаружению дефектов объектно-ориентированной архитектуры и автоматическая рекомендация соответствующих рефакторингов для оптимизации структуры кода.
- Обнаружение клонов в программном коде и разработка инструментов для автоматизированного выделения и переиспользования общего кода.
- Построение векторных представлений кода для решения задач, таких как поиск плагиата, предсказание имён идентификаторов в коде или суммаризация кода.
- Анализ динамики изменения стиля того, как люди пишут код.
- Использование исторических данных для улучшения инструментов взаимодействия разработчиков, например, при помощи систем рекомендации.
- Поиск аномалий в коде.
- Автогенерация участков кода по описаниям на естественном языке, по набору используемых API вызовов и т.п.
- Разработка ассистентов написания кода: например, поиск и автоматическое исправление типовых ошибок, рекомендация функций IDE, анализ контекста разработки и намерений разработчика.
- Анализ покоммитной истории в репозиториях исходного кода с целью предсказания последующих изменений, мест проявления ошибок и других событий.
- Методы обнаружения и автокоррекции ошибок в коде.