Discovery and Quality Evaluation of Software Component Behavioral Models
Cong Liu
DOI: https://doi.org/10.1109/tase.2020.3008897
IF: 6.636
2021-10-01
IEEE Transactions on Automation Science and Engineering
Abstract:Tremendous amounts of execution data are collected during software execution. These data provide rich information for software runtime behavior comprehension. The unstructured execution data may be too complex, involving multiple interleaved components and so on. Applying existing process discovery techniques results in spaghetti-like models with no clear structure and no valuable information that can be easily understood by end users. In this article, we start with the observation that a software system is composed of a group of components, and we use this information to decompose the problem into smaller independent ones by discovering a behavioral model per component. To this end, we first distill a software event log for each component from the raw software execution data. Then, we construct the hierarchical software event log by recursively applying caller-and-callee relation detection. Next, component behavioral models, represented as hierarchical Petri nets, are discovered by recursively applying existing process discovery techniques. To measure the quality of discovered models against the execution data, we transform hierarchical Petri nets to flat ones, and the quality metrics, e.g., fitness, precision, and complexity, are applied. All proposed approaches have been implemented in the open-source process mining toolkit ProM. Through the experimental evaluation using both synthetic software systems and open-source software systems, we illustrate that the proposed approach facilitates the discovery of more understandable and high-quality software behavioral models. Note to Practitioners—Software execution data record rich information on the runtime behavior of software systems. Discovering an overall behavioral model for the whole software system typically results in an extremely complicated model that hinders further comprehension and usage. With the observation that a software system is composed of a set of interacting co-ponents, this article considers the problem of discovering a behavioral model per component. The proposed techniques are implemented in the open-source process mining tool ProM, and experimental evaluations using both synthetic and real-life software systems have indicated their applicability. The proposed approaches are readily applicable to industrial-size software behavior comprehension.
automation & control systems