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
Danny Dig
Wissenschaftlicher Berater
Maksim Sheptyakov
Produktmanagement
Olga Galchenko
Projektmanager
Egor Bogomolov
Senior Researcher
Yaroslav Golubev
Senior Researcher
Rauf Kurbanov
Senior Researcher
Vladislav Tankov
Senior Researcher
Mikhail Arkhipov
Forscher
Elizaveta Artser
Forscherin
Anastasia Birillo
Forscherin
Alexandra Eliseeva
Forscherin
Mikhail Evtikhiev
Forscher
Timur Galimzyanov
Forscher
Evgeniy Glukhov
Forscher
Evgeny Grigorenko
Forscher
Konstantin Grotov
Forscher
Yury Khudyakov
Forscher
Zarina Kurbatova
Forscherin
Denis Litvinov
Forscher
Anna Potriasaeva
Forscherin
Agnia Sergeyuk
Forscherin
Anton Shapkin
Forscher
Oleg Smirnov
Forscher
Maria Tigina
Forscherin
Sergey Titov
Forscher
Timofei Vasilevskii
Forscher
Ilya Vlasov
Forscher
Yaroslav Zharov
Forscher
Dariia Karaeva
Softwareentwickler
Vladimir Poliakov
Softwareentwickler