Comprehending the behavior of an object-oriented system solely from its source code is troublesome, owing to its dynamism. To aid comprehension, visualizing program behavior through reverse-engineered sequence diagrams from execution traces is a promising approach. However, because of the massiveness of traces, recovered diagrams tend to become very large, causing scalability issues. To address the issues, we propose an object grouping technique that horizontally summarizes a reverse-engineered sequence diagram. Our technique constructs object groups based on Pree's meta patterns, in which each group corresponds to a concept in the domain of a subject system. Visualizing interactions only among important groups, we generate a summarized sequence diagram depicting a behavioral overview of the system. Our experiment showed that our technique outperformed the state-of-the-art trace summarization technique in terms of reducing the horizontal size of reverse-engineered sequence diagrams. Regarding the quality of object grouping, our technique achieved an F-score of 0.670 and a Recall of 0.793 on average under the condition of #lifelines (i.e., the horizontal size of a sequence diagram) < 30, whereas those of the state-of-the-art technique were 0.421 and 0.670, respectively. The runtime overhead imposed by our technique was 129.2% on average, which is relatively smaller in the literature.
翻译:仅仅从源代码对一个面向目标的系统的行为进行拼凑是一个麻烦的系统, 因为它具有活力。 为了帮助理解, 通过执行痕迹中的反向工程序列图对程序行为进行视觉化是一个很有希望的方法。 但是,由于痕迹的庞大, 回收的图表往往变得非常大, 造成可缩放问题。 为了解决问题, 我们建议了一种对象分组技术, 横向总结反向工程序列图。 我们的技术根据Pree的元模式构建了对象组, 每个组都与主题系统范围内的概念相对应。 只有重要组之间的交互可视化, 我们制作了一个显示系统行为概览的汇总序列图。 我们的实验显示, 我们的技术在缩小反向工程序列图的横向大小方面超过了最先进的追踪和可缩放技术。 关于对象分组的质量, 我们的技术在#生命线( e. e. 水平序列图的横向大小) 下, 每个组平均的物体组群数为0. 670, 和平均的数为0.793 。 我们的平时技术是相对的0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 平均技术是 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 的 0. 的 0. 0. 0. 0. 0. 0. 的 0. 0. 的 0. 0. 0. 的 0. 的 的 0. 0. 0. 0. 0. 0. 的 0. 0. 0. 0. 0. 0. 0. 0. 的 的 的 的 0. 0. 0. 0. 的 的 0. 0. 的 的 0. 0. 的 的 和 的 的 的 0. 的 的 0. 的 的 的 的 的 的 的 的 0. 0. 0. 0. 0. 0. 0. 0. 的 的 的 的 的 的 的 0. 0. 0. 的 0. 0. 0. 的 0. 0. 的 的 的 的 0. 的 的 的 的 的 的 的 的 0. 0. 的 0. 0. 0. 0. 0. 0. 0.