Improving structural code quality of java source codes through automated detection and refactoring of code smells leveraging large language models (LLMs)
Loading...
Date
Publisher
BRAC University
Citation
Abstract
Structural and design issues in source code, commonly referred to as code smells,
can reduce software maintainability, readability, and overall quality. Traditional
code analysis tools rely primarily on predefined rules and heuristics for smell detection,
which often limits their ability to understand broader code context and provide
meaningful refactoring support. Recent advances in Large Language Models (LLMs)
have created new opportunities for intelligent code analysis and automated software
maintenance. This thesis presents an LLM-based approach for the detection and
refactoring of code smells in source code. The proposed framework employs two
specialized models: a code smell detection model trained to identify common structural
and design issues, and a refactoring model trained on paired before-and-after
code examples to generate refactored code and identify the refactoring technique
applied. The detection model recognizes several categories of code smells, while
the refactoring model generates improved code by applying appropriate refactoring
transformations. We are working to propose an automated engine that uses LLM to
detect and refactor key code smells in deployed Java projects. Our proposed framework
combines static code heuristics with parameter-efficient fine-tuning using for
code smell detection. Additionally, a separate LoRA fine-tuned model is trained on
before-and-after code pairs to perform refactoring , generating refactored code along
with the corresponding refactoring type. We aim to find if the semantic understanding
of LLMs are capable enough to find the common smells in deployed Java source
codes and refactor to improve the quality of the codes. We will construct a dataset
for internal testing and benchmarking. This work illustrates how LLMs can serve
as intelligent assistants in software maintenance, enabling automated detection and
context-aware refactoring.
LC Subject Headings
Natural language processing (Computer science)., Computer software--Development., Software failures--Prevention--Data processing., Software maintenance--Automation., Java (Computer program language)., Computer programs--Correctness., Debugging in computer science--Automatic control., Computer software--Testing--Data processing., Software refactoring.
Description
This thesis is submitted in partial fulfillment of the requirements for the degree of Bachelor of Science in Computer Science and Engineering, 2025.
Cataloged from PDF version of thesis.
Includes bibliographical references (pages 63-65).
Cataloged from PDF version of thesis.
Includes bibliographical references (pages 63-65).
Publisher Link
Type
Thesis
Creative Commons license

Except where otherwise noted, this item's license is described as
Attribution-NonCommercial-NoDerivatives 4.0 International