Design of embedded systems: formal models, validation, and synthesis