Title :
Using abstraction and model checking to detect safety violations in requirements specifications
Author :
Heitmeyer, Constance ; Kirby, James, Jr. ; Labaw, Bruce ; Archer, Myla ; Bharadwaj, Ramesh
Author_Institution :
Centre for High Assurance Comput. Syst., Naval Res. Lab., Washington, DC, USA
fDate :
11/1/1998 12:00:00 AM
Abstract :
Exposing inconsistencies can uncover many defects in software specifications. One approach to exposing inconsistencies analyzes two redundant specifications, one operational and the other property-based, and reports discrepancies. This paper describes a “practical” formal method, based on this approach and the SCR (software cost reduction) tabular notation, that can expose inconsistencies in software requirements specifications. Because users of the method do not need advanced mathematical training or theorem-proving skills, most software developers should be able to apply the method without extraordinary effort. This paper also describes an application of the method which exposed a safety violation in the contractor-produced software requirements specification of a sizable, safety-critical control system. Because the enormous state space of specifications of practical software usually renders direct analysis impractical, a common approach is to apply abstraction to the specification. To reduce the state space of the control system specification, two “pushbutton” abstraction methods were applied, one which automatically removes irrelevant variables and a second which replaces the large, possibly infinite, type sets of certain variables with smaller type sets. Analyzing the reduced specification with the model checker Spin uncovered a possible safety violation. Simulation demonstrated that the safety violation was not spurious but an actual defect in the original specification
Keywords :
computerised control; formal specification; program verification; safety-critical software; software cost estimation; SCR tabular notation; Spin model checker; consistency checking; contractor-produced specification; discrepancies; formal verification; inconsistencies; infinite type sets; irrelevant variable removal; model checking; operational specification; property-based specification; pushbutton abstraction methods; reduced specification; redundant specifications; safety analysis; safety violation detection; safety-critical control system; simulation; software cost reduction; software requirements specifications; software specification defects; state space reduction; Aerospace electronics; Analytical models; Application software; Automatic control; Control systems; Costs; Software safety; Software tools; State-space methods; Thyristors;
Journal_Title :
Software Engineering, IEEE Transactions on