Formal Methods for the Design of Real-Time Systems