Laboratoire intelligent d’outils de collaboration

En plus du codage, les ingénieurs logiciels passent autant de temps à échanger des informations et à collaborer avec leurs collègues. Le travail collaboratif en génie logiciel repose de plus en plus sur des outils spécialisés comme les moteurs de communication, les outils de suivi des problèmes et les plateformes d’examen de code.

Notre Laboratoire d'outils de collaboration intelligente s'engage à approfondir sa compréhension des processus de collaboration dans le génie logiciel et d'autres secteurs d'activité créatifs, ainsi qu'à concevoir de nouvelles approches de prise en charge d'outils pour le travail collaboratif.

Orientations de recherche

Analyse des traces de développement

Les traces d'activités de développement collectif constituent une source riche de données pouvant être utilisées pour soutenir le processus de développement. Pour extraire des informations exploitables de l'historique de développement, nous travaillons sur des approches qui incluent les systèmes de recommandation, la modélisation de l'expertise, les moteurs d'analyse et les techniques de type questions-réponses.

Recherches sur la révision de code

Nous travaillons à améliorer les outils de révision de code grâce à des fonctionnalités intelligentes basées sur l'analyse des modifications apportées au code et sur l'historique de communication des développeurs.

Support de messagerie

Nous développons des techniques et des outils pour soutenir l'acquisition de connaissances et les fonctionnalités de recherche au sein de vastes espaces de travail de messagerie. Cela inclut les systèmes de recommandation et les techniques de questions-réponses.

Problème dans le développement collectif

Nous examinons systématiquement les problèmes au niveau du travail collectif des ingénieurs logiciels pour comprendre quels outils permettraient de les résoudre. Ce processus contribue à fournir des informations pour notre travail.

Génération de tests et reproduction des pannes

Nous appliquons des techniques éprouvées pour la génération de tests et la reproduction des pannes dans des outils et environnements d'ingénierie logicielle réalistes. Nous explorons également l'utilisation de grands modèles de langage (LLM) pour ces tâches.

Séminaires

Nous organisons des séminaires ouverts et des réunions de club de lecture pour présenter des résultats intéressants, qu'ils soient les nôtres ou ceux d'autres personnes.

N'hésitez pas à rejoindre notre groupe meetup pour rester informé·e des sessions à venir.

Vous souhaitez animer une conférence ? Il vous suffit d'envoyer un e-mail à Vladimir.

Publications

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

Bus Factor Explorer

ASE 2023, Luxembourg

Le facteur d'autobus (de l'anglais Bus Factor - BF) est un indicateur qui mesure la répartition des connaissances dans un projet. Il correspond au nombre minimal d'ingénieurs dont le départ compromettrait la poursuite du projet. Si plusieurs algorithmes permettent de calculer le facteur d'autobus, seuls quelques outils permettent de le faire rapidement et d'obtenir une analyse pratique des résultats pour les projets hébergés sur des fournisseurs basés sur Git.

Nous avons développé Bus Factor Explorer, une application web qui offre une interface et une API pour calculer, exporter et examiner le facteur d'autobus au moyen d'arborescences, d'un mode de simulation et d'un éditeur de graphiques. Elle prend en charge les référentiels hébergés sur GitHub et permet d'y effectuer des recherches dans l'interface et de traiter de nombreux référentiels en même temps. Notre outil permet aux utilisateurs d'identifier les fichiers et les sous-systèmes qui risquent d'être bloqués en cas de forte rotation des développeurs en analysant l'historique du système de contrôle de version.

L'application et son code source sont disponibles publiquement sur GitHub à l'adresse https://github.com/JetBrains-Research/bus-factor-explorer. La vidéo de démonstration est disponible sur YouTube : 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, Finlande

Les outils modernes de révision de code les plus populaires, tels que Gerrit et GitHub, trient les fichiers à réviser par ordre alphabétique. Une étude précédente (sur des projets open-source) a démontré que la position des fichiers modifiés dans la révision du code affecte le processus de révision. Ainsi, les fichiers situés plus bas dans la liste ont moins de chances d'être examinés que les autres. Par conséquent, il est plus probable de manquer des défauts dans ces fichiers. Cet article explore l'impact de l'ordre des fichiers lors de la révision du code dans IntelliJ IDEA, une solution reconnue dans l'industrie informatique. Tout d'abord, nous vérifions les résultats de l'étude précédente sur un gros projet logiciel propriétaire. Ensuite, nous explorons une solution autre que l'ordre alphabétique par défaut : nous trions les fichiers modifiés en fonction de leur diff de code. Nos résultats confirment les observations de l'étude précédente. Nous constatons que les réviseurs font davantage de commentaires dans les fichiers figurant en tête du processus de révision du code. De plus, ces résultats montrent que, même si les données suivent l'ordre alphabétique, le tri des fichiers modifiés en fonction de leur diff de code est plus efficace que l'ordre alphabétique standard concernant le placement des fichiers problématiques, qui nécessitent davantage de travail de révision. Ces résultats confirment que l'étude des différentes stratégies de tri en vue de la révision du code doit être approfondie.

Membres du groupe

Vladimir Kovalenko
Chef de laboratoire
Pouria Derakhshanfar
Chercheur principal
Farid Bagirov
Chercheur
Kirill Bochkarev
Chercheur
Mikhail Evtikhiev
Chercheur
Egor Klimov
Chercheur
Ekaterina Koshchenko
Chercheuse
Elena Lyulina
Chercheuse
Sergey Titov
Chercheur
Nikolai Sviridov
Développeur de logiciels
Arkadii Sapozhnikov
Développeur de logiciels
Vahid Haratian
Stagiaire
Ekaterina Itsenko
Stagiaire
Ekaterina Braun
Stagiaire
Evgeniia Kirillova
Stagiaire

Anciens membres

Elgun Jabrayilzade
Erdem Tuna
Bilkent University et Picus Security
Alexander Agroskin
Weizmann, Institute de sciences
Muhammad Umair Ahmed
Ruslan Salkaev