The specification and management of requirements is widely considered to be one of the most important yet most problematic activities in software engineering. In some applications, such as in safety critical areas or knowledge-based systems, the construction of a requirements domain theory is regarded as an important part of this activity. Building and maintaining such a domain theory, however, requires a large investment and a range of powerful validation and maintenance tools. The area of theory refinement is concerned with the use of training data to automatically change an existing theory so that it better fits the data. Theory refinement techniques, however, have not been extensively used in applications because of the problems in scaling up their underlying algorithms.
In our work we have applied theory refinement to assist in the problem of validation and maintenance of a requirements theory concerning separation standards in the North East Atlantic. In this paper we describe an implemented refinement algorithm, which processes a logic program automatically generated from the theory. We overcame the size and expressiveness problems typically encountered when applying theory refinement to a logic program of this kind by designing focused, composite refinement operators within the algorithm. These operators modify the auto-generated logic program by generalising or specialising clauses containing ordinal relations—that is relations which operate on totally ordered data