Model-driven engineering for designing safe and secure embedded systems