Flow analysis for verifying properties of concurrent software systems
- 1 October 2004
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Software Engineering and Methodology
- Vol. 13 (4) , 359-430
- https://doi.org/10.1145/1040291.1040292
Abstract
This article describes FLAVERS, a finite-state verification approach that analyzes whether concurrent systems satisfy user-defined, behavioral properties. FLAVERS automatically creates a compact, event-based model of the system that supports efficient dataflow analysis. FLAVERS achieves this efficiency at the cost of precision. Analysts, however, can improve the precision of analysis results by selectively and judiciously incorporating additional semantic information into an analysis.We report on an empirical study of the performance of the FLAVERS/Ada toolset applied to a collection of multitasking Ada systems. This study indicates that sufficient precision for proving system properties can usually be achieved and that the cost for such analysis typically grows as a low-order polynomial in the size of the system.Keywords
This publication has 43 references indexed in Scilit:
- Context-sensitive synchronization-sensitive analysis is undecidableACM Transactions on Programming Languages and Systems, 2000
- The model checker SPINIEEE Transactions on Software Engineering, 1997
- Lattice frameworks for multisource and bidirectional data flow problemsACM Transactions on Programming Languages and Systems, 1995
- Combining analyses, combining optimizationsACM Transactions on Programming Languages and Systems, 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
- Interprocedural static analysis of sequencing constraintsACM Transactions on Software Engineering and Methodology, 1992
- 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
- A general-purpose algorithm for analyzing concurrent programsCommunications of the ACM, 1983