Abstract:
RESUMO: Durante o desenvolvimento de software é comum o uso de ferramentas para armazenar
ou compartilhar informações entre a equipe. Essas informações podem ser documentos
ou o próprio código fonte do projeto que está sendo desenvolvido. Uma das ferramentas
mais utilizadas são os sistemas de controle de versão. Por meio desses sistemas é possível
obter informações valiosas acerca do processo de desenvolvimento, dos membros da equipe
e até mesmo da empresa. Essas informações podem ser utilizadas para apoiar diversas
outras atividades também ligadas ao desenvolvimento, como a manutenção de sistemas,
aprimorar o design e reutilização do software, além de servir para, empiricamente, validar
novas ideias ou técnicas. Neste trabalho as contribuições dos desenvolvedores para código
do projeto, obtidas a partir dos commits feitos ao sistema de controle de versão, são
utilizadas para inferir a familiaridade que cada membro da equipe tem com o código fonte.
O cálculo da familiaridade usa ainda métricas para tratar de aspectos relacionados ao
desenvolvimento de software e ao próprio ser humano, como a sua capacidade de esquecer
algo que implementou ao longo do tempo ou a possibilidade de alterações por outro
desenvolvedor naquilo que foi feito. Para facilitar a visualização da familiaridade de código
foi criada uma ferramenta denominada CoDiVision. O uso da familiaridade com o código
foi avaliado em alguns contextos, iniciando no contexto educacional, auxiliando professores
na atribuição de notas aos alunos de disciplinas de programação, bem como no apoio aos
gerentes de projeto, facilitando a identificação dos membros com maior familiaridade com
o código. Essas avaliações indicam que o as métricas desenvolvidas e a ferramenta criada
podem ser importantes aliados no desenvolvimento de software. ABSTRACT: In the software development the use of tools to store or share information between staff is
common. This information may be some documents or all the source code of the project
in development. One of the most used tools is the version control system. What not
everyone knows is that besides tools to assist the development process, these systems store
valuable information about a project and even about a company. This information can
be used to support on several other tasks also related to development, such as systems
management, improve the design and software reuse, and to empirically validate new ideas
or techniques. In this work the contributions of developers to design code, obtained from
the commits made to the version control system, are used to infer the familiarity that
each team member has with the project code. Besides the contributions, we created some
metrics to address issues related to software development and the some human aspects, as
their capacity to forget something implemented over time or the possibility of the code has
to be overwritten by another developer. To allow the code familiarity visualization of the
project structure, we created a tool called CoDiVision. Through the assessments it was
noticed that the information obtained in this process can be used for various purposes such
as supporting teachers in the choice the note of the students in programming disciplines,
or in supporting project managers in the discovery of the members with greater familiarity
with the purpose of giving more agility to the project by assigning taks to members with
greater familiarity, or in better distribution of familiarity in order to avoid possible losses
arising from the lack of a member with high familiarity. Still can help the development
teams in search of members with greater familiarity to take out doubts about the project
code.