Preprint version. Published in First International Workshop on Living with Uncertainty in Software Engineering (IWLU’2007): Atlanta, GA,, November 1, 2007.
Copyright © ACM 2007. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published in First International Workshop on Living with Uncertainty in Software Engineering.
Uncertainty creeps into the software development process in many ways, shapes and forms. In the early stages of software development, key sources of uncertainty are the human stakeholders who help formulate the requirements of the software product. An added layer of uncertainty is inherent as requirements analysts have to deal with subjective, and often conflicting, estimates that humans make, estimates that may significantly affect both the software development process and the eventual software product. Our position is two-fold. We stipulate that in situations where analysts (and later developers) have to deal with human evaluations of uncertainty, special methods and procedures should be used to elicit this information, reconcile this information, and, most importantly, use this information for decision-making. We also note that significant developments are unfolding in the field of Artificial Intelligence in two areas related to dealing with uncertainty: eliciting data from domain experts, and using uncertain data for inference and planning. We believe that mitigation (and proper use) of uncertainty in the early stages of software development calls for collaboration between the fields of Software Engineering and Artificial Intelligence.