Machine Learning and Value-Based Software Engineering

Machine Learning and Value-Based Software Engineering

Du Zhang (California State University, USA)
Copyright: © 2012 |Pages: 15
DOI: 10.4018/978-1-4666-0261-8.ch017


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.
Chapter Preview

In this section, we provide a brief account for some of the major and emerging software development paradigms which are related to the main theme of this paper. The intent is to highlight the state-of-the-art in the software development landscape and to delineate differences between the existing approaches and the one advocated in this paper.

Besides machine learning in (value-neutral) software engineering (MLSE), there are a number of related and emerging software development paradigms: search-based software engineering (SBSE), evidence-based software engineering (EBSE), model-based software engineering (MBSE), artificial intelligence in software engineering (AISE), and computational intelligence in software engineering (CISE). Figure 1 highlights their similarities and differences.

Figure 1.

Emerging software development paradigms


Complete Chapter List

Search this Book: