An engineering approach towards hard real-time system design