Publication Type : Journal Article
Publisher : Wiley
Source : Software - Practice and Experience, John Wiley & Sons Inc., Volume 47, p.163-191 (2017)
Keywords : Compaction, Computer software, Experimental results, Graphic methods, Java program, Java programming language, Markup languages, Multithreaded, Open Source Software, Open systems, Out-of-model calls, Pattern matching, Regular expressions, Sequence diagrams, Tandem repeats, Visualization
Campus : Amritapuri
School : Department of Computer Science and Engineering, School of Computing
Center : AI (Artificial Intelligence) and Distributed Systems, Algorithms and Computing Systems
Department : Computer Science
Year : 2016
Abstract : The context of this work is a practical, open-source visualization system, called JIVE, that supports two forms of runtime visualizations of Java programs - object diagrams and sequence diagrams. They capture, respectively, the current execution state and execution history of a Java program. These diagrams are similar to those found in the UML for specifying design-time decisions. In our work, we construct these diagrams at execution time, thereby ensuring continuity of notation from design to execution. In so doing, a few extensions to the UML notation are proposed in order to better represent runtime behavior. As sequence diagrams can become long and unwieldy, we present techniques for their compact representation. A key result in this paper is a novel labeling scheme based upon regular expressions to compactly represent long sequences and an O(r2) algorithm for computing these labels, where r is the length of the input sequence, based upon the concept of 'tandem repeats' in a sequence. Horizontal compaction greatly helps minimize the extent of white space in sequence diagrams by the elimination of object lifelines and also by grouping lifelines together. We propose a novel extension to the sequence diagram to deal with out-of-model calls when the lifelines of certain classes of objects are filtered out of the visualization, but method calls may occur between in-model and out-of-model calls. The paper also presents compaction techniques for multi-threaded Java execution with different forms of synchronization. Finally, we present experimental results from compacting the runtime visualizations of a variety of Java programs and execution trace sizes in order to demonstrate the practicality and efficacy of our techniques. © 2016 John Wiley & Sons, Ltd.
Cite this Research Publication : J. Swaminathan, B. Jayaraman and D. Lessa, “Compact visualization of Java program execution”, Software - Practice and Experience, vol. 47, pp. 163-191, John Wiley and Sons Ltd, 2017. DOI: 10.1002/spe.2411