A Software Engineering Perspective on Building Production-Ready Machine Learning Systems

Author(s):  
Petra Heck ◽  
Gerard Schouten ◽  
Luís Cruz

This chapter discusses how to build production-ready machine learning systems. There are several challenges involved in accomplishing this, each with its specific solutions regarding practices and tool support. The chapter presents those solutions and introduces MLOps (machine learning operations, also called machine learning engineering) as an overarching and integrated approach in which data engineers, data scientists, software engineers, and operations engineers integrate their activities to implement validated machine learning applications managed from initial idea to daily operation in a production environment. This approach combines agile software engineering processes with the machine learning-specific workflow. Following the principles of MLOps is paramount in building high-quality production-ready machine learning systems. The current state of MLOps is discussed in terms of best practices and tool support. The chapter ends by describing future developments that are bound to improve and extend the tool support for implementing an MLOps approach.

Author(s):  
Du Zhang

Software engineering research and practice thus far are primarily conducted in a value-neutral setting where each artifact in software development such as requirement, use case, test case, and defect, is treated as equally important during a software system development process. There are a number of shortcomings of such value-neutral software engineering. Value-based software engineering is to integrate value considerations into the full range of existing and emerging software engineering principles and practices. Machine learning has been playing an increasingly important role in helping develop and maintain large and complex software systems. However, machine learning applications to software engineering have been largely confined to the value-neutral software engineering setting. In this paper, the general message to be conveyed is to apply machine learning methods and algorithms to value-based software engineering. The training data or the background knowledge or domain theory or heuristics or bias used by machine learning methods in generating target models or functions should be aligned with stakeholders’ value propositions. An initial research agenda is proposed for machine learning in value-based software engineering.


Author(s):  
Jörg Rech ◽  
Christian Bogner

In many agile software engineering organizations there is not enough time to follow knowledge management processes, to retrieve knowledge in complex processes, or to systematically elicit knowledge. This chapter gives an overview about the human-centered design of semantically-enabled knowledge management systems based on Wikis used in agile software engineering environments. The methodology – developed in the RISE (Reuse in Software Engineering) project – enables and supports the design of human-centered knowledge sharing platforms, such as Wikis. Furthermore, the paper specifies requirements one should keep in mind when building human-centered systems to support knowledge management. A two-phase qualitative analysis showed that the knowledge management system acts as a flexible and customizable view on the information needed during working-time which strongly relieves software engineers from time-consuming retrieval activities. Furthermore, the observations gave some hints about how the software system supports the collection of vital working experiences and how it could be subsequently formed and refined.


IEEE Software ◽  
2018 ◽  
Vol 35 (5) ◽  
pp. 81-84 ◽  
Author(s):  
Foutse Khomh ◽  
Bram Adams ◽  
Jinghui Cheng ◽  
Marios Fokaefs ◽  
Giuliano Antoniol

Sign in / Sign up

Export Citation Format

Share Document