{"title":"A Data-Driven Methodology for Quality Aware Code Fixing","authors":"Thomas Karanikiotis, Andreas L. Symeonidis","doi":"10.1049/sfw2/4147669","DOIUrl":null,"url":null,"abstract":"<div>\n <p>In today’s rapidly changing software development landscape, ensuring code quality is essential to reliability, maintainability, and security among other aspects. Identifying code quality issues can be tackled; however, implementing code quality improvements can be a complex and time-consuming task. To address this problem, we present a novel methodology designed to assist developers by suggesting alternative code snippets that not only match the functionality of the original code but also improve its quality based on predefined metrics. Our system is based on a language-agnostic approach that allows the analysis of code snippets written in different programming languages. It employs advanced techniques to assess functional similarity and evaluates syntactic similarity, suggesting alternatives that minimize the need for extensive modification. The evaluation of our system on multiple axes demonstrates the effectiveness of our approach in providing usable code alternatives that are both functionally equivalent and syntactically similar to the original snippets, while significantly improving quality metrics. We argue that our methodology and tool can be valuable for the software engineering community, bridging the gap between the identification of code quality problems and the implementation of practical solutions that improve software quality.</p>\n </div>","PeriodicalId":50378,"journal":{"name":"IET Software","volume":"2025 1","pages":""},"PeriodicalIF":1.5000,"publicationDate":"2025-05-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://onlinelibrary.wiley.com/doi/epdf/10.1049/sfw2/4147669","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"IET Software","FirstCategoryId":"94","ListUrlMain":"https://onlinelibrary.wiley.com/doi/10.1049/sfw2/4147669","RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q3","JCRName":"COMPUTER SCIENCE, SOFTWARE ENGINEERING","Score":null,"Total":0}
引用次数: 0
Abstract
In today’s rapidly changing software development landscape, ensuring code quality is essential to reliability, maintainability, and security among other aspects. Identifying code quality issues can be tackled; however, implementing code quality improvements can be a complex and time-consuming task. To address this problem, we present a novel methodology designed to assist developers by suggesting alternative code snippets that not only match the functionality of the original code but also improve its quality based on predefined metrics. Our system is based on a language-agnostic approach that allows the analysis of code snippets written in different programming languages. It employs advanced techniques to assess functional similarity and evaluates syntactic similarity, suggesting alternatives that minimize the need for extensive modification. The evaluation of our system on multiple axes demonstrates the effectiveness of our approach in providing usable code alternatives that are both functionally equivalent and syntactically similar to the original snippets, while significantly improving quality metrics. We argue that our methodology and tool can be valuable for the software engineering community, bridging the gap between the identification of code quality problems and the implementation of practical solutions that improve software quality.
期刊介绍:
IET Software publishes papers on all aspects of the software lifecycle, including design, development, implementation and maintenance. The focus of the journal is on the methods used to develop and maintain software, and their practical application.
Authors are especially encouraged to submit papers on the following topics, although papers on all aspects of software engineering are welcome:
Software and systems requirements engineering
Formal methods, design methods, practice and experience
Software architecture, aspect and object orientation, reuse and re-engineering
Testing, verification and validation techniques
Software dependability and measurement
Human systems engineering and human-computer interaction
Knowledge engineering; expert and knowledge-based systems, intelligent agents
Information systems engineering
Application of software engineering in industry and commerce
Software engineering technology transfer
Management of software development
Theoretical aspects of software development
Machine learning
Big data and big code
Cloud computing
Current Special Issue. Call for papers:
Knowledge Discovery for Software Development - https://digital-library.theiet.org/files/IET_SEN_CFP_KDSD.pdf
Big Data Analytics for Sustainable Software Development - https://digital-library.theiet.org/files/IET_SEN_CFP_BDASSD.pdf