2 research outputs found
Software engineering for artificial intelligence and machine learning software: A systematic literature review
Artificial Intelligence (AI) or Machine Learning (ML) systems have been
widely adopted as value propositions by companies in all industries in order to
create or extend the services and products they offer. However, developing
AI/ML systems has presented several engineering problems that are different
from those that arise in, non-AI/ML software development. This study aims to
investigate how software engineering (SE) has been applied in the development
of AI/ML systems and identify challenges and practices that are applicable and
determine whether they meet the needs of professionals. Also, we assessed
whether these SE practices apply to different contexts, and in which areas they
may be applicable. We conducted a systematic review of literature from 1990 to
2019 to (i) understand and summarize the current state of the art in this field
and (ii) analyze its limitations and open challenges that will drive future
research. Our results show these systems are developed on a lab context or a
large company and followed a research-driven development process. The main
challenges faced by professionals are in areas of testing, AI software quality,
and data management. The contribution types of most of the proposed SE
practices are guidelines, lessons learned, and tools.Comment: The paper is under submission to the Journal of System and Softwar
A Software Engineering Perspective on Engineering Machine Learning Systems: State of the Art and Challenges
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 141 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.Comment: accepted by the Journal of Systems and Software on 15 June 202