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)|
|Editors||A.M. Moreira, L. Ribeiro|
|Publication status||Published - 2008|
|Name||Electronic Notes in Theoretical Computer Science|
Middelkoop, R., Huizing, C., Kuiper, R., & Luit, E. J. (2008). Invariants for non-hierarchical object structures. In A. M. Moreira, & L. Ribeiro (Eds.), Proceedings of the Brazilian Symposium on Formal Methods (SBMF 2006, Natal, Rio Grande de Norte, Brazil, September 17-23, 2006) (pp. 211-229). (Electronic Notes in Theoretical Computer Science; Vol. 195). https://doi.org/10.1016/j.entcs.2007.08.034