The Mondex Electronic Purse is an outstanding example of industrial scale formal refinement, and was the first verification to achieve ITSEC level E6 certification. A formal abstract model and a formal concrete model were developed, and a formal refinement was hand-proved between them. Nevertheless, certain requirements issues were set beyond the scope of the formal development, or handled in an unnatural manner.
The retrenchment Tower Pattern is used to address one such issue in detail: the finiteness of the purse log (which records unsuccessful transactions). A retrenchment is constructed from the lowest level model of the purse system to a model in which logs are finite, and is then lifted to create two refinement developments of the purse, working at different levels of detail, and connected via retrenchments, forming the tower. The tower development is appropriately validated, vindicating the design used.
More on the
@inproceedings(SS-SEW06, author = "Richard Banach and Czeslaw Jeske and Michael Poppleton and Susan Stepney", title = "Retrenching the Purse: Finite Exception Logs, and Validating the Small", pages = "234--245", crossref = "SEW06" ) @proceedings(SEW06, title = "30th Annual IEEE/NASA Software Engineering Workshop, Columbia, MD, USA", booktitle = "30th Annual IEEE/NASA Software Engineering Workshop, Columbia, MD, USA", month = apr, year = 2006 )