Opti Code Pro: A Heuristic Search-based Approach to Code Refactoring

05/12/2023
by   Sourena Khanzadeh, et al.
0

This paper presents an approach that evaluates best-first search methods to code refactoring. The motivation for code refactoring could be to improve the design, structure, or implementation of an existing program without changing its functionality. To solve a very specific problem of coupling and cohesion, we propose using heuristic search-based techniques on an approximation of the full code refactoring problem, to guide the refactoring process toward solutions that have high cohesion and low coupling. We evaluated our approach by providing demonstrative examples of the effectiveness of this approach on random state problems and created a tool to implement the algorithm on Java projects.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/19/2021

Checking Security Compliance between Models and Code

The verification that planned security mechanisms are actually implement...
research
04/16/2020

Optimising the Fit of Stack Overflow Code Snippets into Existing Code

Software developers often reuse code from online sources such as Stack O...
research
12/04/2018

Aroma: Code Recommendation via Structural Code Search

Programmers often write code which have similarity to existing code writ...
research
03/20/2021

FEniCS-preCICE: Coupling FEniCS to other Simulation Software

The new software FEniCS-preCICE is a middle software layer, sitting in b...
research
07/28/2020

Formal Fields: A Framework to Automate Code Generation Across Domains

Code generation, defined as automatically writing a piece of code to sol...
research
10/11/2021

Searching for Replacement Classes

Software developers must often replace existing components in their syst...
research
07/22/2019

Learning the Relation between Code Features and Code Transforms with Structured Prediction

We present in this paper the first approach for structurally predicting ...

Please sign up or login with your details

Forgot password? Click here to reset