Model-driven engineering for Mission-Critical IoT Systems