Machine Learning and Software Engineering

  • Authors:
  • Du Zhang;Jeffrey J. P. Tsai

  • Affiliations:
  • Department of Computer Science, California State University, Sacramento, CA 95819-6021 zhangd@ecs.csus.edu;Department of Computer Science, University of Illinois, Chicago, IL 60607 tsai@cs.uic.edu

  • Venue:
  • Software Quality Control
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

Machine learning deals with the issue of how to build programs that improve their performance at some task through experience. Machine learning algorithms have proven to be of great practical value in a variety of application domains. They are particularly useful for (a) poorly understood problem domains where little knowledge exists for the humans to develop effective algorithms; (b) domains where there are large databases containing valuable implicit regularities to be discovered; or (c) domains where programs must adapt to changing conditions. Not surprisingly, the field of software engineering turns out to be a fertile ground where many software development and maintenance tasks could be formulated as learning problems and approached in terms of learning algorithms. This paper deals with the subject of applying machine learning in software engineering. In the paper, we first provide the characteristics and applicability of some frequently utilized machine learning algorithms. We then summarize and analyze the existing work and discuss some general issues in this niche area. Finally we offer some guidelines on applying machine learning methods to software engineering tasks and use some software development and maintenance tasks as examples to show how they can be formulated as learning problems and approached in terms of learning algorithms.