Next: Future Work
Up: Conclusions and Future Work
Previous: Conclusions and Future Work
This dissertation offers the following contributions:
-
Defining the Maxim of Uncertainty in Software
Engineering. This maxim recognizes the abundance
of software uncertainties and their relations and
impacts on process decisions and risk management.
Also, as corollary, it is suggested that software
development include the search,
identification, modeling and management of software
uncertainties.
-
Defining an approach to explicitly model uncertainty
using software belief networks. This approach
is anchored in a Bayesian interpretation of relationships
and dependencies among software artifacts. It includes
notions of human judgment, confidence, belief, and evidence,
often ignored by software modeling techniques.
-
Implementing the SoftBayes Java applet.
This applet allows software systems to be defined
as graphs of related artifacts and to be annotated
with uncertainty information.
Once defined, software belief networks are subject to
Bayesian updating, using a core engine such as provided
by JavaBayes.
-
Conducting a case study to substantiate the maxim above and
to evaluate the applicability of Bayesian belief networks
to a real software project. Results of the CEquencer study
indicate that explicit
modeling of software uncertainties improves developers'
ability to identify and track changes to levels of
confidence in software artifacts and relations.
-
Finally, several confidence factors were identified
as influencing expert's beliefs in software requirements.
Recording those confidence factors is deemed beneficial
to future similar projects where requirements uncertainty
is captured explicitly.
Several impediments
and limitations of our approach were observed, including
the initial cost of obtaining prior belief values, the
need to ensure that software belief networks retain
causality and variable independence, and the assumption
that software developers, domain experts, and related
project information are available and accessible.
Our experience in using Bayesian networks for software
uncertainty modeling, specifically for the CEquencer
system, indicates that:
-
The conceptual view of both software systems and Bayesian networks
as interrelated ``webs'' of nodes and links seems to offer a
convenient metaphor that also maps well into subsequent design
and implementation. Specifically, early depictions of CEquencer
artifact webs were developed as Java applets and placed on the
World Wide Web (see [Ziv97]); these applets were
then viewed and reviewed by Beckman developers for accuracy
and relevancy.
-
The CEquencer system, like most other software, proved to be
fraught with uncertainties, thereby confirming our suspicions
for at least one real-life system. Specifically, CEquencer
software embodies many, often subtle, problem domain
uncertainties, including uncertainties stemming from
laws of physics and chemistry in the software's operational
environment as well as from vaguely defined boundaries
between software versus hardware components.
-
Our notion of software uncertainties was
well received by Beckman developers, offering convenient
means in which to describe their confidences and beliefs
regarding CEquencer software. The CEquencer requirements
analyst has recently incorporated confidence levels into
her requirements capture process.
-
The questionnaire session at Beckman revealed that,
for the given set of questions, a significant
difference between the means of the subjects' scores was
identified. This suggests that subjects' ability to
answer the questions increased with the addition of
confidence level information. This confirms a
statistically significant relationship between the
availability of confidence level information and
developers' ability to trace and track software
artifacts and related confidences.
Next: Future Work
Up: Conclusions and Future Work
Previous: Conclusions and Future Work
Hadar Ziv
Fri Jun 20 16:25:19 PDT 1997