Laboratório de Ferramentas de Colaboração Inteligentes

Além da codificação, os engenheiros de software passam o mesmo tempo trocando informações e colaborando com os colegas. O trabalho colaborativo em engenharia de software depende cada vez mais de ferramentas especializadas, como mecanismos de comunicação, rastreadores de problemas e plataformas de revisão de código.

O Laboratório de Ferramentas de Colaboração Inteligentes tem o compromisso de obter uma compreensão mais profunda dos processos colaborativos em engenharia de software e outros setores criativos e de elaborar novas abordagens para o suporte de ferramentas para o trabalho colaborativo.

Linhas de pesquisa

Análise do histórico de desenvolvimento

O histórico da atividade coletiva de desenvolvimento é uma rica fonte de dados que pode ser usada para apoiar o processo de desenvolvimento.Para extrair informações valiosas do histórico de desenvolvimento, trabalhamos em abordagens como sistemas de recomendação, modelagem de expertise, mecanismos de análise de dados e técnicas de pergunta-resposta.

Pesquisa sobre revisão de código

Trabalhamos na melhoria de ferramentas de revisão de código com recursos inteligentes baseados na análise das alterações do código e no histórico das comunicações dos desenvolvedores.

Apoio a sistemas de mensageria

Desenvolvemos técnicas para apoiar a aquisição de conhecimento e a funcionalidade da busca em grandes espaços de trabalho de mensageria. Isso inclui sistemas de recomendação e técnicas de pergunta-resposta.

Problemas no desenvolvimento coletivo

Sistematicamente investigamos problemas no trabalho coletivo de engenheiros de software e pesquisamos possíveis maneiras de abordar esses desafios usando ferramentas. Esse processo ajuda a fornecer informações para o nosso trabalho.

Geração de testes e reprodução de falhas

Aplicamos técnicas estabelecidas para a geração de testes e a reprodução de falhas em ferramentas e ambientes de engenharia de software do mundo real e investigamos o uso de modelos grandes de linguagem nessas tarefas.

Seminários

Realizamos seminários abertos e reuniões de clubes de leitura onde apresentamos resultados interessantes, nossos e de outros parceiros.

Participe do grupo de meetups para manter-se informado sobre as próximas sessões.

Você gostaria de apresentar? Basta enviar um e-mail para o Vladimir.

Publicações

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

Bus Factor Explorer

ASE 2023, Luxemburgo

O fator ônibus ("bus factor", BF) é uma métrica que mede a distribuição do conhecimento em um projeto. É o número mínimo de engenheiros que precisaria sair para um projeto ser paralisado. Apesar de haver vários algoritmos para calcular o fator ônibus, há poucas ferramentas que permitem o cálculo fácil desse fator e uma análise conveniente dos resultados em projetos hospedados em provedores baseados em Git.

Apresentamos o Bus Factor Explorer, um aplicativo Web que fornece uma interface e uma API para calcular, exportar e explorar a métrica do fator ônibus através de uma visualização em mapa de árvore, um modo de simulação e um editor de gráficos. O Bus Factor Explorer tem suporte a repositórios hospedados no GitHub e permite pesquisar repositórios na interface e processar vários repositórios ao mesmo tempo. Nossa ferramenta permite que os usuários identifiquem os arquivos e subsistemas em risco de serem paralisados no caso de rotatividade dos desenvolvedores, analisando o histórico do VCS.

O aplicativo e seu código-fonte estão disponíveis publicamente no GitHub em https://github.com/JetBrains-Research/bus-factor-explorer. Um vídeo de demonstração está disponível no 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, Finlândia

Ferramentas populares e modernas de revisão de código (por exemplo, Gerrit e GitHub) ordenam os arquivos de uma revisão em ordem alfabética. Um estudo anterior de projetos de código aberto mostra que as posições dos arquivos alterados na revisão afetam o processo de revisão do código. Esses resultados mostram que arquivos posicionados mais embaixo na ordem têm menos chances de receberem esforços de revisão que os demais arquivos. Portanto, há uma maior chance de problemas nesses arquivos passarem despercebidos. Este artigo explora o impacto da ordem dos arquivos na revisão do código do IntelliJ IDEA, um conhecido projeto do setor de TI. Primeiro, verificamos os resultados do estudo anterior em um grande projeto de software de código fechado. Depois, exploramos uma alternativa à ordem alfabética padrão, ordenando os arquivos alterados pelo diff do seu código. Nossos resultados confirmam as observações do estudo anterior. Descobrimos que os revisores deixam mais comentários em arquivos mostrados em posições superiores na revisão do código. Além disso, os resultados mostram que mesmo com os dados tendendo à ordem alfabética, ordenar os arquivos alterados pelo diff do seu código tem melhor desempenho que a ordem alfabética padrão, no que diz respeito ao posicionamento na revisão de arquivos problemáticos, que demandam mais esforço de revisão. Estes resultados confirmam que é necessário explorar diversas estratégias de ordenamento nas revisões de código.

Membros do Grupo

Vladimir Kovalenko
Chefe de Laboratório
Pouria Derakhshanfar
Pesquisador Sênior
Farid Bagirov
Pesquisador
Kirill Bochkarev
Pesquisador
Mikhail Evtikhiev
Pesquisador
Egor Klimov
Pesquisador
Ekaterina Koshchenko
Pesquisadora
Elena Lyulina
Pesquisadora
Sergey Titov
Pesquisador
Nikolai Sviridov
Desenvolvedor de Software
Arkadii Sapozhnikov
Desenvolvedor de Software
Vahid Haratian
Estagiário
Ekaterina Itsenko
Estagiária
Ekaterina Braun
Estagiária
Evgeniia Kirillova
Estagiária

Membros Anteriores

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