Fundamentals of dependable computing for software engineers. (2012)