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

A refactoring categorization model for software quality improvement

View through CrossRef
Refactoring, a widely adopted technique, has proven effective in facilitating and reducing maintenance activities and costs. Nonetheless, the effects of applying refactoring techniques on software quality exhibit inconsistencies and contradictions, leading to conflicting evidence on their overall benefit. Consequently, software developers face challenges in leveraging these techniques to improve software quality. Moreover, the absence of a categorization model hampers developers’ ability to decide the most suitable refactoring techniques for improving software quality, considering specific design goals. Thus, this study aims to propose a novel refactoring categorization model that categorizes techniques based on their measurable impacts on internal quality attributes. Initially, the most common refactoring techniques used by software practitioners were identified. Subsequently, an experimental study was conducted using five case studies to measure the impacts of refactoring techniques on internal quality attributes. A subsequent multi-case analysis was conducted to analyze these effects across the case studies. The proposed model was developed based on the experimental study results and the subsequent multi-case analysis. The model categorizes refactoring techniques into green, yellow, and red categories. The proposed model, by acting as a guideline, assists developers in understanding the effects of each refactoring technique on quality attributes, allowing them to select appropriate techniques to improve specific quality attributes. Compared to existing studies, the proposed model emerges superior by offering a more granular categorization (green, yellow, and red categories), and its range is wide (including ten refactoring techniques and eleven internal quality attributes). Such granularity not only equips developers with an in-depth understanding of each technique’s impact but also fosters informed decision-making. In addition, the proposed model outperforms current studies and offers a more nuanced understanding, explicitly highlighting areas of strength and concern for each refactoring technique. This enhancement aids developers in better grasping the implications of each refactoring technique on quality attributes. As a result, the model simplifies the decision-making process for developers, saving time and effort that would otherwise be spent weighing the benefits and drawbacks of various refactoring techniques. Furthermore, it has the potential to help reduce maintenance activities and associated costs.
Title: A refactoring categorization model for software quality improvement
Description:
Refactoring, a widely adopted technique, has proven effective in facilitating and reducing maintenance activities and costs.
Nonetheless, the effects of applying refactoring techniques on software quality exhibit inconsistencies and contradictions, leading to conflicting evidence on their overall benefit.
Consequently, software developers face challenges in leveraging these techniques to improve software quality.
Moreover, the absence of a categorization model hampers developers’ ability to decide the most suitable refactoring techniques for improving software quality, considering specific design goals.
Thus, this study aims to propose a novel refactoring categorization model that categorizes techniques based on their measurable impacts on internal quality attributes.
Initially, the most common refactoring techniques used by software practitioners were identified.
Subsequently, an experimental study was conducted using five case studies to measure the impacts of refactoring techniques on internal quality attributes.
A subsequent multi-case analysis was conducted to analyze these effects across the case studies.
The proposed model was developed based on the experimental study results and the subsequent multi-case analysis.
The model categorizes refactoring techniques into green, yellow, and red categories.
The proposed model, by acting as a guideline, assists developers in understanding the effects of each refactoring technique on quality attributes, allowing them to select appropriate techniques to improve specific quality attributes.
Compared to existing studies, the proposed model emerges superior by offering a more granular categorization (green, yellow, and red categories), and its range is wide (including ten refactoring techniques and eleven internal quality attributes).
Such granularity not only equips developers with an in-depth understanding of each technique’s impact but also fosters informed decision-making.
In addition, the proposed model outperforms current studies and offers a more nuanced understanding, explicitly highlighting areas of strength and concern for each refactoring technique.
This enhancement aids developers in better grasping the implications of each refactoring technique on quality attributes.
As a result, the model simplifies the decision-making process for developers, saving time and effort that would otherwise be spent weighing the benefits and drawbacks of various refactoring techniques.
Furthermore, it has the potential to help reduce maintenance activities and associated costs.

Related Results

A Systematic Literature Review on Software- refactoring Techniques, Challenges, and Practices
A Systematic Literature Review on Software- refactoring Techniques, Challenges, and Practices
Abstract Software-refactoring improves the quality and reduces the complexity during the whole life cycle of the software system. The objective of this work is to elicit th...
MEASURING MAINTAINABILITY INDEX BEFORE AND AFTER CODE REFACTORING
MEASURING MAINTAINABILITY INDEX BEFORE AND AFTER CODE REFACTORING
Measuring the maintainability index of software is crucial to ensure bettermaintenance and improve quality. Refactoring code is important in improving software quality and increasi...
Refactoring for Java-Structured Concurrency
Refactoring for Java-Structured Concurrency
Structured concurrency treats multiple tasks running in different threads as a single unit, thereby improving reliability and enhancing observability. The existing IDE (Integrated ...
Investigating the Refactoring Capabilities of Small Open-Weight Language Models
Investigating the Refactoring Capabilities of Small Open-Weight Language Models
Refactoring is essential for developing maintainable software. Using Large Language Models in software engineering is widespread, but compared to well-established domains such as c...
A Task-driven Grammar Refactoring Algorithm
A Task-driven Grammar Refactoring Algorithm
This paper presents our proposal and the implementation of an algorithm for automated refactoring of context-free grammars. Rather than operating under some domain-specific task, i...
Automatic Refactoring Approach for Asynchronous Mechanisms with CompletableFuture
Automatic Refactoring Approach for Asynchronous Mechanisms with CompletableFuture
To address the inherent limitations of Future in asynchronous programming frameworks, JDK 1.8 introduced the CompletableFuture class, which features approximately 50 different meth...
Deep Active Learning for Label-Efficient Refactoring Prediction
Deep Active Learning for Label-Efficient Refactoring Prediction
Software refactoring improves the maintainability of code and reduces technical debt, but making the construction of a labeled refactoring dataset is a costly and labor-intensive p...
The Study on Software Architecture Smell Refactoring
The Study on Software Architecture Smell Refactoring
Abstract Maintenance and complexity issues in software development continue to increase because of new requirements and software evolution, and refactoring is required to h...

Back to Top