Challenges in Using Machine Learning to Support 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: closed (31 January 2023) | Viewed by 7423

Special Issue Editors


E-Mail Website
Guest Editor
Computer Science and Communications Research Centre, School of Technology and Management, Polytechnic of Leiria, Morro do Lena-Alto do Vieiro, Apartado 4163, 2411-901 Leiria, Portugal
Interests: mobile computing; search-based software engineering; genetic programming; context-aware systems
Special Issues, Collections and Topics in MDPI journals

E-Mail Website
Guest Editor
Computer Science and Communications Research Centre, School of Technology and Management, Polytechnic of Leiria, Morro do Lena-Alto do Vieiro, Apartado 4163, 2411-901 Leiria, Portugal
Interests: signal processing; artificial intelligence; deep learning; genetic programming
Special Issues, Collections and Topics in MDPI journals

Special Issue Information

Dear Colleagues,

The next decade will be full of technological advances that will present numerous challenges and opportunities for the software engineering (SE) discipline. The application of artificial-intelligence and machine-learning (AI/ML) techniques to SE has been extensively studied, but many issues and areas of application remain open for investigation. The growing ability of machines to learn and act intelligently will continue to guide the transformation process of the world in which we live. Forbes identifies AI/ML as the leading strategic technology trend for the next decade, and the IDC indicates that, even with the effects of the pandemic being felt globally, growth in this area is expected to continue accelerating during the next quinquennium. There is an urgent need to explore the opportunities created by AI/ML to leverage research in the area of SE, as software and application vendors should continue incorporating AI/ML as a differentiating aspect to increase adoption and deliver benefits to their customers and users, as well as improve return on investment and achieve cost savings.

Search-based software engineering (SBSE) seeks to reformulate SE challenges as search-based optimization problems, typically through the application of evolutionary algorithms or ML. It has already been applied to a wide variety of areas in SE, including requirements engineering, project planning and cost estimation, automated maintenance, or quality assessment. Most of the global literature in the area of SBSE is, however, dedicated to applications related to software testing—with the generation of test data being the most studied topic. Leveraging AI for automating the processes of creating, executing, and verifying software testing remains critical for improving the quality of the complex software systems that have become the norm of modern society.

The application of ML techniques also possesses enormous potential for applicability in the area of process mining and for improving the quality of processes in an enterprise environment, particularly in the context of DevOps practices. The intricate software development ecosystems of modern enterprises, with an emphasis on the continuous integration/continuous delivery (CI/CD) pipelines, include several sources that can help understand the quality of processes and products, such as source code repositories and version control systems, static-analysis tools, continuous-integration servers, testing tools, bug-tracking systems, or incident management tools. However, to achieve this goal, it is necessary to systematically collect, store, and analyze information; raw data can then, through ML- and data-mining-automated mechanisms, generate valuable information capable of providing insight, supporting strategies for enabling the identification and even the prediction of defects and failures, and allowing teams to prioritize efforts through alert and recommendation mechanisms.

Dr. José Carlos Bregieiro Ribeiro
Dr. Rolando Miragaia
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 and machine learning (AI/ML)
  • search-based software engineering
  • search-based test data generation
  • process mining
  • data mining
  • evolutionary testing

Published Papers (4 papers)

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

Research

10 pages, 241 KiB  
Article
Predicting Software Cohesion Metrics with Machine Learning Techniques
by Elif Nur Haner Kırğıl and Tülin Erçelebi Ayyıldız
Appl. Sci. 2023, 13(6), 3722; https://0-doi-org.brum.beds.ac.uk/10.3390/app13063722 - 15 Mar 2023
Cited by 4 | Viewed by 1237
Abstract
The cohesion value is one of the important factors used to evaluate software maintainability. However, measuring the cohesion value is a relatively difficult issue when tracing the source code manually. Although there are many static code analysis tools, not every tool measures every [...] Read more.
The cohesion value is one of the important factors used to evaluate software maintainability. However, measuring the cohesion value is a relatively difficult issue when tracing the source code manually. Although there are many static code analysis tools, not every tool measures every metric. The user should apply different tools for different metrics. In this study, besides the use of these tools, we predicted the cohesion values (LCOM2, TCC, LCC, and LSCC) with machine learning techniques (KNN, REPTree, multi-layer perceptron, linear regression (LR), support vector machine, and random forest (RF)) to solve them alternatively. We created two datasets utilizing two different open-source software projects. According to the obtained results, for the LCOM2 and TCC metrics, the KNN algorithm provided the best results, and for LCC and LSCC metrics, the REPTree algorithm was the best. However, out of all the metrics, RF, REPTree, and KNN had close performances with each other, and therefore any of the RF, REPTree, and KNN techniques can be used for software cohesion metric prediction. Full article
(This article belongs to the Special Issue Challenges in Using Machine Learning to Support Software Engineering)
33 pages, 2847 KiB  
Article
Exploring the Intersection between Software Maintenance and Machine Learning—A Systematic Mapping Study
by Oscar Ancán Bastías, Jaime Díaz and Julio López Fenner
Appl. Sci. 2023, 13(3), 1710; https://0-doi-org.brum.beds.ac.uk/10.3390/app13031710 - 29 Jan 2023
Cited by 4 | Viewed by 2417
Abstract
While some areas of software engineering knowledge present great advances with respect to the automation of processes, tools, and practices, areas such as software maintenance have scarcely been addressed by either industry or academia, thus delegating the solution of technical tasks or human [...] Read more.
While some areas of software engineering knowledge present great advances with respect to the automation of processes, tools, and practices, areas such as software maintenance have scarcely been addressed by either industry or academia, thus delegating the solution of technical tasks or human capital to manual or semiautomatic forms. In this context, machine learning (ML) techniques play an important role when it comes to improving maintenance processes and automation practices that can accelerate delegated but highly critical stages when the software launches. The aim of this article is to gain a global understanding of the state of ML-based software maintenance by using the compilation, classification, and analysis of a set of studies related to the topic. The study was conducted by applying a systematic mapping study protocol, which was characterized by the use of a set of stages that strengthen its replicability. The review identified a total of 3776 research articles that were subjected to four filtering stages, ultimately selecting 81 articles that were analyzed thematically. The results reveal an abundance of proposals that use neural networks applied to preventive maintenance and case studies that incorporate ML in subjects of maintenance management and management of the people who carry out these tasks. In the same way, a significant number of studies lack the minimum characteristics of replicability. Full article
(This article belongs to the Special Issue Challenges in Using Machine Learning to Support Software Engineering)
Show Figures

Figure 1

21 pages, 1114 KiB  
Article
Software Fault Prediction Using an RNN-Based Deep Learning Approach and Ensemble Machine Learning Techniques
by Emin Borandag
Appl. Sci. 2023, 13(3), 1639; https://0-doi-org.brum.beds.ac.uk/10.3390/app13031639 - 27 Jan 2023
Cited by 8 | Viewed by 1975
Abstract
Alongside the modern software development life cycle approaches, software testing has gained more importance and has become an area researched actively within the software engineering discipline. In this study, machine learning and deep learning-related software fault predictions were made through a data set [...] Read more.
Alongside the modern software development life cycle approaches, software testing has gained more importance and has become an area researched actively within the software engineering discipline. In this study, machine learning and deep learning-related software fault predictions were made through a data set named SFP XP-TDD, which was created using three different developed software projects. A data set of five different classifiers widely used in the literature and their Rotation Forest classifier ensemble versions were trained and tested using this data set. Numerous publications in the literature discussed software fault predictions through ML algorithms addressing solutions to different problems. Some of these articles indicated the usage of feature selection algorithms to improve classification performance, while others reported operating ensemble machine learning algorithms for software fault predictions. Besides, a detailed literature review revealed that there were few studies involving software fault prediction with DL algorithms due to the small sample sizes in the data sets and the low success rates in the tests performed on these datasets. As a result, the major contribution of this research was to statistically demonstrate that DL algorithms outperformed ML algorithms in data sets with large sample values via employing three separate software fault prediction datasets. The experimental outcomes of a model that includes a layer of recurrent neural networks (RNNs) were enclosed within this study. Alongside the aforementioned and generated data sets, the study also utilized the Eclipse and Apache Active MQ data sets in to test the effectiveness of the proposed deep learning method. Full article
(This article belongs to the Special Issue Challenges in Using Machine Learning to Support Software Engineering)
Show Figures

Figure 1

19 pages, 686 KiB  
Article
Joint Embedding of Semantic and Statistical Features for Effective Code Search
by Xianglong Kong, Supeng Kong, Ming Yu and Chengjie Du
Appl. Sci. 2022, 12(19), 10002; https://0-doi-org.brum.beds.ac.uk/10.3390/app121910002 - 05 Oct 2022
Cited by 2 | Viewed by 1300
Abstract
Code search is an important approach to improve effectiveness and efficiency of software development. The current studies commonly search target code based on either semantic or statistical information in large datasets. Semantic and statistical information have hidden relationships between them since they describe [...] Read more.
Code search is an important approach to improve effectiveness and efficiency of software development. The current studies commonly search target code based on either semantic or statistical information in large datasets. Semantic and statistical information have hidden relationships between them since they describe code snippets from different perspectives. In this work, we propose a joint embedding model of semantic and statistical features to improve the effectiveness of code annotation. Then, we implement a code search engine, i.e., JessCS, based on the joint embedding model. We evaluate JessCS on more than 1 million lines of code snippets and corresponding descriptions. The experimental results show that JessCS performs more effective than UNIF-based approach, with at least 13% improvements on the studied metrics. Full article
(This article belongs to the Special Issue Challenges in Using Machine Learning to Support Software Engineering)
Show Figures

Figure 1

Back to TopTop