摘要

During the execution of a software system, tremendous amounts of data are recorded, and such data provide valuable information on software runtime behavior analysis. This paper presents an approach on how to utilize process mining as an enabler to discover software behavioral models. To achieve this, we formally define the software event log and its transformation from original software execution data. Essentially, a software event log consists of a set of cases that each is a manifestation of an independent software run. A case is represented as an ordered sequence of events that each refers to a method call. Given the observation that software usually has a hierarchical structure, we first propose an approach to construct a hierarchical software event log from the original flat one by the recursively applying method calling relation detection. Next, using extended process discovery techniques, we discover a software behavioral model, which is represented as a kind of hierarchical Petri net with components, from the hierarchical software event log. We have implemented the proposed approach in the open source process mining toolkit ProM. By using two synthetic software event logs, we show that our approach can deal with infrequent behavior. Moreover, a validation with one real-life software event log shows that our approach can help visualize actual software runtime behavior in an easy-to-understand manner.