From Code to Models

01 January 2001

New Image

One of the corner stones of formal methods is the notion that abstract models enable analysis. By the construction of a formal model we can trade implementation detail for analytical power. The intent of a model is to preserve selected characteristics of real-world artifact, while suppressing others. Unfortunately, practitioners are less likely to use a modeling tool if it cannot real-world artifacts in their native format. The requirement to build a model to enable analysis is often seen as a verdict to design a system twice: once in a verification language and once in an implementation language. Because the implementation phase cannot be skipped, verification is often sacrificed. In this paper we will consider a way to avoid this problem by automating the extraction of verification models from implementation level code. The user now provides only model extraction rules, or abstractions, rather than full-scale models.