- Main
Constructing Bayesian-network models of software testing and maintenance uncertainties
Abstract
The lifetime of many software systems is surprisingly long, often far exceeding initial plans and expectations. During development and maintenance of long-lived software, requirements are analyzed and specified, designs and code modules are developed, testing is planned, and code is tested many times. Consequently, developers and managers frequently lose or gain confidence in software artifacts, especially when existing uncertainties are relieved or when new uncertainties are encountered. Fluctuations in developers' confidences may in turn affect process actions or decisions, for instance determining the impact of change, the need for regression testing, or when to stop testing. In this paper, we present an approach that allows for developers' confidences or "beliefs" regarding software components to be modeled and updated directly. This approach is part of an overall strategy that calls for explicit modeling of software engineering uncertainties using an established technique for uncertainty modeling called Bayesian belief networks. Here, we present several types of software uncertainty and how they may be modeled directly. We also introduce Bayesian belief networks and how they may be used to either confirm, evaluate or predict software uncertainties. We discuss our experiences with constructing Bayesian-network models of uncertainty for an existing system developed at Beckman Instruments. Once constructed, these models may be used by developers and managers in future software understanding, evolution, and maintenance activities. We also list factors affecting levels of confidence in system artifacts, identified in interviews with Beckman developers. Finally, we describe our design and implementation of a Java program that allows software systems and associated beliefs to be modeled explicitly.
Main Content
Enter the password to open this PDF file:
-
-
-
-
-
-
-
-
-
-
-
-
-
-