Building Dependable Systems: Fault Tolerance in Complex Systems