Laboratorio de herramientas de colaboración inteligente

Además de la codificación, los ingenieros de software invierten mucho tiempo intercambiando información y colaborando con sus compañeros. El trabajo colaborativo en ingeniería de software se basa cada vez más en herramientas especializadas como motores de comunicación, sistemas de seguimiento de incidencias y plataformas de revisión de código.

Nuestro Laboratorio inteligente de herramientas colaborativas está volcado en comprender más profundamente los procesos colaborativos en la ingeniería de software y otros sectores creativos, y encontrar enfoques novedosos para la compatibilidad de las herramientas de trabajo colaborativo.

Líneas de investigación

Análisis del historial de desarrollo

El historial de la actividad colectiva de desarrollo es una fuente rica de datos que se puede utilizar para respaldar el proceso de desarrollo. Para extraer información útil del historial de desarrollo, trabajamos en enfoques que incluyen sistemas de recomendación, modelos de experiencia, motores de análisis y técnicas de preguntas y respuestas.

Investigación sobre la revisión de código

Trabajamos en mejorar las herramientas de revisión de código con funcionalidades inteligentes basadas en el análisis de los cambios del código y el historial de comunicación de los desarrolladores.

Apoyo a sistemas de mensajería

Desarrollamos técnicas y herramientas para apoyar la adquisición de conocimiento y la funcionalidad de búsqueda en los grandes espacios de trabajo de mensajería instantánea. Esto incluye los sistemas de recomendación y las técnicas de preguntas y respuestas.

Problemas en el desarrollo colectivo

Examinamos sistemáticamente los problemas en el trabajo colectivo de los ingenieros de software e investigamos posibles maneras de abordar estos desafíos con herramientas. Este proceso ayuda a informar de nuestro trabajo.

Generación de pruebas y reproducción de errores

Aplicamos técnicas establecidas para la generación de pruebas y la reproducción de errores en herramientas y entornos de ingeniería de software del mundo real, e investigamos el uso de modelos de lenguaje de gran tamaño para estas tareas.

Seminarios

Organizamos seminarios abiertos y clubs de lectura donde presentamos resultados interesantes, tanto propios como de otras personas.

Únase a nuestro grupo de meetup para no perderse las próximas sesiones.

¿Le gustaría presentar una conferencia? Solo tiene que enviar un correo electrónico a Vladimir.

Publicaciones

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

Bus Factor Explorer

ASE 2023, Luxemburgo

El factor bus (BF) es una métrica que rastrea la distribución del conocimiento en un proyecto. Es el número mínimo de ingenieros que tienen que marcharse para que un proyecto se paralice. A pesar de que existen varios algoritmos para calcular el factor bus, solo unas pocas herramientas permiten calcular fácilmente el factor bus y analizar cómodamente los resultados para proyectos alojados en proveedores basados en Git.

Presentamos Bus Factor Explorer, una aplicación web que proporciona una interfaz y una API para calcular, exportar y explorar la métrica del factor bus mediante la visualización en mapa de árbol, un modo de simulación y un editor de gráficos.Admite repositorios alojados en GitHub y permite buscar repositorios en la interfaz y procesar muchos repositorios al mismo tiempo. Nuestra herramienta permite a los usuarios identificar los archivos y subsistemas que corren el riesgo de bloquearse en caso de rotación de desarrolladores analizando el historial del VCS.

La aplicación y su código fuente están disponibles públicamente en GitHub en https://github.com/JetBrains-Research/bus-factor-explorer. Encontrará el vídeo de demostración en YouTube: https://youtu.be/uIoV79N14z8

Junio de 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, Finlandia

Las herramientas modernas de revisión de código más populares (por ejemplo, Gerrit y GitHub) clasifican los archivos de una revisión de código por orden alfabético. Un estudio previo (sobre proyectos de código abierto) muestra que la posición de los archivos modificados en la revisión del código afecta al proceso de revisión. Sus resultados muestran que los archivos situados más abajo en la lista tienen menos posibilidades de recibir revisiones que los demás archivos. Por lo tanto, existe una mayor probabilidad de no detectar problemas en estos archivos. Este artículo explora el impacto del orden de los archivos en la revisión del código de IntelliJ IDEA, un proyecto muy popular en el sector informático. En primer lugar, verificamos los resultados del estudio anterior en un gran proyecto de software propietario. A continuación, exploramos una alternativa al orden alfabético predeterminado: ordenar los archivos modificados según su diff de código. Nuestros resultados confirman las observaciones del estudio anterior. Descubrimos que los revisores dejan más comentarios en los archivos que aparecen más arriba en la revisión del código. Además, estos resultados muestran que, incluso con los datos sesgados hacia el orden alfabético, ordenar los archivos modificados según su diff de código funciona mejor que el orden alfabético estándar en lo que respecta a colocar los archivos problemáticos, que necesitan más revisión, en la revisión del código. Estos resultados confirman que es necesario explorar más a fondo diversas estrategias de ordenación para la revisión del código.

Miembros del grupo

Vladimir Kovalenko
Responsable del laboratorio
Pouria Derakhshanfar
Investigador sénior
Farid Bagirov
Investigador
Kirill Bochkarev
Investigador
Mikhail Evtikhiev
Investigador
Egor Klimov
Investigador
Ekaterina Koshchenko
Investigadora
Elena Lyulina
Investigadora
Sergey Titov
Investigador
Nikolai Sviridov
Desarrollador de software
Arkadii Sapozhnikov
Desarrollador de software
Vahid Haratian
En prácticas
Ekaterina Itsenko
En prácticas
Ekaterina Braun
En prácticas
Evgeniia Kirillova
En prácticas

Anteriores miembros

Elgun Jabrayilzade
Erdem Tuna
Bilkent University y Picus Security
Alexander Agroskin
Weizmann Institute of Science
Muhammad Umair Ahmed
Ruslan Salkaev