@MASTERSTHESIS{ 2022:1919406729, 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}, year = {2022}, url = "http://tede2.uefs.br:8080/handle/tede/1554", abstract = "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.", publisher = {Universidade Estadual de Feira de Santana}, scholl = {Programa de Pós-Graduação em Ciência da Computação}, note = {DEPARTAMENTO DE TECNOLOGIA} }