The Construction Of Formal Specifications An Introduction To The Model Based And Algebraic Approaches