On the Interplay of Smells Large Class, Complex Class and Duplicate Code
Autor: | Elder Vicente de Paulo Sobrinho, Marcelo de Almeida Maia |
---|---|
Rok vydání: | 2021 |
Předmět: |
FOS: Computer and information sciences
Source code business.industry Computer science media_common.quotation_subject Association (object-oriented programming) Software maintenance computer.software_genre Software Engineering (cs.SE) Comprehension Computer Science - Software Engineering Empirical research Code refactoring Duplicate code Code (cryptography) Artificial intelligence business computer Natural language processing media_common |
Zdroj: | SBES |
DOI: | 10.1145/3474624.3474716 |
Popis: | Bad smells have been defined to describe potential problems in code, possibly pointing out refactoring opportunities. Several empirical studies have highlighted that smells have a negative impact on comprehension and maintainability. Consequently, several approaches have been proposed to detect and restructure them. However, studies on the inter-relationship of occurrence of different types of smells in source code are still lacking, especially those focused on the quantification of this inter-relationship. In this work, we aim at understand and quantify the possible the inter-relation of smells Large Class - LC, Complex Class - CC and Duplicate Code - DC. In particular, we investigate patterns of LC and CC regarding the presence or absence of duplicate code. We conduct a quantitative study on five open source projects, and also a qualitative analysis to measure and understand the association of specific smells. As one of the main results, we highlight that there are "occurrence patterns" among these smells, for example: either in Complex Class or in the co-occurrence of Large Class and Complex Class, clones tend to be more prevalent in highly complex classes than less complex classes. The found patterns could be used to improve the performance of detection tools or even help in refactoring tasks. 10 pages |
Databáze: | OpenAIRE |
Externí odkaz: |