Visualization of Concurrent Program Executions

Various program analysis techniques are efficient at discovering failures and properties. However, it is often difficult to evaluate results, such as program traces. This calls for abstraction and visualization tools. We propose an approach based on UML sequence diagrams, addressing shortcomings of such diagrams for concurrency. The resulting visualization is expressive and provides all the necessary information at a glance.

[1]  Jifeng He,et al.  A formal semantics of UML sequence diagram , 2004, 2004 Australian Software Engineering Conference. Proceedings..

[2]  Leslie Lamport,et al.  How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs , 2016, IEEE Transactions on Computers.

[3]  Klaus Havelund,et al.  Model Checking Programs , 2004, Automated Software Engineering.

[4]  Patrice Godefroid,et al.  Model checking for programming languages using VeriSoft , 1997, POPL '97.

[5]  Ivar Jacobson,et al.  The unified modeling language reference manual , 2010 .

[6]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[7]  Serdar Tasiran,et al.  Goldilocks: Efficiently Computing the Happens-Before Relation Using Locksets , 2006, FATES/RV.

[8]  Michael D. Ernst,et al.  Dynamically discovering likely program invariants , 2000 .

[9]  Armin Biere,et al.  High‐level data races , 2003, Softw. Test. Verification Reliab..

[10]  James Gosling,et al.  The Java Language Specification, 3rd Edition , 2005 .

[11]  Jinlin Yang Automatically Inferring Temporal Properties , 2005 .

[12]  Guy L. Steele,et al.  Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley)) , 2005 .

[13]  Martin Gogolla,et al.  On better understanding UML diagrams through interactive three-dimensional visualization and animation , 2000, AVI '00.

[14]  Matthew B. Dwyer,et al.  Bandera: extracting finite-state models from Java source code , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[15]  Eitan Farchi,et al.  Concurrent bug patterns and how to test them , 2003, Proceedings International Parallel and Distributed Processing Symposium.

[16]  Tao Xie,et al.  DSD-Crasher: A hybrid analysis tool for bug finding , 2008 .

[17]  Cyrille Artho,et al.  Model Checking Networked Programs in the Presence of Transmission Failures , 2007, First Joint IEEE/IFIP Symposium on Theoretical Aspects of Software Engineering (TASE '07).

[18]  He Jifeng,et al.  A Formal Semantics of UML Sequence Diagrams , 2004 .

[19]  Øystein Haugen,et al.  From MSC-2000 to UML 2.0 - The Future of Sequence Diagrams , 2001, SDL Forum.

[20]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[21]  Michael Burrows,et al.  Eraser: a dynamic data race detector for multithreaded programs , 1997, TOCS.

[22]  Viktor Schuppan,et al.  JNuke: Efficient Dynamic Analysis for Java , 2004, CAV.

[23]  Ivar Jacobson,et al.  Unified Modeling Language User Guide, The (2nd Edition) (Addison-Wesley Object Technology Series) , 2005 .

[24]  James Roberts TraceVis: An Execution Trace Visualization Tool , 2004 .

[25]  31st Annual International Computer Software and Applications Conference, COMPSAC 2007, Beijing, China, July 24-27, 2007. Volume 1 , 2007, Annual International Computer Software and Applications Conference.

[26]  Cyrille Artho,et al.  Accurate Centralization for Applying Model Checking on Networked Applications , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[27]  Marian Petre,et al.  Usability Analysis of Visual Programming Environments: A 'Cognitive Dimensions' Framework , 1996, J. Vis. Lang. Comput..

[28]  Bjarne Stroustrup,et al.  C++ : programovací jazyk : The C++ programming language (Orig.) , 1997 .