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.
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.
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.
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.
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.
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.
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.
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
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.