Imagine it's 8 am, you rush to your car for this special meeting you simply can't afford to miss, and you're already late. You turn the ignition key and ... nothing happens. Game over ...
These are the moments you wished this extremely valuable piece of equipment (like your car) had any notion of intelligence referred to as Fault Diagnosis. Fault diagnosis software continuously monitors a system such as a car, a robot, a satellite, a nuclear plant, finds the root cause in case of system malfunction (diagnosis), and predicts system faults in the future (prognosis). In the nuclear plant case, Diagnosis software would have diagnosed the root cause of the incident immediately after the first alarm, and would have suppressed the other alarms as being irrelevant and causing needless operator overload. In the case of your car, days ago diagnosis software would have diagnosed the battery to be under-performing, with the prognosis that the battery would not endure another of those severe mid-winter frost attacks.
Finding (and predicting) faults in a mechanical, electrical, and/or software system can be as complex as the system itself. Especially in emergency situations where immediate remedial action is required (e.g., a nuclear reactor overheats), human operators are not always capable of timely producing the accurate diagnosis that is required to determine the proper course of action. Diagnosis software can provide the intelligence to assist of even replace humans in this diagnostic context.
In this course, you will learn about how to diagnose faults in hardware as well as in (embedded) software. The prevailing approach to hardware fault diagnosis is called Model-Based Diagnosis (MBD) where fault diagnosis algorithms consult a model of the system in order to find the actual faults. The prevaiuling approach in software is called Spectrum-based Software Fault Localization (SFL) and uses a statistical approach to generate a list of statements (or functions) that are suspected to contain a defect. This course provides an introduction into the principles of fault diagnosis, and MBD, and SFL in particular.