Labor für Machine-Learning-Methoden in der Softwareentwicklung

Anwendungen der Datenanalyse werden in vielen Bereichen der Forschung und Industrie immer beliebter, so auch in der Softwareentwicklung. Mit dieser Gruppe wollen wir die aktuellen Praktiken in beiden Bereichen zusammenführen, indem wir moderne Softwareentwicklungstools verbessern und neue Wege zur Entwicklung und Wartung von Code entdecken.

Unsere aktuellen Interessensgebiete:

  • Erkennung von Fehlern in der objektorientierten Architektur und automatische Empfehlung geeigneter Umgestaltungen zur Optimierung der Codestruktur.
  • Erkennung von Code-Klonen und Tools zur automatischen Erkennung und Extraktion von wiederverwendbaren Codefragmenten
  • Aufbau reichhaltigerer Einbettungen von Code für die Erkennung von Plagiaten, die Vorhersage von Methoden- und Variablennamen und die Textextrahierung.
  • Analyse der Dynamik des Programmierungsstils der Entwickler*innen.
  • Nutzung historischer Daten zur Erweiterung von Collaboration-Tools, z.B. durch Empfehlungssysteme.
  • Anomalieerkennung für Code.
  • Automatisierte Codegenerierung aus natürlichen Sprachbeschreibungen, verwendeten API-Aufrufen usw.
  • Automatisierte Programmierunterstützung sowohl für Studierende als auch für erfahrene Entwickler*innen, einschließlich der Suche/Behebung typischer Fehler, Übernahme von IDE-Funktionen, Benutzerabsicht und Kontextanalyse.
  • Commit-basierte Analyse von Code-Repositorys zur Vorhersage von Methoden zur Änderung, Fehlersuche und anderen Ereignissen.
  • Methoden zur automatisierten Fehlererkennung und Programmreparatur.

Unsere aktuellen Interessensgebiete:

  • Erkennung von Fehlern in der objektorientierten Architektur und automatischer Vorschlag geeigneter Umgestaltungen zur Optimierung der Codestruktur.
  • Erkennung von Code-Klonen und Entwicklung von Tools zur automatischen Erkennung und Extraktion von wiederverwendbaren Codefragmenten.
  • Aufbau reichhaltigerer Einbettungen von Code für die Erkennung von Plagiaten, die Vorhersage von Methoden- und Variablennamen und die Textextrahierung.
  • Analyse der Dynamik des Programmierungsstil der Entwickler*innen.
  • Nutzung historischer Daten zur Erweiterung von Collaboration-Tools, z.B. durch Empfehlungssysteme.
  • Anomalieerkennung für Code.
  • Automatisierte Codegenerierung aus natürlichen Sprachbeschreibungen, verwendeten API-Aufrufen usw.
  • Automatisierte Programmierunterstützung sowohl für Studierende als auch für erfahrene Entwickler*innen, einschließlich der Suche/Behebung typischer Fehler, Übernahme von IDE-Funktionen, Benutzerabsicht und Kontextanalyse.
  • Commit-basierte Analyse von Code-Repositories zur Vorhersage von Änderungen, Fehlerorten und anderen Ereignissen.
  • Methoden zur automatisierten Fehlererkennung und Programmreparatur.

Seminare

Wir veranstalten offene Seminare und Lesezirkel-Treffen, bei denen wir interessante eigene und fremde Ergebnisse vorstellen. Um Informationen zu bevorstehenden Treffen zu erhalten, treten Sie unserer Meetup-Gruppe bei.

Aufzeichnungen vergangener Seminare finden Sie auf dem YouTube-Kanal.

Gruppenmitglieder

Timofey Bryksin
Leiter Forschungslabor
Anastasia Birillo
Forscherin
Egor Bogomolov
Senior Researcher
Mikhail Evtikhiev
Forscher
Yaroslav Golubev
Senior Researcher
Artyom Lobanov
Forscher
Elena Lyulina
Forscherin
Oleg Smirnov
Forscher
Vladislav Tankov
Senior Researcher
Sergey Titov
Forscher
Anastasia Tuchina
Forscherin
Ilya Vologin
Forscher
Igor Davidenko
Forscher
Alexandra Eliseeva
Forscherin
Denis Litvinov
Forscher
Olga Petrova
Forscherin
Maria Tigina
Forscherin
Anna Vlasova
Forscherin