Modular verification of OO programs with interfaces

Zongyan Qiu,Hong Ali,Liu Yijing
DOI: https://doi.org/10.1007/978-3-642-34281-3_13
2012-01-01
Abstract:Interface types in OO languages support polymorphism, abstraction and information hiding by separating interfaces from their implementations. The separation enhances modularity of programs, however, it causes also challenges to the formal verification. Here we present a study on interface types, and develop a specification and verification theory based on our former veriJ framework. We support multi-specifications for classes inherited from interfaces and the superclass, and keep the verification modularly without re-touching the verified code. The concepts developed in veriJ, namely the abstract specification and specification predicate, play important roles in this extension, and thus are proved widely useful and very natural in the formal proofs of OO programs.
What problem does this paper attempt to address?