Typestate: A programming language concept for enhancing software reliability
An experimental evaluation of the assumption of independence in multiversion programming