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

Design of testing framework for code smell detection (OOPS) using BFO algorithm
Design of testing framework for code smell detection (OOPS) using BFO algorithm
Detection of bad smells refers to any indication in the program code of a execution that perhaps designate a issue, maintain the software and software evolution. Code Smell detecti...
Spatial Disparities in Livability across Chinese Urban Agglomerations:An Infrastructure and Public Service Perspective
Spatial Disparities in Livability across Chinese Urban Agglomerations:An Infrastructure and Public Service Perspective
Urban agglomerations function as integrated spatial systems in which infrastructure provision and public services jointly shape urban livability outcomes. While existing studies la...
Exploring Smell Loss Patterns and Recovery Factors Among Covid-19 Patients in Benghazi, Libya
Exploring Smell Loss Patterns and Recovery Factors Among Covid-19 Patients in Benghazi, Libya
Objective: The main objective of this research is to investigate the recovery patterns and the demographic factors that affect patients with loss of smell post-COVID-19 disease in ...
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...
Overview of Bad Code Smells in Software Development and Researches
Overview of Bad Code Smells in Software Development and Researches
Abstract This study examines the occurrence, influence, and moderation of bad code smells in software development through a hybrid research methodology combining qualitativ...
Self-reported olfactory and gustatory dysfunction in patients with COVID-19 infection
Self-reported olfactory and gustatory dysfunction in patients with COVID-19 infection
Objective: To investigate the incidence, comorbidity and recovery period of smell and taste loss in patients with COVID-19 infection, who were treated as outpatient or admitted to ...

Back to Top