  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.
