Model checking large software specifications
- 1 July 1998
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Software Engineering
- Vol. 24 (7) , 498-520
- https://doi.org/10.1109/32.708566
Abstract
In this paper, we present our experiences in using symbolic model checking to analyze a specification of a software system for aircraft collision avoidance. Symbolic model checking has been highly successful when applied to hardware systems. We are interested in whether model checking can be effectively applied to large software specifications. To investigate this, we translated a portion of the state-based system requirements specification of Traffic Alert and Collision Avoidance System II (TCAS II) into input to a symbolic model checker (SMV). We successfully used the symbolic model checker to analyze a number of properties of the system. We report on our experiences, describing our approach to translating the specification to the SMV language, explaining our methods for achieving acceptable performance, and giving a summary of the properties analyzed. Based on our experiences, we discuss the possibility of using model checking to aid specification development by iteratively applying the technique early in the development cycle. We consider the paper to be a data point for optimism about the potential for more widespread application of model checking to software systems.Keywords
This publication has 37 references indexed in Scilit:
- Formalizing space shuttle software requirementsACM Transactions on Software Engineering and Methodology, 1998
- Symbolic model checking for event-driven real-time systemsACM Transactions on Programming Languages and Systems, 1997
- Elements of style: analyzing a software design feature with a counterexample detectorIEEE Transactions on Software Engineering, 1996
- Completeness and consistency in hierarchical state-based requirementsIEEE Transactions on Software Engineering, 1996
- Evaluating deadlock detection methods for concurrent softwareIEEE Transactions on Software Engineering, 1996
- A brief study of BDD package performancePublished by Springer Nature ,1996
- The algorithmic analysis of hybrid systemsTheoretical Computer Science, 1995
- The concurrency workbenchACM Transactions on Programming Languages and Systems, 1993
- On the complexity of VLSI implementations and graph representations of Boolean functions with application to integer multiplicationIEEE Transactions on Computers, 1991
- Statecharts: a visual formalism for complex systemsScience of Computer Programming, 1987