Labor für intelligente Kollaborationstools

Neben dem Programmieren verbringen Software-Ingenieur*innen ebenso viel Zeit damit, Informationen auszutauschen und mit Kolleg*innen zusammenzuarbeiten. Die Zusammenarbeit im Software-Engineering beruht zunehmend auf spezialisierten Tools wie Kommunikations-Engines, Issue Trackers und Code-Review-Plattformen.

Unser Labor für intelligente Kollaborationstools hat sich dem Ziel verschrieben, tiefgehende Erkenntnisse über kollaborative Prozesse in der Softwareentwicklung und in anderen kreativen Branchen zu gewinnen und neue Ansätze für die Unterstützung der Zusammenarbeit durch Tools zu entwickeln.

Forschungsrichtungen

Analyse von Ablaufverfolgungen der Entwicklung

Die Ablaufverfolgungen der kollektiven Entwicklungsaktivitäten sind eine reichhaltige Datenquelle, die zur Unterstützung des Entwicklungsprozesses genutzt werden kann. Um wertvolle Informationen aus dem Entwicklungsablauf zu gewinnen, arbeiten wir an Ansätzen, die Empfehlungssysteme, Kompetenzmodellierung, Analysemaschinen und Frage-Antwort-Techniken umfassen.

Forschung zur Code-Reviews

Wir arbeiten an der Verbesserung von Code-Review-Tools mit intelligenten Funktionen, die auf der Analyse von Code-Änderungen und der Kommunikation zwischen Entwickler*innen beruhen.

Messaging-Unterstützung

Wir entwickeln Methoden und Tools zur Unterstützung des Wissenserwerbs und der Suchfunktionen in großen Messenger-Arbeitsbereichen. Dazu gehören Empfehlungssysteme und Frage-Antwort-Methoden.

Probleme bei der gemeinsamen Entwicklung

Wir untersuchen systematisch Probleme bei der Zusammenarbeit von Softwareentwickler*innen und suchen nach Möglichkeiten, diese Herausforderungen mit Tools zu bewältigen. Dieser Prozess dient als Grundlage für unsere Arbeit.

Testgenerierung und Reproduktion von Abstürzen

Wir setzen etablierte Methoden für die Testgenerierung und die Reproduktion von Abstürzen in realen Softwareentwicklungstools und -Umgebungen ein und untersuchen den Einsatz von großen Sprachmodellen für diese Aufgaben.

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.

Möchten Sie eine Präsentation halten? Schreiben Sie Vladimir einfach eine E-Mail.

Publikationen

September 2023
Egor Klimov, Muhammad Umair Ahmed, Nikolai Sviridov, Pouria Derakhshanfar, Eray Tuzun, Vladimir Kovalenko

Bus Factor Explorer

ASE 2023, Luxemburg

Der Bus-Faktor (BF) ist eine Kennzahl, die die Verteilung von Wissen in einem Projekt erfasst. Es ist die Mindestanzahl von Entwickler*innen, die ausfallen müssen, damit ein Projekt zum Stillstand kommt. Obwohl es mehrere Algorithmen zur Berechnung des Bus-Faktors gibt, ermöglichen nur wenige Tools eine einfache Berechnung des Bus-Faktors und eine bequeme Analyse der Ergebnisse für Projekte, die auf Git-basierten Providern gehostet werden.

Wir stellen den Bus Factor Explorer vor, eine Webanwendung, die eine Schnittstelle und eine API zur Berechnung, zum Export und zur Erkundung der Bus-Faktor-Metrik über eine Treemap-Visualisierung, einen Simulationsmodus und einen Diagrammeditor bietet. Es unterstützt Repositories, die auf GitHub gehostet werden, und ermöglicht es, Repositories in der Benutzeroberfläche zu suchen und viele Repositories gleichzeitig zu bearbeiten. Unser Tool ermöglicht es den Benutzer*innen, die Dateien und Subsysteme zu identifizieren, bei denen die Gefahr besteht, dass sie im Falle eines Entwicklerwechsels ins Stocken geraten, indem der VCS-Verlauf analysiert wird.

Die Anwendung und ihr Quellcode sind auf GitHub unter https://github.com/JetBrains-Research/bus-factor-explorer öffentlich zugänglich. Das Demonstrationsvideo ist auf YouTube zu finden: https://youtu.be/uIoV79N14z8

June 2023
Farid Bagirov, Pouria Derakshanfar, Alexey Kalina, Elena Kartysheva, Vladimir Kovalenko

Assessing the Impact of File Ordering Strategies on Code Review Process

EASE 2023, Oulu, Finnland

Beliebte moderne Code-Review-Tools (z. B. Gerrit und GitHub) sortieren die Dateien in einem Code-Review in alphabetischer Reihenfolge. Eine frühere Studie (zu Open-Source-Projekten) hat gezeigt, dass die Position der geänderten Dateien in der Code-Review den Review-Prozess beeinflusst. Die Ergebnisse zeigen, dass Dateien, die in der Reihenfolge weiter unten stehen, eine geringere Chance haben, geprüft zu werden, als die anderen Dateien. Daher ist die Wahrscheinlichkeit höher, dass in diesen Dateien Fehler fehlen. In diesem Beitrag wird der Einfluss der Dateireihenfolge beim Code-Review des bekannten IT-Projekts IntelliJ IDEA untersucht. Zunächst verifizieren wir die Ergebnisse der vorherigen Studie an einem großen proprietären Softwareprojekt. Dann untersuchen wir eine Alternative zur standardmäßigen alphabetischen Reihenfolge: die Anordnung der geänderten Dateien nach ihrem Code-Diff. Unsere Ergebnisse bestätigen die Beobachtungen der früheren Studie. Wir stellen fest, dass die Prüfer*innen mehr Kommentare zu den Dateien hinterlassen, die im Code-Review weiter oben stehen. Darüber hinaus zeigen diese Ergebnisse, dass selbst bei Daten, die auf die alphabetische Reihenfolge ausgerichtet sind, die Reihenfolge der geänderten Dateien nach ihrem Code-Diff besser ist als die standardmäßige alphabetische Reihenfolge, wenn es darum geht, problematische Dateien, die einen höheren Überprüfungsaufwand erfordern, im Code-Review zu platzieren. Diese Ergebnisse bestätigen, dass verschiedene Ordnungsstrategien für die Codeüberprüfung weiter erforscht werden müssen.

Gruppenmitglieder

Vladimir Kovalenko
Leiter Forschungslabor
Pouria Derakhshanfar
Senior Researcher
Farid Bagirov
Forscher
Kirill Bochkarev
Forscher
Mikhail Evtikhiev
Forscher
Egor Klimov
Forscher
Ekaterina Koshchenko
Forscherin
Elena Lyulina
Forscherin
Sergey Titov
Forscher
Nikolai Sviridov
Softwareentwickler
Arkadii Sapozhnikov
Softwareentwickler
Vahid Haratian
Praktikant
Ekaterina Itsenko
Praktikantin
Ekaterina Braun
Praktikantin
Evgeniia Kirillova
Praktikantin

Ehemalige Mitglieder

Elgun Jabrayilzade
Erdem Tuna
Bilkent-Universität und Picus Security
Alexander Agroskin
Weizmann-Institut für Wissenschaften
Muhammad Umair Ahmed
Ruslan Salkaev