Identifying refactoring opportunities in object-oriented code: A systematic literature review
Jehad Al Dallal · Information and Software Technology · 2014
Cited by 100
Read the abstract, see who wrote it and who cites it, and get the citation in APA, MLA, Chicago or Harvard.
About 10,000 papers for “Systematic code”
Jehad Al Dallal · Information and Software Technology · 2014
Cited by 100
Dzikri Rahadian Fudholi, Andrea Capiluppi · Information and Software Technology · 2025
Context: Artificial intelligence (AI) techniques, particularly natural language processing (NLP) and machine learning (ML), are increasingly used to support source code understanding, an essential activity in software engineering. Objective: This systematic mapping study investigates how these techniques are applied, guided by four Research Questions (RQs) focusing on the types of tasks, embedding methods & preprocessing techniques used, machine learning models employed, and existing research gaps. Methods: A review of 227 peer-reviewed studies identifies trends and provides a structured mapping addressing each RQ. Results: The findings reveal a dominant shift toward deep learning, especially transformer-based and graph-based models, highlighting underexplored areas such as explainability. Conclusion: This study provides a task-based classification and offers insights and directions for future research in AI-enabled source code understanding, supporting both researchers and practitioners.
Cited by 1Open access
Ferrari, Fabiano, Durelli, Vinicius, Andler, Sten et al. · Zenodo (CERN European Organization for Nuclear Research) · 2023
This set of files is complementary material of our systematic literature review. Specifically, the set of files includes a BibTeX file with references and summaries of studies we analyzed, a spreadsheet that reflects the study selection process and data classification, and a PDF with the review protocol.
Cited by 0Open access
Marvin Wyrich, Justus Bogner, Stefan Wagner · arXiv (Cornell University) · 2022
The relevance of code comprehension in a developer's daily work was recognized more than 40 years ago. Consequently, many experiments were conducted to find out how developers could be supported during code comprehension and which code characteristics contribute to better comprehension. Today, such studies are more common than ever. While this is great for advancing the field, the number of publications makes it difficult to keep an overview. Additionally, designing rigorous code comprehension experiments with human participants is a challenging task, and the multitude of design options can make it difficult for researchers, especially newcomers to the field, to select a suitable design. We therefore conducted a systematic mapping study of 95 source code comprehension experiments published between 1979 and 2019. By structuring the design characteristics of code comprehension studies, we provide a basis for subsequent discussion of the huge diversity of design options in the face of a lack of basic research on their consequences and comparability. We describe what topics have been studied, as well as how these studies have been designed, conducted, and reported. Frequently chosen design options and deficiencies are pointed out to support researchers of all levels of domain expertise in designing their own studies.
Cited by 5Open access
Frederico Luiz Caram, Bruno Rafael de Oliveira Rodrigues, Amadeu Silveira Campanelli et al. · International Journal of Software Engineering and Knowledge Engineering · 2019
Code smells or bad smells are an accepted approach to identify design flaws in the source code. Although it has been explored by researchers, the interpretation of programmers is rather subjective. One way to deal with this subjectivity is to use machine learning techniques. This paper provides the reader with an overview of machine learning techniques and code smells found in the literature, aiming at determining which methods and practices are used when applying machine learning for code smells identification and which machine learning techniques have been used for code smells identification. A mapping study was used to identify the techniques used for each smell. We found that the Bloaters was the main kind of smell studied, addressed by 35% of the papers. The most commonly used technique was Genetic Algorithms (GA), used by 22.22% of the papers. Regarding the smells addressed by each technique, there was a high level of redundancy, in a way that the smells are covered by a wide range of algorithms. Nevertheless, Feature Envy stood out, being targeted by 63% of the techniques. When it comes to performance, the best average was provided by Decision Tree, followed by Random Forest, Semi-supervised and Support Vector Machine Classifier techniques. 5 out of the 25 analyzed smells were not handled by any machine learning techniques. Most of them focus on several code smells and in general there is no outperforming technique, except for a few specific smells. We also found a lack of comparable results due to the heterogeneity of the data sources and of the provided results. We recommend the pursuit of further empirical studies to assess the performance of these techniques in a standardized dataset to improve the comparison reliability and replicability.
Cited by 53
Renato Domingues, Iury Monte, Marcelo Marinho · 2025
Cited by 0Open access
Gao Mingzhe, Jieru Zhao, Zhe Lin et al. · 2024
Recently, the use of large language models (LLMs) for software code generation, e.g., C/C++ and Python, has proven a great success. However, LLMs still suffer from low syntactic and functional correctness when it comes to the generation of register-transfer level (RTL) code, such as Verilog. To address this issue, in this paper, we develop AutoVCoder, a systematic open-source framework that significantly improves the LLMs' correctness of generating Verilog code and enhances the quality of its output at the same time. Our framework integrates three novel techniques, including a high-quality hardware dataset generation approach, a two-round LLM fine-tuning method and a domain-specific retrieval-augmented generation (RAG) mechanism. Experimental results demonstrate that AutoVCoder outperforms both industrial and academic LLMs in Verilog code generation. Code and models are available at https://github.com/sjtu-zhao-lab/AutoVCoder.
Cited by 19
Isaac Benchimol, Cecílio Pimentel, Richard Demo Souza et al. · Greater South Information System · 2012
Abstract We consider high-rate systematic recursive convolutional encoders to be adopted as constituent encoders in turbo schemes. Douillard and Berrou showed that, despite its complexity, the construction of high-rate turbo codes by means of high-rate constituent encoders is advantageous over the construction based on puncturing rate-1/2 constituent encoders. To reduce the decoding complexity of high-rate codes, we introduce the construction of the minimal trellis for a systematic recursive convolutional encoding matrix. A code search is conducted and examples are provided which indicate that a more finely grained decoding complexity-error performance trade-off is obtained.
Cited by 0Open access
Alfredo García‐Alix, Juan Arnáez, Gemma Arca et al. · Anales de Pediatría (English Edition) · 2024
It is estimated that 96% of infants with hypoxic-ischaemic encephalopathy (HIE) are born in resource-limited settings with no capacity to provide the standard of care that has been established for nearly 15 years in high-resource countries, which includes therapeutic hypothermia (TH), continuous electroencephalographic monitoring and magnetic resonance imaging (MRI) in addition to close vital signs and haemodynamic monitoring. This situation does not seem to be changing; however, even with these limitations, currently available knowledge can help improve the care of HIE patients in resource-limited settings. The purpose of this systematic review was to provide, under the term "HIE Code", evidence-based recommendations for feasible care practices to optimise the care of infants with HIE and potentially help reduce the risks associated with comorbidity and improve neurodevelopmental outcomes. The content of the HIE code was grouped under 9 headings: (1) prevention of HIE, (2) resuscitation, (3) first 6h post birth, (4) identification and grading of encephalopathy, (5) seizure management, (6) other therapeutic interventions, (7) multiple organ dysfunction, (8) diagnostic tests and (9) family care.
Cited by 6Open access
Haolin Jin, Huaming Chen · Research Square · 2026
Cited by 0Open access
Sara AlAraj, Meera AlAraj · International Journal of Theory of Organization and Practice (IJTOP) · 2024
The combination of Java programming and artificial intelligence (AI) creates a potent synergy that allows developers to design intelligent systems and applications that are scalable, reliable, and efficient. This paper examines how to combine the flexibility of Java with the cognitive powers of AI, offering a range of approaches, tools, and frameworks that make use of Java's advantages for developing AI-driven solutions. An introduction of AI ideas and Java's place in AI development is given at the outset of the paper. It explores basic AI techniques like computer vision, reinforcement learning, machine learning, and natural language processing (NLP), and explains how to implement them in Java using frameworks like Deep learning, Weka, and Apache Open NLP. It also goes over how to use Java to create intelligent agents and how to design expert systems, heuristic-driven algorithms, and autonomous decision-making systems. It emphasizes how Java may be integrated with AI-enabled tools and stresses the significance of feature engineering, model deployment, and data pretreatment. Additionally, the study looks at the difficulties and possibilities in developing AI using Java, addressing issues with interoperability of AI modules, compatibility with a variety of data sources, and performance optimization. The study culminates with a futuristic view of Java-powered artificial intelligence, imagining progressions in Java libraries, frameworks, and techniques that will encourage the development of increasingly complex and intelligent systems.
Cited by 0Open access
Li, Xiao, Li, Yue, Wu, Hao et al. · ArXiv.org · 2025
As large language models (LLMs) are increasingly adopted for code vulnerability detection, their reliability and robustness across diverse vulnerability types have become a pressing concern. In traditional adversarial settings, code obfuscation has long been used as a general strategy to bypass auditing tools, preserving exploitability without tampering with the tools themselves. Numerous efforts have explored obfuscation methods and tools, yet their capabilities differ in terms of supported techniques, granularity, and programming languages, making it difficult to systematically assess their impact on LLM-based vulnerability detection. To address this gap, we provide a structured systematization of obfuscation techniques and evaluate them under a unified framework. Specifically, we categorize existing obfuscation methods into three major classes (layout, data flow, and control flow) covering 11 subcategories and 19 concrete techniques. We implement these techniques across four programming languages (Solidity, C, C++, and Python) using a consistent LLM-driven approach, and evaluate their effects on 15 LLMs spanning four model families (DeepSeek, OpenAI, Qwen, and LLaMA), as well as on two coding agents (GitHub Copilot and Codex). Our findings reveal both positive and negative impacts of code obfuscation on LLM-based vulnerability detection, highlighting conditions under which obfuscation leads to performance improvements or degradations. We further analyze these outcomes with respect to vulnerability characteristics, code properties, and model attributes. Finally, we outline several open problems and propose future directions to enhance the robustness of LLMs for real-world vulnerability detection.
Cited by 0Open access
Uma Ojha, Anjana Yadav · Lecture notes in networks and systems · 2025
Cited by 0
Hekar A. Mohammed Salih, Qusay Idrees Sarhan · ARO-The Scientific Journal of Koya University · 2025
Static code analysis aids in improving software quality, security, and maintainability by detecting vulnerabilities, errors, and programming issues in source code without executing it. The latest advancements in Artificial Intelligence (AI), especially the development of Large Language Models (LLMs) such as ChatGPT, have enabled transformational opportunities in this domain. Thus, it is essential to explore this hot field of research alongside many directions. This systematic survey focuses on the use of LLMs for static code analysis, detailing their applications, advantages, contexts, limitations, etc. In this study, the research papers that have been published on the topic from well-known literature databases were examined to answer several research questions regarding state-of-the-art use of LLMs for static code analysis. Also, different research gaps and challenges were identified and discussed alongside many directions. The results of this study demonstrate how LLMs can be useful for static code analysis and overcome different constraints. Thus, it opens the doors for developers and researchers to employ LLMs for affordable and effective static code analysis to improve software development process.
Cited by 0Open access
Mohammad Masudur Rahman, Chanchal K. Roy · ACM Transactions on Software Engineering and Methodology · 2023
Fixing software bugs and adding new features are two of the major maintenance tasks. Software bugs and features are reported as change requests. Developers consult these requests and often choose a few keywords from them as an ad hoc query. Then they execute the query with a search engine to find the exact locations within software code that need to be changed. Unfortunately, even experienced developers often fail to choose appropriate queries, which leads to costly trials and errors during a code search. Over the years, many studies have attempted to reformulate the ad hoc queries from developers to support them. In this systematic literature review, we carefully select 70 primary studies on query reformulations from 2,970 candidate studies, perform an in-depth qualitative analysis (e.g., Grounded Theory), and then answer seven research questions with major findings. First, to date, eight major methodologies (e.g., term weighting, term co-occurrence analysis, thesaurus lookup) have been adopted to reformulate queries. Second, the existing studies suffer from several major limitations (e.g., lack of generalizability, the vocabulary mismatch problem, subjective bias) that might prevent their wide adoption. Finally, we discuss the best practices and future opportunities to advance the state of research in search query reformulations.
Cited by 10
Nur Fatin Syahidah Mohd Zamri, Al-Fahim Mubarak Ali, Aziman Abdullah et al. · 2025
Code clones, which are instances of the same code segments copied in a software system, are created by developers for a variety of purposes. Code duplication is frequently brought on by programmers’ efficiency-seeking tendencies, which lead them to use copy-paste methods to speed up coding work. Numerous studies have proposed code clone visualization approaches to reduce code snippet replication and manage clone occurrences effectively. Visualization helps developers understand and avoid having duplicate code segments in software systems by giving them visual representations. Thus, in order to improve developers’ comprehension and stop the replication of code fragments, the present study provides a comprehensive evaluation of visualization approaches addressing code clone occurrences. The purpose of this study is to provide a systematic literature review of current code clone visualization approaches. The review and results of the study are presented, along with recommendations for further research projects that will enhance the current code clone visualization approaches.
Cited by 0
Sabiya Banu Masthan Ali, Oussema Kirmani, Syed Muhammad Danish et al. · ArXiv.org · 2026
Large Language Models (LLMs) are widely used in software engineering to generate, complete, translate, and fix code, improving developer productivity. While most research focuses on the energy consumption and carbon emissions of model training and inference, far less attention has been given to the sustainability of the code these models produce. The efficiency of generated code affects the long-term environmental impact of software systems. Inefficient code can increase CPU usage, memory consumption, execution time, and overall energy use during deployment and operation. As LLM-generated code becomes more common in real-world projects, even small inefficiencies can lead to high environmental costs over time. This paper examines existing research on the sustainability of code generated by LLMs. We conduct a systematic literature review to analyze selected primary studies and investigate the extent to which LLMs are capable of producing sustainable code. In addition, we examine how sustainability is defined and measured in this context, including the metrics and evaluation strategies used to assess energy efficiency and resource usage. We also explore whether techniques such as fine-tuning and prompt engineering influence the sustainability of generated code. Through a structured analysis of the selected studies, we categorize research efforts based on their methodological approaches, evaluation practices, and experimental settings. The findings indicate that research in this area remains relatively limited and fragmented, with no widely accepted framework for measuring or benchmarking the sustainability of LLM-generated code. These observations highlight the need for clearer definitions, standardized evaluation methods, and systematic research to support environmentally friendly AI-assisted software engineering.
Cited by 0Open access
Liu, Yuxin · Oxford University Research Archive (ORA) (University of Oxford) · 2023
This systematic review aims to assess the interaction of code-switching (CS) and emotions, and how this relationship may be influenced by cross-cultural and cross-modality differences. The link between language preference and emotions has long been discussed, yet an overview on factors within and underlying the association is still lacking. As such, there is a critical need for a systematic evaluation of the interaction of CS and emotions. An initial search in four databases resulted in 1944 papers, which were then screened by 6 inclusion criteria. A total of 19 studies within the last 10 years were identified, with the majority of studies based in Asian contexts, and English as the most common second language. The overall risk of bias of included studies was moderate-to-high, and the key issue was the ambiguity of data collection. Narrative synthesis of selected studies showed that CS and emotions interacted with each other both in intrapersonal and interpersonal perspectives. People tended to switch their code when feeling emotional. CS was also applied for several affection functions, especially in expressing, negotiating, and managing emotions. Intensive, abrupt, and negatively charged emotions were often linked to CS, with anger being identified most frequently. This interaction could probably be either conscious or unintentional. Compared to people from western cultures, people originally from Asia were found applying CS uniquely for emotional support. No salient cross-modality difference was found. Overall, results of reviewed studies were consistent. Emotions could influence the occurrence of CS and CS was also employed for emotional functions. This interaction is influenced by personal language experiences that shaped by their social and cultural backgrounds. Further studies on other cross-linguistic and cross-cultural differences are suggested to build up the interaction to a broader context.
Cited by 0Open access
Fabiano Cutigi Ferrari · Zenodo (CERN European Organization for Nuclear Research) · 2022
This set of files is complementary material of our systematic literature review. Specifically, the set of files includes a BibTeX file with references and summaries of studies we analyzed, a spreadsheet that reflects the study selection process and data classification, and a PDF with the review protocol.
Cited by 0Open access
Rani, Pooja, Blasi, Arianna, Stulova, Nataliia et al. · ZHAW Digital Collection · 2023
Cited by 0Open access