One embodiment of the present invention provides a system that estimates
residual life of a software system under a software-based failure
mechanism. During operation, the system first constructs a prognostic
database for the software-based failure mechanism based on a plurality of
software systems of the same type as the software system, wherein the
prognostic database includes a set of prognostic readings associated with
the software-based failure mechanism from the plurality of software
systems. Note that a given prognostic reading in the prognostic database
comprises: (1) a symptom index, which is a function of one or more
variables associated with the software-based failure mechanism; and (2) a
residual life, which is the remaining time to a failure under the
software-based failure mechanism. Next, the system obtains a symptom
index value from the software system which is being monitored. The system
then estimates a residual life for the software system under the
software-based failure mechanism by comparing the symptom index value
with the prognostic readings in the prognostic database.