Du Zhang
Department of Computer Science - California State University
6000 J Street Sacramento, CA 95819-6021 USA
FAX: 001 (916) 278-6774
zhangd@ecs.csus.edu
http://gaia.ecs.csus.edu/~zhangd/
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. In this paper, we first take a look at the characteristics and applicability of some frequently utilized machine learning algorithms, and the nature of some software development and maintenance tasks. We then provide formulations of those software development tasks using learning algorithms. Our hope is that this different perspective could afford us some new tools and techniques for software development and maintenance that will complement the existing ones.
Last Updated: May 8, 2000 by Elisabetta Ferrando