From Specification to Development, Testing and Proof: Formal Approaches