IEEE Access (Jan 2020)
Runtime Monitoring of Software Execution Trace: Method and Tools
Abstract
As with the extensive use of complex software in many fields, such as finance, transportation, aeronautics, and astronautics, software plays an increasingly more important role in society. Software reliability becomes a critical bottleneck for system reliability and draws increasingly greater attention from software engineers. Many researchers find that traditional software verification and validation techniques are not sufficient to ensure complex software reliability, especially after being deployed. In this paper, therefore, we propose a novel software runtime monitoring method that can help with software runtime verification and software failure prediction. This method aims to monitor software execution trace that reveal the software runtime status. First, the framework of this method is proposed to introduce the entire process and two key problems. Second, an instrumentation method based on srcML, an open source tool used to extract the software abstract syntax tree, is presented. By this instrumentation technique, monitoring code can be inserted into source code and runtime data can be exported during the software execution process. Then, a runtime data-collection technique is proposed to collect runtime data exported by monitoring code. On one hand, the file stream mechanism is used to export data files that can be used to support offline analysis, while on the other hand a client-server structure is proposed to support online analysis. Finally, a case study on Nginx is used to show the feasibility of the proposed method.
Keywords