Improving the efficiency of supervision by software through state aggregation

Software supervision is an approach to the real time detection of failures. A software supervisor is a unit which monitors both the inputs and outputs of a real time system and reports discrepancies between observed and expected behaviors. The major difficulty with software supervision is the running time complexity of the supervisor. A significant source of running time complexity was determined to be the total number of signals at the inputs queues of specification processes for which no ordering information is known. This paper describes an approach to reduce the running time complexity of a software supervisor. The approach makes use of a transformed specification in which several state transitions are grouped into a single transition or aggregate state. This effectively reduces the number of signals at the input queues of processes. The case where the system under supervision is specified in the ITU Specification and Description Language (SDL) is considered. An algorithm to translate SDL processes into aggregate state representations is described. Use of the algorithm is exemplified with the aid of an SDL specification of a small private branch telephone exchange.