Date of this Version
We describe the Monitoring and Checking (MaC) framework which provides assurance on the correctness of program execution at run-time. Our approach complements the two traditional approaches for ensuring that a system is correct, namely static analysis and testing. Unlike these approaches, which try to ensure that all possible executions of the system are correct, our approach concentrates on the correctness of the current execution of the system.
The MaC architecture consists of three components: a filter, an event recognizer, and a run-time checker. The filter extracts low-level information, e.g,, values of program variables and function calls, from the system code, and sends it to the event recognizer. From this low-level information, the event recognizer detects the occurrence of "abstract" requirements–level events, and informs the run-time checker about them. The run-time checker uses these events to check that the current system execution conforms to the formal requirements specification of the system.
This paper overviews our current prototype implementation, which uses JAVA as the implementation language and our Monitoring Script language as the requirements language.
Moonjoo Kim, Mahesh Viswanathan, Hanene Ben-Abdallah, Sampath Kannan, Insup Lee, and Oleg Sokolsky, "MaC: A Framework for Run-Time Correctness Assurance of Real-Time Systems", . January 1998.
Date Posted: 30 October 2006