???item.export.label??? ???item.export.type.endnote??? ???item.export.type.bibtex???

Please use this identifier to cite or link to this item: http://tede2.uefs.br:8080/handle/tede/1554
???metadata.dc.type???: Dissertação
Title: O impacto de fatores contextuais na incidência de code smells: um estudo exploratório baseado em mineração de repositório de software
???metadata.dc.creator???: Jesus, Elivelton Cerqueira de 
???metadata.dc.contributor.advisor1???: Santos, José Amancio Macedo
???metadata.dc.description.resumo???: O impacto de fatores contextuais na incidência de code smells: um estudo exploratório baseado em mineração de repositório de software Contexto: Code Smell é uma metáfora criada para descrever estruturas de código resultantes de design ou prática de programação aplicadas de forma potencialmente inadequada. Estudos apresentam code smells como indício de ameaça `a qualidade do software. Entretanto, a adoção do conceito de code smells na prática do desenvolvimento de software ainda não pode ser considerada uma realidade, pelo menos em determinados contextos. Devido à natureza do software, estabelecer contextos precisos para adoção de conceitos, métodos e técnicas não é trivial. Diversos fatores podem estar associados ao contexto em que um software é desenvolvido. Estes fatores podem ser técnicos, humanos ou sociais. Apesar dos estudos relacionados a fatores contextuais terem recebido atenção nos úlltimos anos, poucos trabalhos abordam o tema considerando a relação entre fatores contextuais e code smells. Objetivo: O objetivo deste trabalho é analisar a relação entre a incidência de code smells e fatores contextuais do software. Mais especificamente, o trabalho visa explorar como diferentes tipos de smells estão relacionados com determinados fatores, de forma independente ou combinados para formar diferentes contextos. Método: Estão sendo utilizados 419 sistemas, considerando 4 fatores contextuais que são: Tamanho do Sistema, Número de Mudancas, Número de Contribuidores e Tempo de Desenvolvimento. Foram considerados 7 tipos de code smells, que são amplamente discutidos na literatura: Brain Class, Brain Method, Complex Method, Data Class, Feature Envy, God Class, e Long Method. Executamos um processo de extração dos fatores contextuais através de uma ferramenta de mineração de repositórios de software e realizamos um processo de classificação com o objetivo de realizar um agrupamento desses fatores contextuais. Após isso, iniciamos o processo de análise dos resultados coletados, utilizando recursos da estatística inferencial. Resultados: Os resultados indicam que Tamanho de Sistema é o fator contextual que impacta mais fortemente na incidência de diferentes tipos de code smells. Em algumas situações, como aconteceu com Data Class, Brain Class, Feature Envy e Brain Method, Tamanho do Sistema impacta na incidência destes code smells, independente da combinação deste fator com os outros estudados. Outros fatores também impactam de forma diferente na incidência de alguns tipos de code smells estudados. Por exemplo, o fator contextual Tempo de Desenvolvimento impacta na incidência de God Class e Brain Class. Para esses dois code smells, Tempo de Desenvolvimento impacta na incidência, independente da combinação com os outros fatores contextuais. Isso evidencia a forte relação entre o fator e os code smells em questão. Conclusão: Este estudo contribui para ampliar o conjunto de dados empíricos sobre a relevância dos fatores contextuais em relação aos code smells. Apresenta também um conjunto de dados sobre code smells e fatores contextuais de 419 softwares obtidos a partir de mineração de repositório. Por ser apresentado como estudo exploratório, o principal achado deste trabalho está na demonstração de que a qualidade de projetos de software tem relação com o contexto em que os softwares são desenvolvidos. Nessa perspectiva, adotar o conceito de code smell na prática do desenvolvimento de software, sem levar em conta o contexto em que este é desenvolvido, pode levar a resultados enviesados, ou até distorcidos da realidade de como os code smells afetam ou surgem no sistemas.
Abstract: Context: Code Smells is a metaphor created to describe code structures resulting from potentially inappropriately applied programming design or practice. Studies present code smells as an indication of threat to software quality. However, the adoption of the concept of code smells in the practice of software development cannot yet be considered a reality, at least in certain contexts. Due to the nature of the software, establishing precise contexts for the adoption of concepts, methods and techniques is not trivial. Several factors can be associated with the context in which a software is developed. These factors can be technical, human or social. Although studies related to contextual factors have received attention in recent years, few studies address the issue considering the relationship between contextual factors and code smells. Objective: The objective of this work is to analyze the relationship between the incidence of code smells and contextual factors in the software. More specifically, the work aims to explore how different types of code smells are related to certain factors, independently or combined to create different contexts. Method: For this, 419 systems are being used, considering 4 contextual factors which are: System Size, Number of Changes, Number of Contributors and Development Time. Seven types of code smells were considered, which are widely discussed in the literature: Brain Class, Brain Method, Complex Method, Data Class, Feature Envy, God Class, and Long Method. We performed a process of extracting contextual factors through a software repositories mining tool and performed a classification process with the objective of grouping these contextual factors. After that, we started the process of analyzing the collected results, using resources of inferential statistics. Results: The results indicate that System Size is the contextual factor that most strongly impacts the incidence of different types of code smells. In some situations, as with Data Class, Brain Class, Feature Envy and Brain Method, System Size impacts the incidence of these code smells, regardless of the context in which it is observed. Other factors also impact differently the incidence of some types of code smells studied. For example, the Time of Development contextual factor impacts the incidence of God Class and Brain Class. For these two code smells, Development Time impacts incidence, regardless of the combination with the other contextual factors. This evidences the strong relationship between the factor and the code smells in question. Conclusion: This study contributes to expanding empirical data on the relevance of contextual factors in relation to code smells. It also presents a dataset on code smells and contextual factors of 419 software obtained from repositories mining. As it is presented as an exploratory study, the main finding of this work is the demonstration that the quality of software projects is related to the context in which the software is developed. From this perspective, adopting the concept of code smell in thepractice of software development, without taking into account the context in whichit is developed, can lead to biased results, or even distorted from the reality of howcode smells affect or arise in systems.
Keywords: Code smell
Projeto de software
Fatores contextuais
Mineração de repositório de software
Code smell
Software design
Contextual factors
Software repository mining
???metadata.dc.subject.cnpq???: CIENCIA DA COMPUTACAO::TEORIA DA COMPUTACAO
Language: por
???metadata.dc.publisher.country???: Brasil
Publisher: Universidade Estadual de Feira de Santana
???metadata.dc.publisher.initials???: UEFS
???metadata.dc.publisher.department???: DEPARTAMENTO DE TECNOLOGIA
???metadata.dc.publisher.program???: Programa de Pós-Graduação em Ciência da Computação
Citation: JESUS, Elivelton Cerqueira. O impacto de fatores contextuais na incidência de code smells: um estudo exploratório baseado em mineração de repositório de software. 2022. 75 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Estadual de Feira de Santana, Feira de Santana, 2022.
???metadata.dc.rights???: Acesso Aberto
URI: http://tede2.uefs.br:8080/handle/tede/1554
Issue Date: 14-Dec-2022
Appears in Collections:Coleção UEFS

Files in This Item:
File Description SizeFormat 
DISSERTAÇÃO - Elivelton Cerqueira de Jesus.pdfDissertação - Elivelton Cerqueira de Jesus1.43 MBAdobe PDFDownload/Open Preview


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.