Título: | RELEVANDO FATORES INTERATIVOS NA DEGRADAÇÃO DO DESIGN DE SOFTWARE | ||||||||||||
Autor: |
DANIEL JOSE BARBOSA COUTINHO |
||||||||||||
Colaborador(es): |
ALESSANDRO FABRICIO GARCIA - Orientador |
||||||||||||
Catalogação: | 28/DEZ/2021 | Língua(s): | INGLÊS - ESTADOS UNIDOS |
||||||||||
Tipo: | TEXTO | Subtipo: | TESE | ||||||||||
Notas: |
[pt] Todos os dados constantes dos documentos são de inteira responsabilidade de seus autores. Os dados utilizados nas descrições dos documentos estão em conformidade com os sistemas da administração da PUC-Rio. [en] All data contained in the documents are the sole responsibility of the authors. The data used in the descriptions of the documents are in conformity with the systems of the administration of PUC-Rio. |
||||||||||||
Referência(s): |
[pt] https://www.maxwell.vrac.puc-rio.br/projetosEspeciais/ETDs/consultas/conteudo.php?strSecao=resultado&nrSeq=56818&idi=1 [en] https://www.maxwell.vrac.puc-rio.br/projetosEspeciais/ETDs/consultas/conteudo.php?strSecao=resultado&nrSeq=56818&idi=2 |
||||||||||||
DOI: | https://doi.org/10.17771/PUCRio.acad.56818 | ||||||||||||
Resumo: | |||||||||||||
Desenvolvedores realizam mudanças de código constantemente durante
a vida de um projeto de software. Essas mudanças podem induzir a degradação
progressiva do design. A degradação do design pode ser reduzida ou
acelerada por fatores que interagem em cada mudança. Esses fatores podem
variar desde uma mudança ou ação de reparo específica – e.g., refatorações
– até a maneira como os desenvolvedores contribuem e discutem mudanças.
Entretanto, estudos anteriores não exploram como esses fatores interagem e
influenciam na degradação do design. Eles apenas focam em alguns fatores e
tendem a os investigar em isolamento. Estudar os fatores em isolamento pode
não explicar adequadamente qual é o conjunto mais relevante de interações
entre fatores e qual sua influência na degradação do design. Isso pode indicar
que abordagens existentes para evitar ou mitigar a degradação do design são
incompletas, já que elas não consideram interações entre fatores que podem
ser relevantes. Portanto, essa dissertação relata uma investigação que almeja
aumentar a compreensão sobre como uma ampla gama de interações entre fatores
pode afetar a degradação do design, para que consequentemente possam
ser investigadas práticas efetivas para evitar ou mitigar esse fenômeno. Para
tal fim, nós realizamos uma análise aprofundada buscando preencher lacunas
no conhecimento existente sobre dois tipos de fatores: fatores relacionados ao
processo (i.e. relacionados às mudanças e seus resultados produzidos) e fatores
relacionados ao desenvolvedor (i.e. relacionados ao desenvolvedor trabalhando
nas mudanças). Nós focamos em analisar os efeitos de possíveis interações entre
os fatores previamente mencionados e uma série de sub-fatores, no que diz
respeito como essas interações afetam módulos que sofreram diferentes níveis
de degradação. Por exemplo, nós observamos que: (1) individualmente, tanto
o sub-fator relacionado ao desenvolvedor que representa um desenvolvedor novato
(que está contribuindo pela primeira vez), quanto o sub-fator relacionado
ao processo que representa tamanho de uma mudança, não se mostraram relacionados
a efeitos negativos na qualidade de código das classes alteradas.
Porém, analisando interações entre fatores, nós observamos que mudanças em
que esses dois fatores interagem tendem a ter um efeito negativo no código,
causando degradação. Interessantemente, esse comportamento não se alterou
mesmo quando mudança foi introduzida através de uma pull request (o que
frequentemente inicia um processo de revisão de código), (2) surpreendentemente,
refatorações de extração frequentemente não tem um efeito positivo
na qualidade do código, enquanto, em contrapartida, as refatorações de movimentação
foram predominantemente positivas. Nós também discutimos como
esses achados apresentados na dissertação podem ajudar desenvolvedores e pesquisadores na melhoria de suas diretrizes sobre como evitar e monitorar a degradação do design.
|
|||||||||||||
|