We present a Hoare-style specification and verification approach for invariants in sequential OO programs. It allows invariants over non-hierarchical object structures, in which update patterns that span several objects and methods occur frequently. This gives rise to invalidating and subsequent re-establishing of invariants in a way that compromises standard data induction, which assumes invariants hold when a method is called. We provide specification constructs (inc and coop) that identify objects and methods involved in such patterns, allowing a refined form of data induction. The approach now handles practical designs, as illustrated by a specification of the Observer Pattern.
|Title of host publication
|Proceedings of the Brazilian Symposium on Formal Methods (SBMF 2006, Natal, Rio Grande de Norte, Brazil, September 17-23, 2006)
|A.M. Moreira, L. Ribeiro
|Published - 2008
|Electronic Notes in Theoretical Computer Science