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

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...
Not that Concurrent!
Not that Concurrent!
Concurrency is, in the literature, often used as a noun with a range of strengths: there is more or less concurrency; it is more or less limited; it may even be seen described as c...
Performance Comparison of three Sorting Algorithms Using Shared Data and Concurrency Mechanisms in Java
Performance Comparison of three Sorting Algorithms Using Shared Data and Concurrency Mechanisms in Java
Sorting large data sets or database is a problem commonly found in Computer Science and to find a solution to this problem, several quicksorting algorithms were developed while som...
Optimalisasi Perangkat Lunak Menggunakan Metode Refactoring
Optimalisasi Perangkat Lunak Menggunakan Metode Refactoring
Optimalisasi dengan refactoring merupakan aktivitas penting dalam meningkatkan struktur internal kode dan bertujuan untuk meningkatkan kualitas perangkat lunak. Dalam program modul...
Teknik Refactoring untuk Kualitas Usability Sistem Informasi SPP dan Tunggakan SDIT Nuralima
Teknik Refactoring untuk Kualitas Usability Sistem Informasi SPP dan Tunggakan SDIT Nuralima
Software development in a system is important to support the efficiency and effectiveness of the system. However, codes and documentation related to software systems are always cha...
Message-Passing Concurrency Shootout
Message-Passing Concurrency Shootout
In the last few years, there have been a number of new programming languages which incorporate message-passing concurrency. Examples, such as Google's Go and Mozilla's Rust, have s...
PEMILIHAN FRAMEWORK APLIKASI WEB BERBASIS JAVA MENGGUNAKAN ANALYTICAL HIERARCHY PROCESS (AHP)
PEMILIHAN FRAMEWORK APLIKASI WEB BERBASIS JAVA MENGGUNAKAN ANALYTICAL HIERARCHY PROCESS (AHP)
Currently, many web application frameworks that available in the internet, we know from wikipedia that more than 20 java frameworks for developing web application. Frameworks is a ...
An Approach for Refactoring using ESC/Java2 — A Simple Case Study —
An Approach for Refactoring using ESC/Java2 — A Simple Case Study —
Refactoring is a structural transformation technique for program code, which preserves their functional or behavioral aspects. Check whether the transformed program codes preserve ...

Back to Top