Our approach is to combine object-oriented paradigm with formal methods in software engineering, especially abstract data type theory, and algebraic specification of systems., ...