Title :
An automated verification method for distributed systems software based on model extraction
Author :
Holzmann, Gerard J. ; Smith, Margaret H.
Author_Institution :
Lucent Technol. Bell Labs., Murray Hill, NJ, USA
fDate :
4/1/2002 12:00:00 AM
Abstract :
Software verification methods are used only sparingly in industrial software development today. The most successful methods are based on the use of model checking. There are, however, many hurdles to overcome before the use of model checking tools can truly become mainstream. To use a model checker, the user must first define a formal model of the application, and to do so requires specialized knowledge of both the application and of model checking techniques. For larger applications, the effort to manually construct a formal model can take a considerable investment of time and expertise, which can rarely be afforded. Worse, it is hard to secure that a manually constructed model can keep pace with the typical software application, as it evolves from the concept stage to the product stage. We describe a verification method that requires far less specialized knowledge in model construction. It allows us to extract models mechanically from source code. The model construction process now becomes easily repeatable, as the application itself continues to evolve. Once the model is constructed, existing model checking techniques allow us to perform all checks in a mechanical fashion, achieving nearly complete automation. The level of thoroughness that can be achieved with this new type of software testing is significantly greater than for conventional techniques. We report on the application of this method in the verification of the call processing software for a new telephone switch that was developed at Lucent Technologies
Keywords :
distributed processing; program testing; program verification; telecommunication computing; Lucent Technologies; automated verification method; call processing software; case studies; distributed systems software; formal methods; formal model; industrial software development; model extraction; reactive systems; software testing; software verification methods; source code; telephone switch; System software;
Journal_Title :
Software Engineering, IEEE Transactions on
DOI :
10.1109/TSE.2002.995426