Structured Design of Failure Tolerant Systems