Foundations of Dependable Computing