|
Abstract : |
In an evolving specification, considerable development time and effort is spent handling recurrent inconsistencies. Tools and techniques for detecting and resolving inconsistencies only address part of the problem: they do not ensure that a resolution generated at a particular stage will apply at all subsequent stages of the specification process. Previously, we have advocated tolerance and management of inconsistency, rather than strict enforcement of consistency. The advantages of this approach include the ability to delay resolution, facilitation of concurrent development, and greater flexibility in development strategies. However, this approach does not prevent inconsistencies themselves from evolving, and it does not ensure that resolved inconsistencies remain resolved throughout subsequent developments. We address these problems by explicitly recording relationships between partial specifications (ViewPoints), representing both resolved and unresolved inconsistencies. We assume that ViewPoints will often be inconsistent with one another, and we ensure that a complete work record is kept, detailing any inconsistencies that have been detected, and what actions, if any, have been taken to resolve them. This work record is then used to reason about the effects of subsequent changes to the ViewPoints, without constraining the development process. We illustrate the approach through a case study. 1., |