Abstract :
A regular relation R, is one for which R = R ∘ R ^ ∘ R, where ∘ is relational composition and ^ is relational transpose. By examining realistic case studies, and other examples, it is shown that when expressed using a rigorous specification notation, the majority of specifications turn out to be regular relations. This is certainly so for deterministic problems, and when abstraction relations are functions, reification preserves regularity. Nondeterministic specifications can appear to exhibit nonregularity, but at least in the most commonly occurring cases, it is argued that this is caused as much by a failure to separate concerns, as by any intrinsic lack of regularity in the specification. Such specifications can be recast into a regular form, and the process is analogous to a “transformation to orthogonal coordinates” of the original problem. A design philosophy is proposed, that places the search for regularity at the heart of specification construction, with implications for requirements capture.