Breaking up is hard to do
- 1 April 2008
- journal article
- research article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Software Engineering and Methodology
- Vol. 17 (2) , 1-52
- https://doi.org/10.1145/1348250.1348253
Abstract
Finite-state verification techniques are often hampered by the state-explosion problem. One proposed approach for addressing this problem is assume-guarantee reasoning, where a system under analysis is partitioned into subsystems and these subsystems are analyzed individually. By composing the results of these analyses, it can be determined whether or not the system satisfies a property. Because each subsystem is smaller than the whole system, analyzing each subsystem individually may reduce the overall cost of verification. Often the behavior of a subsystem is dependent on the subsystems with which it interacts, and thus it is usually necessary to provide assumptions about the environment in which a subsystem executes. Because developing assumptions has been a difficult manual task, the evaluation of assume-guarantee reasoning has been limited. Using recent advances for automatically generating assumptions, we undertook a study to determine if assume-guarantee reasoning provides an advantage over monolithic verification. In this study, we considered all two-way decompositions for a set of systems and properties, using two different verifiers, FLAVERS and LTSA. By increasing the number of repeated tasks in these systems, we evaluated the decompositions as they were scaled. We found that in only a few cases can assume-guarantee reasoning verify properties on larger systems than monolithic verification can, and in these cases the systems that can be analyzed are only a few sizes larger. Although these results are discouraging, they provide insight about research directions that should be pursued and highlight the importance of experimental evaluation in this area.Keywords
Funding Information
- Division of Computing and Communication Foundations (CCR-0205575CCF-0427071CCF-0541035)
- Army Research Office (DAAD190110564, DAAD190310133)
- National Science Foundation (CCR-0205575CCF-0427071CCF-0541035)
This publication has 28 references indexed in Scilit:
- Flow analysis for verifying properties of concurrent software systemsACM Transactions on Software Engineering and Methodology, 2004
- Improving the precision of INCA by eliminating solutions with spurious cyclesIEEE Transactions on Software Engineering, 2002
- Static checking of system behaviors using derived component assumptionsACM Transactions on Software Engineering and Methodology, 2000
- Benchmarking finite-state verifiersInternational Journal on Software Tools for Technology Transfer, 2000
- Context constraints for compositional reachability analysisACM Transactions on Software Engineering and Methodology, 1996
- Using integer programming to verify general safety and liveness propertiesFormal Methods in System Design, 1995
- Model checking and modular verificationACM Transactions on Programming Languages and Systems, 1994
- Interprocedural static analysis of sequencing constraintsACM Transactions on Software Engineering and Methodology, 1992
- STATEMATE: a working environment for the development of complex reactive systemsIEEE Transactions on Software Engineering, 1990
- An axiomatic basis for computer programmingCommunications of the ACM, 1969