2 research outputs found
Investigating past and present code reviewer recommendation systems
Context: Selecting a code reviewer is an important aspect of software development
and depends on several factors.
Objectives: The aim is to understand existing solutions for code reviewer
recommendation systems (CRRSs), factors to be considered when building
them and various dimensions based on which they can be categorised. Our
goal is to understand important features of CRRSs and what can be improved
in existing CRRSs.
Methods: A literature review study was conducted to understand the existing
CRRSs. A survey of software development project members was conducted
to understand the important and missing features in CRRSs.
Results: We categorized the selected papers into two categories: based on
the data type used to make recommendations and the kind of project used for
evaluation. The survey helped us understand the features missing in CRRSs
and observe some trends and patterns
Recomendação de revisores de código no desenvolvimento distribuído de software
Code review is one of the main software defect mitigation techniques. Intrinsically
collaborative, the process involves the analysis of source code modifications by technical peer in adherence to the guidelines of each repository. However, the efficiency of this approach is directly associated with choosing the appropriate technical peers to conduct the scrutiny. Especially in global software development, where members of the development team are geographically scattered with time and availability constraints and there are cultural and technical differences, choosing the reviewer becomes a complex task without the aid of computational tools. The aim of this paper is to present Gitrev, a tool that gathers reviewer recommendation methods for distributed software development that enhance collaboration in the review process. Taking into account the particularities of decentralised production processes, the proposed methods are based on historical interactions between developers, through the design of a collaborative network based on data from GitHub hosted open source repositories. The evaluation of the presented solution is a historic research based on the related literature and objective metrics of efficiency of the reviewers’ participation and instantiated on four major projects available on the platform. The results shows the recommended reviewers enhance interaction and collaboration among team members and adhere significantly to the objectives of the review process.A revisão de código é uma das principais técnicas de diminuição de defeitos de
software. Intrinsecamente colaborativo, o processo envolve a análise das modificações no código fonte por um revisor, de acordo com as diretrizes de cada repositório. Contudo, a eficiência da técnica está diretamente associada à escolha dos pares técnicos adequados para realizar o escrutínio. Especialmente no Desenvolvimento Distribuído de Software (DDS), onde os membros da equipe de desenvolvimento estão espalhados geograficamente com restrições de horário e disponibilidade, além de diferenças culturais e técnicas, a escolha do revisor vira tarefa complexa sem auxílio de ferramentas computacionais. O objetivo do presente trabalho é apresentar o GitRev, uma plataforma que reúne diferentes métodos de recomendação de revisores para o desenvolvimento distribuído de software, potencializando a colaboração no processo de revisão. Levando em consideração as particularidades dos processos descentralizados de produção, são propostos métodos baseados nas interações históricas entre os desenvolvedores. Esta análise é realizada através da modelagem de uma rede social colaborativa tendo como base os dados oriundos dos repositórios open source hospedados no GitHub. Uma pesquisa histórica é conduzida para avaliar a solução apresentada, calcada na literatura relacionada e em métricas objetivas de eficiência da participação dos revisores e instanciado em quatro grandes projetos disponíveis na plataforma. Com os resultados obtidos, é possível observar que os revisores recomendados aumentam a interação e colaboração entre os envolvidos e aderem significativamente aos objetivos do processo de revisão