  In this paper an efficient model based diagnostic process is described for
systems whose components possess a causal relation between their inputs and
their outputs. In this diagnostic process, firstly, a set of focuses on likely
broken components is determined. Secondly, for each focus the most informative
probing point within the focus can be determined. Both these steps of the
diagnostic process have a worst case time complexity of ${\cal O}(n^2)$ where
$n$ is the number of components. If the connectivity of the components is low,
however, the diagnostic process shows a linear time complexity. It is also
shown how the diagnostic process described can be applied in dynamic systems
and systems containing loops. When diagnosing dynamic systems it is possible to
choose between detecting intermitting faults or to improve the diagnostic
precision by assuming non-intermittency.
