Abstract:
The degree to which internal states and behavior of software systems conform to their requirement is a key issue to evaluate whether a software system can provide services of high quality consistently. Software monitoring is an effective approach to help ensure such integrity of large-scale software systems. But it is usually time-consuming and error-prone to code and deploy the monitors manually. Proposed in this paper is an approach which utilizes model-based software monitoring techniques to ensure the high quality of software. The basic idea is to capture concerned events from runtime software and discover errors that occur during its execution, in order to rapidly adjust the system and guarantee the quality of software services. In this paper a monitoring model is proposed to present the monitoring requirements. By adopting the monitoring model, this approach facilitates the process of equipping a software system with monitoring capability. Based on the included constraint descriptions and a series of transformation rules, the monitoring model is transformed into corresponding bunch of monitoring code semi-automatically or automatically. In addition, these codes will be deployed to the monitored system in an appropriate mechanism, either in the way of bytecode instrumentation or by adding interceptors. Experimental results show that both the performance of these two methods is affordable.