Using Abduction to Evolve Inconsistent Requirements Specifications

Bashar Nuseibeh an Alessandra Russo

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.