A Software Engineering Perspective on Engineering Machine Learning Systems: State of the Art and Challenges

by   Görkem Giray, et al.

Context: Advancements in machine learning (ML) lead to a shift from the traditional view of software development, where algorithms are hard-coded by humans, to ML systems materialized through learning from data. Therefore, we need to revisit our ways of developing software systems and consider the particularities required by these new types of systems. Objective: The purpose of this study is to systematically identify, analyze, summarize, and synthesize the current state of software engineering (SE) research for engineering ML systems. Method: I performed a systematic literature review (SLR). I systematically selected a pool of 65 studies from SE venues and then conducted a quantitative and qualitative analysis using the data extracted from these studies. Results: The non-deterministic nature of ML systems complicates all SE aspects of engineering ML systems. Despite increasing interest from 2018 onwards, the results reveal that none of the SE aspects have a mature set of tools and techniques. Testing is by far the most popular area among researchers. Even for testing ML systems, engineers have only some tool prototypes and solution proposals with weak experimental proof. Many of the challenges of ML systems engineering were identified through surveys and interviews. Researchers should conduct experiments and case studies, ideally in industrial environments, to further understand these challenges and propose solutions. Conclusion: The results may benefit (1) practitioners in foreseeing the challenges of ML systems engineering; (2) researchers and academicians in identifying potential research questions; and (3) educators in designing or updating SE courses to cover ML systems engineering.


page 8

page 16

page 33

page 34

page 35


Machine Learning for Software Engineering: A Tertiary Study

Machine learning (ML) techniques increase the effectiveness of software ...

A Systematic Literature Review of Explainable AI for Software Engineering

Context: In recent years, leveraging machine learning (ML) techniques ha...

On the Use of Deep Learning in Software Defect Prediction

Context: Automated software defect prediction (SDP) methods are increasi...

On the Suitability of Hugging Face Hub for Empirical Studies

Background. The development of empirical studies in software engineering...

Navigating the challenges in creating complex data systems: a development philosophy

In this perspective, we argue that despite the democratization of powerf...

A Survey on Machine Learning Techniques for Source Code Analysis

Context: The advancements in machine learning techniques have encouraged...

The entrepreneurial logic of startup software development: A study of 40 software startups

Context: Software startups are an essential source of innovation and sof...

Please sign up or login with your details

Forgot password? Click here to reset