  Software dependence networks are shown to be scale-free and asymmetric. We
then study how software components are affected by the failure of one of them,
and the inverse problem of locating the faulty component. Software at all
levels is fragile with respect to the failure of a random single component.
Locating a faulty component is easy if the failures only affect their nearest
neighbors, while it is hard if the failures propagate further.
