Use este identificador para citar o ir al link de este elemento: http://hdl.handle.net/1843/35426
Tipo: Dissertação
Título: Bad smell agglomerations and their impact on software modularity
Título(s) alternativo(s): Aglomerações de anomalias de código e seu impacto na modularidade de software
Autor(es): Amanda Damasceno Santana
primer Tutor: Eduardo Magno Lages Figueiredo
primer miembro del tribunal : André Cavalcante Hora
Segundo miembro del tribunal: Marcelo de Almeida Maia
Resumen: Most systems must evolve to cope with new stakeholders requirements, or to fix existing problems. These changes are complex due to several factors, including the need of understanding the source code, activity that is impaired by the presence of bad smells. Bad smell is a symptom of bad decisions about the system design or code. When two or more bad smells occur in the same snippet of code, they form an agglomeration. Consequently, developers need to put more effort to perform their development and maintenance tasks. In this work, we evaluate agglomerations composed of four kinds of bad smells: Large Class, Long Method, Feature Envy, and Refused Bequest. We aim at evaluating how these agglomerations are spread in the source code, and how they impact on the software modularity. Our results are achieved through the use of association rules and effect size measurements. We have found that classes with two or more smells are frequent in the source code, even when the smells present in the class are of the same type. We also observed that agglomerations are the most spread in the source code, even when the size of the systems are taken into account. Agglomerations have a significant effect on most analyzed modularity metrics. This result means that they may affect class complexity, fault proneness, and coupling.
Abstract: A maioria dos sistemas devem evoluir a fim de implementar novos requisitos dos stakeholders, ou para corrigir problemas existentes. Estas mudanças são complexas devido a diversos fatores, incluindo a necessidade de compreender o código fonte do sistema, atividade que é prejudicada pela presença de anomalias de código. Anomalias de código são sintomas de más decisões sobre o projeto do sistema ou simplesmente de seu código. Contudo, quando duas ou mais anomalias acontecem no mesmo pedaço de código, elas formam uma aglomeração. Consequentemente, desenvolvedores precisam se esforçar muito mais para realizar suas atividades de desenvolvimento e manutenção. Neste trabalho, nós avaliamos aglomerações formadas por quatro tipos de anomalias: Large Class, Long Method, Feature Envy e Refused Bequest. Nosso objetivo é avaliar como estas aglomerações estão espallhadas no código fonte, e como elas impactam na modularidade do software. Nossos resultados são alcançados através do uso de regras de associação e medidas de tamanho do efeito. Nós encontramos que classes com duas ou mais anomalias são frequentes no código fonte, até mesmo quando consideramos somente o mesmo tipo de anomalia. Elas também são altamente espalhadas no código fonte, mesmo quando o tamanho do sistema é levado em consideração. Também, nós descobrimos que elas realmente impactam a modularidade. Estes resultados significam que elas podem afetar a complexidade da classe, torná-las mais propensas a problemas, e mais acopladas a outras classes.
Asunto: Computação – Teses.
Bad smell – Teses.
Aglomeração – Teses.
Anomalias de código (Engenharia de software) – Teses.
Software - Reutilização – Teses.
Idioma: eng
País: Brasil
Editor: Universidade Federal de Minas Gerais
Sigla da Institución: UFMG
Departamento: ICEX - INSTITUTO DE CIÊNCIAS EXATAS
Curso: Programa de Pós-Graduação em Ciência da Computação
Tipo de acceso: Acesso Restrito
URI: http://hdl.handle.net/1843/35426
Fecha del documento: 30-oct-2020
Término del Embargo: 30-oct-2021
Aparece en las colecciones:Dissertações de Mestrado

archivos asociados a este elemento:
archivo Descripción TamañoFormato 
Amanda Santana - Dissertação.pdf959.82 kBAdobe PDFVisualizar/Abrir


Los elementos en el repositorio están protegidos por copyright, con todos los derechos reservados, salvo cuando es indicado lo contrario.