Safety critical system design