Architecting Fault-tolerant Component-based Systems: from requirements to testing