[go: up one dir, main page]

 
 
applsci-logo

Journal Browser

Journal Browser

Artificial Intelligence in Software Engineering

A special issue of Applied Sciences (ISSN 2076-3417). This special issue belongs to the section "Computing and Artificial Intelligence".

Deadline for manuscript submissions: 31 May 2025 | Viewed by 5433

Special Issue Editors


E-Mail Website
Guest Editor
Faculty of Electrical Engineering, Mechanical Engineering and Naval Architecture, University of Split, 21000 Split, Croatia
Interests: software engineering; complex data storage systems

E-Mail Website
Guest Editor
Faculty of Electrical Engineering, Mechanical Engineering and Naval Architecture, University of Split, 21000 Split, Croatia
Interests: artificial intelligence; computer vision; machine learning; natural language processing; computational linguistics
Special Issues, Collections and Topics in MDPI journals

Special Issue Information

Dear Colleagues,

We are inviting submissions to this Special Issue on Artificial Intelligence in Software Engineering.

In recent years, artificial intelligence (AI) has emerged as a disruptive technology with the potential to revolutionize various industries, and software engineering (SE) is no exception. The significant impact of AI paradigms (such as neural networks, machine learning, knowledge-based systems, and natural language processing) on SE phases (requirements, design, development, testing, release, and maintenance) could be used to improve the process and eliminate many of the major challenges that the SE field has been facing. Some of the areas where AI can assist SE processes are AI-powered requirement analysis and planning, enhanced code generation and automation, AI-driven bug detection and debugging, smart testing and quality assurance, personalization and user experience optimization, Natural Language Processing (NLP) and voice interfaces, predictive analytics and decision making, AI for Continuous Integration and Continuous Deployment (CI/CD), and autonomous software maintenance.

In this Special Issue, we invite submissions that explore cutting-edge research and recent advances in the fields of artificial intelligence in software engineering. Both theoretical and experimental studies are welcome, as well as comprehensive review and survey papers.

Prof. Dr. Linda Vickovic
Dr. Maja Braović
Guest Editors

Manuscript Submission Information

Manuscripts should be submitted online at www.mdpi.com by registering and logging in to this website. Once you are registered, click here to go to the submission form. Manuscripts can be submitted until the deadline. All submissions that pass pre-check are peer-reviewed. Accepted papers will be published continuously in the journal (as soon as accepted) and will be listed together on the special issue website. Research articles, review articles as well as short communications are invited. For planned papers, a title and short abstract (about 100 words) can be sent to the Editorial Office for announcement on this website.

Submitted manuscripts should not have been published previously, nor be under consideration for publication elsewhere (except conference proceedings papers). All manuscripts are thoroughly refereed through a single-blind peer-review process. A guide for authors and other relevant information for submission of manuscripts is available on the Instructions for Authors page. Applied Sciences is an international peer-reviewed open access semimonthly journal published by MDPI.

Please visit the Instructions for Authors page before submitting a manuscript. The Article Processing Charge (APC) for publication in this open access journal is 2400 CHF (Swiss Francs). Submitted papers should be well formatted and use good English. Authors may use MDPI's English editing service prior to publication or during author revisions.

Keywords

  • software engineering
  • artificial intelligence
  • AI in requirement analysis
  • smart testing and quality assurance
  • predictive analytics and decision making
  • AI for continuous integration and continuous deployment (CI/CD)
  • autonomous software maintenance

Benefits of Publishing in a Special Issue

  • Ease of navigation: Grouping papers by topic helps scholars navigate broad scope journals more efficiently.
  • Greater discoverability: Special Issues support the reach and impact of scientific research. Articles in Special Issues are more discoverable and cited more frequently.
  • Expansion of research network: Special Issues facilitate connections among authors, fostering scientific collaborations.
  • External promotion: Articles in Special Issues are often promoted through the journal's social media, increasing their visibility.
  • e-Book format: Special Issues with more than 10 articles can be published as dedicated e-books, ensuring wide and rapid dissemination.

Further information on MDPI's Special Issue policies can be found here.

Published Papers (3 papers)

Order results
Result details
Select all
Export citation of selected articles as:

Research

Jump to: Other

21 pages, 1317 KiB  
Article
Can Large-Language Models Replace Humans in Agile Effort Estimation? Lessons from a Controlled Experiment
by Luka Pavlič, Vasilka Saklamaeva and Tina Beranič
Appl. Sci. 2024, 14(24), 12006; https://doi.org/10.3390/app142412006 - 22 Dec 2024
Viewed by 855
Abstract
Effort estimation is critical in software engineering to assess the resources needed for development tasks and to enable realistic commitments in agile iterations. This study investigates whether generative AI tools, which are transforming various aspects of software development, can improve effort estimation efficiency. [...] Read more.
Effort estimation is critical in software engineering to assess the resources needed for development tasks and to enable realistic commitments in agile iterations. This study investigates whether generative AI tools, which are transforming various aspects of software development, can improve effort estimation efficiency. A controlled experiment was conducted in which development teams upgraded an existing information system, with the experimental group using the generative-AI-based tool GitLab Duo for estimation and the control group using conventional methods (e.g., planning poker or analogy-based planning). Results show that while generative-AI-based estimation tools achieved only 16% accuracy—currently insufficient for industry standards—they offered valuable support for task breakdown and iteration planning. Participants noted that a combination of conventional methods and AI-based tools could offer enhanced accuracy and efficiency in future planning. Full article
(This article belongs to the Special Issue Artificial Intelligence in Software Engineering)
Show Figures

Figure 1

Figure 1
<p>Positioning tasks that can be assisted by the LLM-based chatbots [<a href="#B19-applsci-14-12006" class="html-bibr">19</a>].</p>
Full article ">Figure 2
<p>Research method outline with emphasis on controlled experiment.</p>
Full article ">Figure 3
<p>Sample flow of the system that participants were required to upgrade.</p>
Full article ">Figure 4
<p>Participant experience.</p>
Full article ">Figure 5
<p>How do you think the use of AI tools helps in software development?</p>
Full article ">Figure 6
<p>Cumulative effort estimates for all user stories per development teams in hours.</p>
Full article ">Figure 7
<p>Average user story effort estimates per groups in hours.</p>
Full article ">Figure 8
<p>Average user story effort estimates per group in hours.</p>
Full article ">Figure 9
<p>Estimation accuracy in the experimental (EG) and control (CG) groups per user story, in percent.</p>
Full article ">Figure 10
<p>Estimated and actual effort in the experimental (EG) and control (CG) groups per user story in hours.</p>
Full article ">
29 pages, 1792 KiB  
Article
AbstractTrace: The Use of Execution Traces to Cluster, Classify, Prioritize, and Optimize a Bloated Test Suite
by Ziad A. Al-Sharif and Clinton L. Jeffery
Appl. Sci. 2024, 14(23), 11168; https://doi.org/10.3390/app142311168 - 29 Nov 2024
Viewed by 517
Abstract
Due to the incremental and iterative nature of the software testing process, a test suite may become bloated with redundant, overlapping, and similar test cases. This paper aims to optimize a bloated test suite by employing an execution trace that encodes runtime events [...] Read more.
Due to the incremental and iterative nature of the software testing process, a test suite may become bloated with redundant, overlapping, and similar test cases. This paper aims to optimize a bloated test suite by employing an execution trace that encodes runtime events into a sequence of characters forming a string. A dataset of strings, each of which represents the code coverage and execution behavior of a test case, is analyzed to identify similarities between test cases. This facilitates the de-bloating process by providing a formal mechanism to identify, remove, and reduce extra test cases without compromising software quality. This form of analysis allows for the clustering and classification of test cases based on their code coverage and similarity score. This paper explores three levels of execution traces and evaluates different techniques to measure their similarities. Test cases with the same code coverage should generate the exact string representation of runtime events. Various string similarity metrics are assessed to find the similarity score, which is used to classify, detect, and rank test cases accordingly. Additionally, this paper demonstrates the validity of the approach with two case studies. The first shows how to classify the execution behavior of various test cases, which can provide insight into each test case’s internal behavior. The second shows how to identify similar test cases based on their code coverage. Full article
(This article belongs to the Special Issue Artificial Intelligence in Software Engineering)
Show Figures

Figure 1

Figure 1
<p>AbstractTrace’s approach starts by evaluating a test suite on a program under test, and builds a dataset of execution traces collected for all passed test cases. In the analysis part, all the execution traces are evaluated to find similarities using various algorithms. This similarity score can be used to select and estimate future regression testing whenever it is needed. <math display="inline"><semantics> <mrow> <mi>T</mi> <msub> <mi>C</mi> <mi>i</mi> </msub> </mrow> </semantics></math> stands for test-case number <span class="html-italic">i</span>, and <math display="inline"><semantics> <mrow> <mi>E</mi> <mi>T</mi> <msub> <mi>R</mi> <mi>i</mi> </msub> </mrow> </semantics></math> stands for the execution-trace number <span class="html-italic">i</span> that is associated with test case <span class="html-italic">i</span> or <math display="inline"><semantics> <mrow> <mi>T</mi> <msub> <mi>C</mi> <mi>i</mi> </msub> </mrow> </semantics></math>.</p>
Full article ">Figure 2
<p>AbstractTrace’s hierarchical execution trace: the top level with 4 classes, the mid-level with 16 classes, and the lowest level captures 68 kind of source-code events.</p>
Full article ">Figure 3
<p>Sample execution trace using one character encoding. The two parts represent the same program with two different encoding schemes. Part (<b>b</b>) shows more characters than part (<b>a</b>).</p>
Full article ">Figure 4
<p>A sample of <span class="html-italic">level 3</span> execution traces for a one test case, where the list has only one element.</p>
Full article ">Figure 5
<p>Runtime event classifications. Each category includes <math display="inline"><semantics> <mrow> <mn>25</mn> <mo>%</mo> </mrow> </semantics></math> of the total number of events that can be captured.</p>
Full article ">Figure 6
<p>The multilevel runtime events’ tree of execution behavior classes. At the top, the blue rectangles present the four top levels (<math display="inline"><semantics> <mrow> <mi>L</mi> <mi>e</mi> <mi>v</mi> <mi>e</mi> <msub> <mi>l</mi> <mn>1</mn> </msub> </mrow> </semantics></math>). The second level in the tree, presented in brown rectangles, shows the derived sub-classes of event types that can be captured during the second level (<math display="inline"><semantics> <mrow> <mi>L</mi> <mi>e</mi> <mi>v</mi> <mi>e</mi> <msub> <mi>l</mi> <mn>2</mn> </msub> </mrow> </semantics></math>) of the execution trace. Finally, the names presented in red show the names of the actual events (<math display="inline"><semantics> <mrow> <mi>L</mi> <mi>e</mi> <mi>v</mi> <mi>e</mi> <msub> <mi>l</mi> <mn>3</mn> </msub> </mrow> </semantics></math>) fired by the actual program under test during its execution trace.</p>
Full article ">Figure 7
<p>An example of the <math display="inline"><semantics> <mrow> <mi>c</mi> <mi>o</mi> <mi>m</mi> <mi>p</mi> <mi>u</mi> <mi>t</mi> <mi>e</mi> <mi>S</mi> <mi>t</mi> <mi>a</mi> <mi>t</mi> <mi>s</mi> <mo>(</mo> <mo>)</mo> </mrow> </semantics></math> method that takes a list and calculates a set of statistical variables. The Sample function is used to generate a Control-Flow Graph (CFG) representation to demonstrate the use of execution traces for software testing based on graph coverage. Nodes are numbered to indicate different code blocks, while the edges are annotated with their respective conditions.</p>
Full article ">Figure 8
<p>Evaluates three edit-based algorithms: (1) Jaro, (2) Levenshtein, and (3) Smith–Waterman.</p>
Full article ">Figure 9
<p>Evaluates three token-based algorithms: (1) Cosine, (2) Jaccard, and (3) Overlap Similarity.</p>
Full article ">Figure 10
<p>Evaluates three sequence-based algorithms: (1) Longest Common Sub-Sequence, (2) Longest Common Sub-String, and (3) Ratcliff–Obershelp.</p>
Full article ">Figure 11
<p>Presents three levels of execution traces. Part (<b>a</b>) shows the top-level (<math display="inline"><semantics> <mrow> <mi>l</mi> <mi>e</mi> <mi>v</mi> <mi>e</mi> <msub> <mi>l</mi> <mn>1</mn> </msub> </mrow> </semantics></math>) execution trace for two sample test cases. Part (<b>b</b>) shows two samples of <math display="inline"><semantics> <mrow> <mi>l</mi> <mi>e</mi> <mi>v</mi> <mi>e</mi> <msub> <mi>l</mi> <mn>2</mn> </msub> </mrow> </semantics></math> execution traces for the two related unit test cases presented in part (<b>a</b>). Part (<b>c</b>) shows one sample of <math display="inline"><semantics> <mrow> <mi>l</mi> <mi>e</mi> <mi>v</mi> <mi>e</mi> <msub> <mi>l</mi> <mn>3</mn> </msub> </mrow> </semantics></math> execution trace for the first unit test cases presented in parts (<b>a</b>,<b>b</b>). Samples of similar components across the three levels of traces are highlighted with the same rectangle color to emphasize the differences between these levels.</p>
Full article ">

Other

Jump to: Research

37 pages, 4751 KiB  
Systematic Review
Machine Learning-Based Methods for Code Smell Detection: A Survey
by Pravin Singh Yadav, Rajwant Singh Rao, Alok Mishra and Manjari Gupta
Appl. Sci. 2024, 14(14), 6149; https://doi.org/10.3390/app14146149 - 15 Jul 2024
Cited by 5 | Viewed by 2790
Abstract
Code smells are early warning signs of potential issues in software quality. Various techniques are used in code smell detection, including the Bayesian approach, rule-based automatic antipattern detection, antipattern identification utilizing B-splines, Support Vector Machine direct, SMURF (Support Vector Machines for design smell [...] Read more.
Code smells are early warning signs of potential issues in software quality. Various techniques are used in code smell detection, including the Bayesian approach, rule-based automatic antipattern detection, antipattern identification utilizing B-splines, Support Vector Machine direct, SMURF (Support Vector Machines for design smell detection using relevant feedback), and immune-based detection strategy. Machine learning (ML) has taken a great stride in this area. This study includes relevant studies applying ML algorithms from 2005 to 2024 in a comprehensive manner for the survey to provide insight regarding code smell, ML algorithms frequently applied, and software metrics. Forty-two pertinent studies allow us to assess the efficacy of ML algorithms on selected datasets. After evaluating various studies based on open-source and project datasets, this study evaluated additional threats and obstacles to code smell detection, such as the lack of standardized code smell definitions, the difficulty of feature selection, and the challenges of handling large-scale datasets. The current studies only considered a few factors in identifying code smells, while in this study, several potential contributing factors to code smells are included. Several ML algorithms are examined, and various approaches, datasets, dataset languages, and software metrics are presented. This study provides the potential of ML algorithms to produce better results and fills a gap in the body of knowledge by providing class-wise distributions of the ML algorithms. Support Vector Machine, J48, Naive Bayes, and Random Forest models are the most common for detecting code smells. Researchers can find this study helpful in better anticipating and taking care of software development design and implementation issues. The findings from this study, which highlight the practical implications of ML algorithms in software quality improvement, will help software engineers fix problems during software design and development to ensure software quality. Full article
(This article belongs to the Special Issue Artificial Intelligence in Software Engineering)
Show Figures

Figure 1

Figure 1
<p>Systematic literature review steps.</p>
Full article ">Figure 2
<p>A systematic literature review flow diagram of article inclusion.</p>
Full article ">Figure 3
<p>Distribution of studies during different years.</p>
Full article ">Figure 4
<p>Different ML algorithms used for detecting code smells.</p>
Full article ">Figure 5
<p>Number of research studies using distinct classes of ML algorithms: (<b>a</b>) bar graph of Decision Trees; (<b>b</b>) bar graph of Ensemble Learners; (<b>c</b>) bar graph of neural networks; (<b>d</b>) bar graph of Bayesian Learners; (<b>e</b>) bar graph of Rule-Based Learning; (<b>f</b>) bar graph of Support Vector Machines; (<b>g</b>) bar graph of miscellaneous classes.</p>
Full article ">Figure 5 Cont.
<p>Number of research studies using distinct classes of ML algorithms: (<b>a</b>) bar graph of Decision Trees; (<b>b</b>) bar graph of Ensemble Learners; (<b>c</b>) bar graph of neural networks; (<b>d</b>) bar graph of Bayesian Learners; (<b>e</b>) bar graph of Rule-Based Learning; (<b>f</b>) bar graph of Support Vector Machines; (<b>g</b>) bar graph of miscellaneous classes.</p>
Full article ">Figure 6
<p>Subclasses’ distribution of the Decision Tree, Bayesian learning, ensemble learning, SVM, Rule-Based Learning, neural network, and miscellaneous classification algorithms with appropriate study percentages: (<b>a</b>) Decision Tree-based code smell detection techniques; (<b>b</b>) Ensemble Learner-based code smell detection; (<b>c</b>) neural network-based code smell detection techniques; (<b>d</b>) Rule-Based Learning-based code smell detection techniques; (<b>e</b>) Bayesian Learner-based code smell detection techniques; (<b>f</b>) Support Vector Machine-based code smell detection approaches; (<b>g</b>) miscellaneous-based code smell detection techniques.</p>
Full article ">Figure 6 Cont.
<p>Subclasses’ distribution of the Decision Tree, Bayesian learning, ensemble learning, SVM, Rule-Based Learning, neural network, and miscellaneous classification algorithms with appropriate study percentages: (<b>a</b>) Decision Tree-based code smell detection techniques; (<b>b</b>) Ensemble Learner-based code smell detection; (<b>c</b>) neural network-based code smell detection techniques; (<b>d</b>) Rule-Based Learning-based code smell detection techniques; (<b>e</b>) Bayesian Learner-based code smell detection techniques; (<b>f</b>) Support Vector Machine-based code smell detection approaches; (<b>g</b>) miscellaneous-based code smell detection techniques.</p>
Full article ">Figure 7
<p>Number of studies of different code smells.</p>
Full article ">Figure 8
<p>List of frequently used metrics for code smell detection. ‘-’ represents some software metrics between the most and least frequently used metrics for clear visibility.</p>
Full article ">Figure 9
<p>Research conducted on the various datasets used in code smell detection.</p>
Full article ">Figure 10
<p>List of dataset languages used for code smell detection.</p>
Full article ">Figure 11
<p>Performance measures used in various types of research.</p>
Full article ">
Back to TopTop