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

A Systematic Literature Review on Software- refactoring Techniques, Challenges, and Practices

View through CrossRef
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 the existing challenges and refactoring techniques and practices to counter those challenges. This study presents a systematic literature review based upon the scientific literature published since January 2000. After rigorously applying the SLR protocol defined by Barbara Kitchenham, we identify 36 articles discussing software- refactoring challenges, techniques, and practices. We point out complexity, understandability, and maintainability as three challenges of traditional software engineering that are resolved by software-refactoring. This SLR identifies assertions, program slicing, graph transformation, software metrics, and metamodeling, as five commonly used refactoring techniques. Moreover, eight main challenges of software-refactoring, namely determining refactoring and code location, selecting refactoring type and technique, managing refactoring dependency, consistency maintenance, refactoring ordering and increase in testing cost, are also highlighted. The findings of this work suggest that software-refactoring techniques can resolve challenges of traditional software engineering.
Title: A Systematic Literature Review on Software- refactoring Techniques, Challenges, and Practices
Description:
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 the existing challenges and refactoring techniques and practices to counter those challenges.
This study presents a systematic literature review based upon the scientific literature published since January 2000.
After rigorously applying the SLR protocol defined by Barbara Kitchenham, we identify 36 articles discussing software- refactoring challenges, techniques, and practices.
We point out complexity, understandability, and maintainability as three challenges of traditional software engineering that are resolved by software-refactoring.
This SLR identifies assertions, program slicing, graph transformation, software metrics, and metamodeling, as five commonly used refactoring techniques.
Moreover, eight main challenges of software-refactoring, namely determining refactoring and code location, selecting refactoring type and technique, managing refactoring dependency, consistency maintenance, refactoring ordering and increase in testing cost, are also highlighted.
The findings of this work suggest that software-refactoring techniques can resolve challenges of traditional software engineering.

Related Results

Evaluating the Science to Inform the Physical Activity Guidelines for Americans Midcourse Report
Evaluating the Science to Inform the Physical Activity Guidelines for Americans Midcourse Report
Abstract The Physical Activity Guidelines for Americans (Guidelines) advises older adults to be as active as possible. Yet, despite the well documented benefits of physical activi...
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...
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...
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...
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...
Empirical evaluation of feature selection and machine learning techniques to recommend clones for software refactoring
Empirical evaluation of feature selection and machine learning techniques to recommend clones for software refactoring
The article’s subject matter deals with the management of software clones. Software clones are duplicate code fragments that can exist in the same or different software files. Soft...

Back to Top