Procedure Extraction to Improve Scalability of Software Model Checking

Jianyu Xiao,Deyun Zhang,Weibin Zheng
DOI: https://doi.org/10.3321/j.issn:0253-987X.2006.06.003
2006-01-01
Abstract:Aiming at the situation that the currently available program model checker cannot deal with large-scale software, the technique of procedure extraction was proposed to pre-process the source code in order to improve the scalability of software model checking. Firstly, a selected set of sentences (may be noncontiguous) is extracted and packaged as an independent procedure, and then the corresponding places that are in the original program are deleted and replaced by a procedure call, so as to decompose a large-scale program into a set of small procedures which preserves the original semantics. Due to the fact that the procedure summary edge can be separately computed in the model-checking algorithm, the procedure extraction can modularize the task of program model checking. Since a procedure may be called many times in a program, unnecessary repetition of state space search in procedure bodies can be avoided by using summary edges so as to decrease the overhead of space and time in model checking algorithm. Theoretical analysis and experiment show that the technique of procedure extraction can effectively improve the scalability of model checking large-scale programs, and at the same time, it can preserve the semantics after transformations of the programs and satisfy the security requirements of software model checking.
What problem does this paper attempt to address?