Modern software systems' structures and behaviors are becoming very complicated. Existing models either lack systematic considerations on the whole system's behavior patterns or are inefficient in runtime monitoring. In this paper, the Calling Network (CN) model is proposed to provide new perspectives to analyze the dynamic execution process of a software system. CN is consisted of one or a series of Calling Graph (CG), which is a dynamic version of Call Graph and encodes method call frequencies. Some new perspectives such as Growing Network and Network (Graph) Sequence are also embodied in CN model. Based on a data set of 10 real-world Java programs, we show that CN presents several interesting features, such as Power-law degree distribution, Densification Power Law, and the stability of an entropy value -- Local Entropy. Experiments have been conducted to show the applications of CN in software significant module identification and runtime failure diagnosis.
Read full abstract