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

Refactoring for Java-Structured Concurrency

View through CrossRef
Structured concurrency treats multiple tasks running in different threads as a single unit, thereby improving reliability and enhancing observability. The existing IDE (Integrated Development Environment) does not provide sufficient support to leverage such an advanced structure and conduct refactoring automatically. Manual refactoring is tedious and error prone. There is an urgent need to provide adequate support to perform automatic refactoring. To this end, this paper proposes ReStruct, an automatic refactoring approach to transform unstructured concurrency to structured concurrency. ReStruct first employs visitor pattern analysis to acquire the target code for refactoring and then performs a precondition to filter out the code that meets the refactoring criteria. Subsequently, it performs scope analysis to guide the refactoring process. Finally, ReStruct performs refactoring on the AST of the source program. ReStruct is implemented as an Eclipse plugin and is evaluated in seven real-world projects via the number of refactorings and changes to LOCs (lines of code), time, and performance after refactoring. The experimental results illustrate that a total of 82 unstructured codes are refactored, with an average of 27.3 s per project. Furthermore, the performances of these refactored projects are improved by an average of 6.5%, demonstrating its effectiveness.
Title: Refactoring for Java-Structured Concurrency
Description:
Structured concurrency treats multiple tasks running in different threads as a single unit, thereby improving reliability and enhancing observability.
The existing IDE (Integrated Development Environment) does not provide sufficient support to leverage such an advanced structure and conduct refactoring automatically.
Manual refactoring is tedious and error prone.
There is an urgent need to provide adequate support to perform automatic refactoring.
To this end, this paper proposes ReStruct, an automatic refactoring approach to transform unstructured concurrency to structured concurrency.
ReStruct first employs visitor pattern analysis to acquire the target code for refactoring and then performs a precondition to filter out the code that meets the refactoring criteria.
Subsequently, it performs scope analysis to guide the refactoring process.
Finally, ReStruct performs refactoring on the AST of the source program.
ReStruct is implemented as an Eclipse plugin and is evaluated in seven real-world projects via the number of refactorings and changes to LOCs (lines of code), time, and performance after refactoring.
The experimental results illustrate that a total of 82 unstructured codes are refactored, with an average of 27.
3 s per project.
Furthermore, the performances of these refactored projects are improved by an average of 6.
5%, demonstrating its effectiveness.

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...
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...
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...
DOMASCOS (DOMAin Specific COncurrency Skeletons)
DOMASCOS (DOMAin Specific COncurrency Skeletons)
Existing approaches to concurrent programming, albeit essential, are easily used incorrectly. Testing is difficult due to the inherent non-determinism introduced by concurrency, es...
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...
Concurrent Scaling: Evaluating AWS Lambda Performance through Load Testing
Concurrent Scaling: Evaluating AWS Lambda Performance through Load Testing
Abstract In the dynamic environment of serverless computing, efficient concurrency management and reasonable utilization of load testing techniques closely correlate with 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...
Using Clustering Techniques to Guide Refactoring of Object-Oriented Classes
Using Clustering Techniques to Guide Refactoring of Object-Oriented Classes
<p>Much of the cost of software development is maintenance. Well structured software tends to be cheaper to maintain than poorly structured software, because it is easier to ...

Back to Top