Using abstraction and model checking to detect safety violations in requirements specifications

被引:93
|
作者
Heitmeyer, C [1 ]
Kirby, J [1 ]
Labaw, B [1 ]
Archer, M [1 ]
Bharadwaj, R [1 ]
机构
[1] USN, Res Lab, Ctr High Assurance Comp Syst, Washington, DC 20375 USA
关键词
requirements; specification; abstraction; model checking; formal methods; verification; safety analysis; simulation; consistency checking; SCR;
D O I
10.1109/32.730543
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页码:927 / 948
页数:22
相关论文
共 50 条
  • [1] Model Checking Complete Requirements Specifications Using Abstraction
    Bharadwaj R.
    Heitmeyer C.L.
    Automated Software Engineering, 1999, 6 (1) : 37 - 68
  • [2] Model checking complete requirements specifications using abstraction
    Bharadwaj, Ramesh
    Heitmeyer, Constance L.
    Automated Software Engineering, 1999, 6 (01): : 37 - 68
  • [3] Model checking software requirement specifications using domain reduction abstraction
    Choi, Y
    Heimdahl, M
    18TH IEEE INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING, PROCEEDINGS, 2003, : 314 - 317
  • [4] Using model checking to generate tests from requirements specifications
    Gargantini, A
    Heitmeyer, C
    SOFTWARE ENGINEERING - ESEC/FSE '99, PROCEEDINGS, 1999, 1687 : 146 - 162
  • [5] Model checking early requirements specifications in Tropos
    Fuxman, A
    Pistore, M
    Mylopoulos, J
    Traverso, P
    FIFTH IEEE INTERNATIONAL SYMPOSIUM ON REQUIREMENTS ENGINEERING, PROCEEDINGS, 2001, : 174 - 181
  • [6] Automatic Verification of Behavior of UML Requirements Specifications using Model Checking
    Matsuura, Saeko
    Ikeda, Sae
    Yokotae, Kasumi
    PROCEEDINGS OF THE 8TH INTERNATIONAL CONFERENCE ON MODEL-DRIVEN ENGINEERING AND SOFTWARE DEVELOPMENT (MODELSWARD), 2020, : 158 - 166
  • [7] Analyzing tabular requirements specifications using infinite state model checking
    Bultan, Tevfik
    Heitmeyer, Constance
    FOURTH ACM & IEEE INTERNATIONAL CONFERENCE ON FORMAL METHODS AND MODELS FOR CO-DESIGN, PROCEEDINGS, 2006, : 7 - +
  • [8] A Systematic Approach to Transforming System Requirements into Model Checking Specifications
    Aceituna, Daniel
    Do, Hyunsook
    Srinivasan, Sudarshan
    36TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE COMPANION 2014), 2014, : 165 - 174
  • [9] Evaluating Model Testing and Model Checking for Finding Requirements Violations in Simulink Models
    Nejati, Shiva
    Gaaloul, Khouloud
    Menghi, Claudio
    Briand, Lionel C.
    Foster, Stephen
    Wolfe, David
    ESEC/FSE'2019: PROCEEDINGS OF THE 2019 27TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, 2019, : 1015 - 1025
  • [10] Refining Task Specifications Using Model Checking
    Yeolekar, Anand
    Metta, Ravindra
    Venkatesh, R.
    Chakraborty, Samarjit
    2018 IEEE 24TH INTERNATIONAL CONFERENCE ON EMBEDDED AND REAL-TIME COMPUTING SYSTEMS AND APPLICATIONS (RTCSA), 2018, : 185 - 191