Inter-relação entre smells - uma análise de Large Class, Complex Class e Clone
Ano de defesa: | 2019 |
---|---|
Autor(a) principal: | |
Orientador(a): | |
Banca de defesa: | |
Tipo de documento: | Tese |
Tipo de acesso: | Acesso aberto |
Idioma: | por |
Instituição de defesa: |
Universidade Federal de Uberlândia
Brasil Programa de Pós-graduação em Ciência da Computação |
Programa de Pós-Graduação: |
Não Informado pela instituição
|
Departamento: |
Não Informado pela instituição
|
País: |
Não Informado pela instituição
|
Palavras-chave em Português: | |
Link de acesso: | https://repositorio.ufu.br/handle/123456789/24948 http://dx.doi.org/10.14393/ufu.te.2019.1231 |
Resumo: | Bad smells have been defined to describe potential problems in code, possibly pointing out refactoring opportunities. Several empirical studies have highlighted that bad smells have a negative impact on the comprehension and maintainability of a software systems. Consequently, their identification has received recently attention from researchers who have proposed various approaches to detect and restructure them. However, studies on the inter-relationship of occurrences in source code of different types of bad smells are still lacking, especially those focused on the quantification of this inter-relationship. Thus, in this work, we describe and present an empirical study on the inter-relation of smells Large Class, Complex Class and Duplicate Code. As one of the main results of the inter-relation, we highlight that there are "occurrence patterns" among these smells, for example: in the co-occurrence of Large Class and Complex Class, the clones are predominantly intra-class. Possibly, these patterns can be used to improve the performance of detection tools or even help in refactoring tasks. We also present a study of the chronology of smells, it is characterized by tracing the ancestry of a given entity that exhibits some smell. The results indicate that, after a certain initial period of the systems, the proportion of classes without smell is greater than the quantity with some smell. Furthermore, throughout the systems life cycle, several classes are deleted and/or they migrate from the repositories. This has an impact on the tools that help developers, because they do not consider this phenomenon. In addition, we also demonstrate a metric able to separating classes into groups ("Removed" and "Not Removed"). Finally, we present some situations that the smells have a cyclic behavior and rarely, the simple occurrence of smell becomes a co-occurrence. The results presented revealed findings that complement the state of the art in the literature. Therefore, the findings have an impact on the area of smells, in particular to the development of a new generation of tools. |