Abstract.
Research on how to reason about correctness properties of software systems using model checking is advancing rapidly. Work on extracting finite-state models from program source code and on abstracting those models is focused on enabling the tractable checking of program properties such as freedom from deadlock and assertion violations. For the most part, the problem of specifying more general program properties has not been considered. In this paper, we report on the support for specifying properties of dynamic multi-threaded Java programs that we have built into the Bandera system. Bandera extracts finite-state models, in the input format of several existing model checkers, from Java code based on the property to be checked. The Bandera Specification Language (BSL) provides a language for defining general assertions and pre/post conditions on methods. It also supports the definition of observations that can be made of the state of program objects and the incorporation of those observations as predicates that can be instantiated in the scope of object quantifiers and used in describing common forms of state/event sequencing properties. We illustrate how BSL can be used to formulate a variety of system correctness properties for several multi-threaded Java applications.
Similar content being viewed by others
Author information
Authors and Affiliations
Additional information
Published online: 2 October 2002
Rights and permissions
About this article
Cite this article
Corbett, J., Dwyer, M., Hatcliff, J. et al. Expressing checkable properties of dynamic systems: the Bandera Specification Language. STTT 4, 34–56 (2002). https://doi.org/10.1007/s100090200075
Issue Date:
DOI: https://doi.org/10.1007/s100090200075