Search engine for discovering works of Art, research articles, and books related to Art and Culture
ShareThis
Javascript must be enabled to continue!

An Exploratory Evaluation of Code Smell Agglomerations

View through CrossRef
Abstract Context. Code smell is a symptom of decisions about the system design or code that may degrade its modularity. For example, they may indicate inheritance misuse, excessive coupling and size. When two or more code smells occur in the same snippet of code, they form a code smell agglomeration. Objective. Few studies evaluate how agglomerations may impact code modularity. In this work, we evaluate which aspects of modularity are being hindered by agglomerations. This way, we can support practitioners in improving their code, by refactoring the code involved with code smell agglomeration that was found as harmful to the system modularity. Method. We analyze agglomerations composed of four types of code smells: Large Class, Long Method, Feature Envy, and Refused Bequest. We then conduct a comparison study between 20 systems mined from the Qualita Corpus dataset with 10 systems mined from GitHub. In total, we analyzed 1,789 agglomerations in 30 software projects, from both repositories: Qualita Corpus and GitHub. We rely on frequent itemset mining and non-parametric hypothesis testing for our analysis. Results. Agglomerations formed by two or more Feature Envy smells have a significant frequency in the source code for both repositories. Agglomerations formed by different smell types impact the modularity more than classes with only one smell type and classes without smells. For some metrics, when Large Class appears alone, it has a significant and large impact when compared to classes that have two or more method-level smells of the same type. Conclusion. We have identified which agglomerations are more frequent in the source code, and how they may impact the code modularity. Consequently, we provide supporting evidence of which agglomerations developers should refactor to improve the code modularity.
Title: An Exploratory Evaluation of Code Smell Agglomerations
Description:
Abstract Context.
Code smell is a symptom of decisions about the system design or code that may degrade its modularity.
For example, they may indicate inheritance misuse, excessive coupling and size.
When two or more code smells occur in the same snippet of code, they form a code smell agglomeration.
Objective.
Few studies evaluate how agglomerations may impact code modularity.
In this work, we evaluate which aspects of modularity are being hindered by agglomerations.
This way, we can support practitioners in improving their code, by refactoring the code involved with code smell agglomeration that was found as harmful to the system modularity.
Method.
We analyze agglomerations composed of four types of code smells: Large Class, Long Method, Feature Envy, and Refused Bequest.
We then conduct a comparison study between 20 systems mined from the Qualita Corpus dataset with 10 systems mined from GitHub.
In total, we analyzed 1,789 agglomerations in 30 software projects, from both repositories: Qualita Corpus and GitHub.
We rely on frequent itemset mining and non-parametric hypothesis testing for our analysis.
Results.
Agglomerations formed by two or more Feature Envy smells have a significant frequency in the source code for both repositories.
Agglomerations formed by different smell types impact the modularity more than classes with only one smell type and classes without smells.
For some metrics, when Large Class appears alone, it has a significant and large impact when compared to classes that have two or more method-level smells of the same type.
Conclusion.
We have identified which agglomerations are more frequent in the source code, and how they may impact the code modularity.
Consequently, we provide supporting evidence of which agglomerations developers should refactor to improve the code modularity.

Related Results

The effect of spatial structure of urban agglomerations on green development: Evidence from China
The effect of spatial structure of urban agglomerations on green development: Evidence from China
Abstract Spatial structure reflects physical urban agglomerations development and may have economic, societal, and environmental spillover effects. As China pays more atten...
Design of Malicious Code Detection System Based on Binary Code Slicing
Design of Malicious Code Detection System Based on Binary Code Slicing
<p>Malicious code threatens the safety of computer systems. Researching malicious code design techniques and mastering code behavior patterns are the basic work of network se...
Alih Kode Dan Campur Kode Dalam Interaksi Masyarakat Terminal Motabuik Kota Atambua
Alih Kode Dan Campur Kode Dalam Interaksi Masyarakat Terminal Motabuik Kota Atambua
This research aims to describe the use of language in community interactions at the Motabuik terminal, Atambua City. The use of language in question is the form and function of cod...
Systematic Evaluation of AI-Generated Python Code: A Comparative Study across Progressive Programming Tasks
Systematic Evaluation of AI-Generated Python Code: A Comparative Study across Progressive Programming Tasks
Abstract Background: AI-based code assistants are on the rise in software development as powerful technologies offering streamlining of code generation and better-quality c...
CODE CHOICE USED BY CHIYU TAMADE (CHU2) CHARACTER IN THE ANIME “BANG DREAM! SEASON 2 EP 3, 8, AND 9”
CODE CHOICE USED BY CHIYU TAMADE (CHU2) CHARACTER IN THE ANIME “BANG DREAM! SEASON 2 EP 3, 8, AND 9”
In the field of Sociolinguistics, phenomenons of language use such as code-switching and code-mixing are often found in our daily lives. BanG Dream is a multimedia project that foc...
Code Switching and Code Mixing in the Communication of Arabic Language Education Master Students UIN Malang: A Sociolinguistic Study
Code Switching and Code Mixing in the Communication of Arabic Language Education Master Students UIN Malang: A Sociolinguistic Study
Code switching is the phenomenon of changing the use of language or language variants in a conversation by a speaker, either between languages (e.g., from Indonesian to English) or...

Back to Top