Using Abduction to Evolve Inconsistent Requirements Specifications
Abstract
Requirements specifications are often inconsistent. Inconsistencies
may arise because multiple conflicting requirements are embodied in these
specifications, or because the specifications themselves are in a transient
stage of evolutionary development. In this paper we argue that such
inconsistencies, rather than being undesirable, are actually useful
drivers for changing the requirements specifications in which they arise.
We present a formal technique to reason about inconsistency handling
changes. Our technique is an adaptation of logical abduction - adapted
to generate changes that address some specification inconsistencies,
while leaving others. We represent our specifications in quasi-classical
(QC) logic - an adaptation of classical logic that allows continued
reasoning in the presence of inconsistency. The paper develops a sound
algorithm for automating our abductive reasoning technique and presents
illustrative examples drawn from a library system case study.
A short version of this paper is in Proceedings of ICSE-99 Workshop on
"Software Change and Evolution" (SCE'99), LA, California, USA, 17th May 1999.
This is also available over the Web in pdf form:
[nuseibeh.sce99.pdf]
The full extended version appears in Austrialian Journal of Information Systems, Vol. 7, No. 1.
Special Issue on "Requirements Engineering",
ISSN: 1039-7841, 1999.
This is also available over the Web in pdf form:
[AJIS99.pdf]
This research was sponsored by the
EPSRC,
under a research project entitled
Managing Inconsistency in Software Engineering.