Checking safety properties using compositional reachability analysis
- 1 January 1999
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Software Engineering and Methodology
- Vol. 8 (1) , 49-78
- https://doi.org/10.1145/295558.295570
Abstract
The software architecture of a distributed program can be represented by a hierarchical composition of subsystems, with interacting processes at the leaves of the hierarchy. Compositional reachability analysis (CRA) is a promising state reduction technique which can be automated and used in stages to derive the overall behavior of a distributed program based on its architecture. CRA is particularly suitable for the analysis of programs that are subject to evolutionary change. When a program evolves, only the behaviors of those subsystems affected by the change need be reevaluated. The technique however has a limitation. The properties available for analysis are constrained by the set of actions that remain globally observable. Properties involving actions encapsulated by subsystems may therefore not be analyzed. In this article, we enhance the CRA technique to check safety properties which may contain actions that are not globally observable. To achieve this, the state machine model is augmented with a special trap state labeled as &pgr;. We propose a scheme to transform, in stages, a property that involves hidden actions to one that involves only globally observable actions. The enhanced technique also includes a mechanism aiming at reducing the debugging effort. The technique is illustrated using a gas station system example.Keywords
This publication has 26 references indexed in Scilit:
- The model checker SPINIEEE Transactions on Software Engineering, 1997
- Evaluating deadlock detection methods for concurrent softwareIEEE Transactions on Software Engineering, 1996
- Graph models for reachability analysis of concurrent programsACM Transactions on Software Engineering and Methodology, 1995
- Using integer programming to verify general safety and liveness propertiesFormal Methods in System Design, 1995
- A concurrency analysis tool suite for Ada programsACM Transactions on Software Engineering and Methodology, 1995
- Tractable dataflow analysis for distributed systemsIEEE Transactions on Software Engineering, 1994
- Automated analysis of concurrent systems with the constrained expression toolsetIEEE Transactions on Software Engineering, 1991
- Cecil: a sequencing constraint language for automatic static analysis generationIEEE Transactions on Software Engineering, 1990
- An algorithmic procedure for checking safety properties of protocolsIEEE Transactions on Communications, 1989
- A general-purpose algorithm for analyzing concurrent programsCommunications of the ACM, 1983