Исследовательская группа

Методы машинного обучения в области программной инженерии

CodeShovel: Constructing Method-Level Source Code Histories

March 22

Исследователи и разработчики часто обращаются к истории изменений проекта, чтобы понять, как он эволюционировал. Например, с использованием git или некоторых IDE можно получить список всех коммитов с информацией о том, кто, когда и как менял файлы проекта.

В своей статье (https://www.cs.ubc.ca/~rtholmes/papers/icse_2021_grund.pdf) авторы предлагают инструмент CodeShovel, который позволяет изучить историю изменений проекта на уровне методов. Одним из преимуществ инструмента является то, что он способен учитывать совершенные рефакторинги между двумя ревизиями файла, таким образом сохраняя полную историю для методов. Для каждого метода инструмент выводит список коммитов, в которых он менялся, с информацией об авторе, времени, типе изменения, и предоставляет дифф. В настоящее время инструмент работает только с Java репозиториями, но авторы пишут, что можно довольно просто добавить поддержку новых языков.

Мы обсудим алгоритм работы CodeShovel, а также преимущества и недостатки этого подхода. Код размещён в открытом доступе: https://github.com/ataraxie/codeshovel. Авторы разработали сайт, на котором вы можете потестировать инструмент: https://se.cs.ubc.ca/CodeShovel/index.html

Докладчик Зарина Курбатова.

Дата и время: 22-е марта, 18:00.

https://us02web.zoom.us/j/509624984?pwd=dFhRUlowSWprSVAva0JFQ2NUVzZTdz09

Meeting ID: 509 624 984

Passcode: 016883