Tools for formal specification, verification, and validation of requirements

Although formal methods for developing computer systems have been available for more than a decade, few have had significant impact in practice. A major barrier to their use is that software developers find formal methods difficult to understand and apply. One exception is a formal method called SCR for specifying computer system requirements which, due to its easy to use tabular notation and its demonstrated scalability, has already achieved some success in industry. Recently a set of software tools, including a specification editor, a consistency checker, a simulator, and a verifier has been developed to support the SCR method. This paper describes recent enhancements to the SCR tools: a new dependency graph browser which displays the dependencies among the variables in the specification, an improved consistency checker which produces detailed feedback about detected errors, and an assertion checker which checks application properties during simulation. To illustrate the tool enhancements, a simple automobile cruise control system is presented and analyzed.

[1]  David Lorge Parnas,et al.  Functional Documents for Computer Systems , 1995, Sci. Comput. Program..

[2]  Sharon L. Smith,et al.  STATEMATE and cruise control: a case study , 1988, Proceedings COMPSAC 88: The Twelfth Annual International Computer Software & Applications Conference.

[3]  Mary Shaw,et al.  Comparing Architectural Design Styles , 1995, IEEE Softw..

[4]  Constance L. Heitmeyer,et al.  SCR: a toolset for specifying and analyzing requirements , 1995, COMPASS '95 Proceedings of the Tenth Annual Conference on Computer Assurance Systems Integrity, Software Safety and Process Security'.

[5]  Joanne M. Atlee,et al.  State-based model checking of event-driven system requirements , 1991 .

[6]  D. N. Hoover,et al.  Tablewise, a decision table tool , 1995, COMPASS '95 Proceedings of the Tenth Annual Conference on Computer Assurance Systems Integrity, Software Safety and Process Security'.

[7]  Natarajan Shankar,et al.  Formal Verification for Fault-Tolerant Architectures: Prolegomena to the Design of PVS , 1995, IEEE Trans. Software Eng..

[8]  R. Goodstein FIRST-ORDER LOGIC , 1969 .

[9]  R W Butler,et al.  An Introduction to Requirements Capture Using PVS: Specification of a Simple Autopilot , 1996 .

[10]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[11]  Constance L. Heitmeyer,et al.  Automated consistency checking of requirements specifications , 1996, TSEM.

[12]  A. Bull,et al.  A Toolset for Specifying and Analyzing Requirements , 1995 .

[13]  Myla Archer,et al.  Mechanical verification of timed automata: a case study , 1996, Proceedings Real-Time Technology and Applications.

[14]  Gerard J. Holzmann,et al.  Design and validation of computer protocols , 1991 .

[15]  Nancy G. Leveson,et al.  Requirements Specification for Process-Control Systems , 1994, IEEE Trans. Software Eng..

[16]  Myla Archer,et al.  TAME: A Specialized Specification and Verification System for Timed Automata , 1996 .

[17]  Constance L. Heitmeyer,et al.  Consistency checking of SCR-style requirements specifications , 1995, Proceedings of 1995 IEEE International Symposium on Requirements Engineering (RE'95).

[18]  Nancy G. Leveson,et al.  Completeness and Consistency Analysis of State-Based Requirements , 1995, 1995 17th International Conference on Software Engineering.

[19]  John Gannon,et al.  State-based model checking of event-driven system requirements , 1991, SIGSOFT '91.

[20]  Constance L. Heitmeyer,et al.  Verifying SCR Requirements Specifications Using State Exploration , 1997 .

[21]  William Pugh,et al.  A practical algorithm for exact array dependence analysis , 1992, CACM.

[22]  David Lorge Parnas,et al.  Software Requirements for the A-7E Aircraft. , 1992 .