The complexity of software systems has reached the point where we need run-time mechanisms that
can be used to provide fault management services. Testing and verification may not cover all possible
scenarios that a system can encounter, hence a simpler, yet formally specified run-time monitoring,
diagnosis, and fault mitigation architecture is needed to increase the software system's dependability.
The approach described in this paper borrows concepts and principles from the field of `Systems Health
Management' for complex systems. The paper introduces the fundamental ideas for software health
management, and then illustrates how these can be implemented in a model-based software development process, including a case study and related work.
|