[pt] O desenvolvimento de código vem sendo executado de forma colaborativa há
muito tempo. Plataformas, como o GitHub, contribuem para esse processo
com vários mecanismos. Pull Request é um deles, e permite aos desenvolvedores
enviarem suas contribuições para um repositório, onde essas mudanças
podem ser discutidas e revisadas antes de serem integradas ao código principal.
Um dos objetivos desse processo é evitar um fenômeno chamado design
decay, que ocorre quando estruturas de pobres de design são introduzidas
no código fonte. Como resultado, o projeto pode se tornar difícil de manter
e evoluir. As técnicas existentes usam sintomas de código fonte (e.g., mal
cheiros de código) para identificar a manifestação de design decay. No entanto,
esses sintomas só podem identificar design decay que já se ocorreu.
Assim, nesta dissertação, investigamos três aspectos sociais para prever a
manifestação de design decay em projetos de código aberto. Dinâmica de
comunicação representa informações sobre os papéis dos contribuidores e
aspectos temporais das discussões. Conteúdo da discussão é a informação
sendo trocada entre participantes de uma contribuição. Finalmente, dinâmica
organizacional representa as características da equipe. A manifestação
desses aspectos sociais ao longo do desenvolvimento de software pode induzir
comportamentos que possivelmente afetam a qualidade do código. No
entanto, nenhum estudo anterior investigou a sua influência no design decay.
Assim, buscamos evidências sobre como esses três aspectos influenciam
na manifestação de design decay. Para atingir esse objetivo, nós introduzimos
um conjunto de métricas para caracterizar aspectos sociais num modelo
de desenvolvimento baseado em pull requests. Então, nós analisamos sete
projetos, extraindo seus commits e pull requests. Nossos resultados revelam
que: (i) métricas sociais podem ser usadas para discriminar as pull requests
que impactam na manifestação de design decay daquelas que não impactam;
(ii) vários fatores da dinâmica da comunicação estão relacionados ao design
decay. No entanto, os fatores temporais superam os fatores dos papéis dos
participantes como indicadores de design decay; e (iii) aspectos relacionados
à dinâmica organizacional, como o número de novatos, surpreendentemente,
não estão associados a manifestação de design decay. / [en] Code development has been performing collaboratively for a long time. Platforms,
such as GitHub, contribute to this process with various mechanisms.
Pull Request is a mechanism that allows developers to submit their contributions
to a project. Then, these changes can be discussed, analyzed, and
reviewed before being integrated into the repository. One of the goals of this
process is to avoid a phenomenon called design decay. It occurs when poor
design structures are introduced in a project. As a result, the project may
become difficult to maintain and evolve. Existing techniques use source code
symptoms (e.g., code smells) to identify the manifestation of design decay.
Nevertheless, such symptoms can only be used to identify design decay that
is already present in the project. Thus, in this dissertation, we investigated
the exploration of three social aspects to predict the manifestation of design
decay on open-source projects as follows. Communication Dynamics represents
information about contributor s roles and temporal aspects of their
discussions. Discussion Content is the information being exchanged among
participants of a contribution. Finally, Organizational Dynamics represents
characteristics of the team organization. The manifestation of these social
aspects along software development can induce behaviors that possibly affect
the design quality. However, no previous study has investigated the
influence of such social aspects on the manifestation of design decay. Thus,
we aim to shed light on how these three aspects influence the design decay.
To achieve this goal, we introduced a suite of metrics for characterizing social
aspects in pull-based software development. Then, we analyzed seven
open-source projects, mining both their commits and pull requests. Our results
reveal that: (i) many social metrics, e.g., Discussion Length, can be
used to discriminate between pull requests that impact on the manifestation
of design decay from the ones that do not impact; (ii) various factors
of communication dynamics, such as Number of Users, are related to design
decay. Nevertheless, temporal factors of communication dynamics outperform
the participant roles as indicators of design decay; and (iii) aspects
related to organizational dynamics, such as the number of newcomers, are
surprisingly not associated with design decay manifestation.
Identifer | oai:union.ndltd.org:puc-rio.br/oai:MAXWELL.puc-rio.br:53491 |
Date | 01 July 2021 |
Creators | CAIO BARBOSA VIEIRA DA SILVA |
Contributors | ALESSANDRO FABRICIO GARCIA, ALESSANDRO FABRICIO GARCIA |
Publisher | MAXWELL |
Source Sets | PUC Rio |
Language | English |
Detected Language | English |
Type | TEXTO |
Page generated in 0.0022 seconds