Object Oriented program execution Visualization of Dynamic Program



Similar documents
NakeDB: Database Schema Visualization

Instrumentation Software Profiling

3D Animation of Java Program Execution for Teaching Object Oriented Concepts

Technical paper review. Program visualization and explanation for novice C programmers by Matthew Heinsen Egan and Chris McDonald.

Monitoring, Tracing, Debugging (Under Construction)

Rendering Hierarchical Data

Visualization of Software

Agenda. TreeMaps. What is a Treemap? Basics

Introduction to Embedded Systems. Software Update Problem

Software Engineering Best Practices. Christian Hartshorne Field Engineer Daniel Thomas Internal Sales Engineer

Trace-Based and Sample-Based Profiling in Rational Application Developer

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Understanding Software Static and Dynamic Aspects

Chapter 13: Program Development and Programming Languages

Integrated Development of Distributed Real-Time Applications with Asynchronous Communication

Techniques for Visualizing Software Execution

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

An Open Framework for Reverse Engineering Graph Data Visualization. Alexandru C. Telea Eindhoven University of Technology The Netherlands.

A QUICK OVERVIEW OF THE OMNeT++ IDE

Glossary of Object Oriented Terms

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

An example. Visualization? An example. Scientific Visualization. This talk. Information Visualization & Visual Analytics. 30 items, 30 x 3 values

An Oracle White Paper September Advanced Java Diagnostics and Monitoring Without Performance Overhead

Eclipse Visualization and Performance Monitoring

Module 10. Coding and Testing. Version 2 CSE IIT, Kharagpur

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

The structured application of advanced logging techniques for SystemVerilog testbench debug and analysis. By Bindesh Patel and Amanda Hsiao.

Java (12 Weeks) Introduction to Java Programming Language

Helping you avoid stack overflow crashes!

Advanced compiler construction. General course information. Teacher & assistant. Course goals. Evaluation. Grading scheme. Michel Schinz

Jos Warmer, Independent

Basics of VTune Performance Analyzer. Intel Software College. Objectives. VTune Performance Analyzer. Agenda

Mobile Application Languages XML, Java, J2ME and JavaCard Lesson 04 Java

Desktop, Web and Mobile Testing Tutorials

Client Overview. Engagement Situation. Key Requirements

Developing Parallel Applications with the Eclipse Parallel Tools Platform

An Extensible Framework for Providing Dynamic Data Structure Visualizations in a Lightweight IDE

Integrated tools for collaborative software development

zen Platform technical white paper

Online Recruitment System 1. INTRODUCTION

Oracle WebLogic Foundation of Oracle Fusion Middleware. Lawrence Manickam Toyork Systems Inc

Performance Monitoring API for Java Enterprise Applications

In: Proceedings of RECPAD th Portuguese Conference on Pattern Recognition June 27th- 28th, 2002 Aveiro, Portugal

Graph/Network Visualization

Chapter 13: Program Development and Programming Languages

Android Developer Fundamental 1

Process Modelling from Insurance Event Log

Profiling and Testing with Test and Performance Tools Platform (TPTP)

COMP 356 Programming Language Structures Notes for Chapter 10 of Concepts of Programming Languages Implementing Subprograms.

Software Visualization Tools for Component Reuse

1 Introduction. 2 An Interpreter. 2.1 Handling Source Code

an introduction to VISUALIZING DATA by joel laumans

University of Twente. A simulation of the Java Virtual Machine using graph grammars

Performance Monitoring and Visualization of Large-Sized and Multi- Threaded Applications with the Pajé Framework

Extending XSLT with Java and C#

Aspect Oriented Strategy to model the Examination Management Systems

Create Cool Lumira Visualization Extensions with SAP Web IDE Dong Pan SAP PM and RIG Analytics Henry Kam Senior Product Manager, Developer Ecosystem

Using the Intel Inspector XE

Fundamentals of Java Programming

Visualization methods for patent data

Online Content Optimization Using Hadoop. Jyoti Ahuja Dec

An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases

Chapter 13 Computer Programs and Programming Languages. Discovering Computers Your Interactive Guide to the Digital World

This presentation is for informational purposes only and may not be incorporated into a contract or agreement.

Visualising Java Data Structures as Graphs

Software Development In the Cloud Cloud management and ALM

Mobile Performance Management Tools Prasanna Gawade, Infosys April 2014

UML-based Test Generation and Execution

Computing Concepts with Java Essentials

lprof : A Non- intrusive Request Flow Pro5iler for Distributed Systems

vii TABLE OF CONTENTS CHAPTER TITLE PAGE DECLARATION DEDICATION ACKNOWLEDGEMENT ABSTRACT ABSTRAK

Development of Monitoring and Analysis Tools for the Huawei Cloud Storage

Designing a Home Alarm using the UML. And implementing it using C++ and VxWorks

Classnotes 5: 1. Design and Information Flow A data flow diagram (DFD) is a graphical technique that is used to depict information flow, i.e.

IBM SDK, Java Technology Edition Version 1. IBM JVM messages IBM

Stack Allocation. Run-Time Data Structures. Static Structures

Modeling Kahn Process Networks in the Dynamic Dataflow Formalism

UML for the C programming language.

Programming and Software Development CTAG Alignments

Graphing Made Easy for Project Management

mframe Software Development Platform KEY FEATURES

City of Dublin Education & Training Board. Programme Module for. Mobile Technologies. leading to. Level 6 FETAC. Mobile Technologies 6N0734

Chapter 3 Operating-System Structures

Google Cloud Data Platform & Services. Gregor Hohpe

How To Design An Information System

Transcription:

Object Oriented program execution Visualization of Dynamic Program Kees Huizing Ruurd Kuiper Pieter Deelen Huub van de Wetering Frank van Ham Technische Universiteit Eindhoven Netherlands IPA Herfst 2008

Virtual Machines Rule used in increasing number of places Possibility to monitor during execution E.g., JDI (Java Debugger Interface) Combine with visualization

JDI Monitor running virtual machine (from another VM) Event based complete API

Ideas Use visualization when you don t know yet what you re looking for before debugging (experienced programmers) before concept building (novice programmers)

Part 1 TraceVis strengthen understanding of relation static code and dynamic execution allow for medium sized program, hundreds of classes

Part II CoffeeDregs provide insight (literally) in executing machine help building operational mind model small programs, few classes

Part I TraceVis What is software? UML Java XML artefacts the design or the product

Both Design is about documents Product is about execution Developer needs to relate execution information back to design (classes) classes are out of sight during execution

Idea execution activity is method call design unit is class collect call information during execution relate back to classes (or objects) visualization: bring classes back into sight during execution

Data collection trace of actual execution of Java program using JVMTI and Byte Code Instrumentation :;%67$#9< ="4<"(> '79&*49 /4)#?#%& +,*@31.#&7(5#A($#49 0445.#"$7(5 /(68#9% -./01 2($( 3455%6$4"!"#$%& 0"(6% '%()*+, events: method entry/exit, object (de)allocation, etc. example of two events method entry thread MN:1140465267615763000:1:org10x10/dambo/app/rambo/Biter:f2i:0 MX:1140465267615857000:1:org10x10/dambo/app/rambo/Biter:f2i timestamp class object method

Dynamic call graph nodes are classes edges are collections of method calls Visualize as node-link diagram with dynamic springembedder layout!"#$$%&'%(&) &*%$(#+,!"#$$%'&( -'%$(#+,!"#$$%&'%.&((&/% &*%$(#+, number of calls

Suppose call of method m( ) on object o To which node (class) we draw the edge? declaring class: static view defining class: executing code view class of receiving object: interacting objects view P + m() {abstract} + m() Q Declaring class Defining class R Object class (class of o)

Visualization graph gives good overview of the dynamic structure, not of the history/future add Timeline View random access to trace compact visualization of Sequence Diagram on class level extra class information (nr of instances, time spent)

!"#$%"#$&'( '(#' )*%%+,"-, ('&*"%,."'/ )*%%+,"-, *0&"."&1,."'/

$"-'./%-%& $"-'./%-%& $#%&' $#%&'!""#!""# $#%&' (")*"+&,'&- (")*"+&,'&- $#%&'

Zoomed in Timeline View

Call from A to B to C 8/211#1$9*)4#)#4$(:$32%*%-32/$%2'#; <35-=25-* % 7.#3&5-*%$!-'#!"#$%&'(#)$*+$,-.#/$)*01$+*)$2$ 3/211$4#,#%41$ *%$5"#$2'*&%5$ *+$5-'#$1,#%5$-%$ 5"-1$3/2116!"#$125&)25-*%$*+$ 2$,-.#/$4#,#%41$ *%$5"#$2'*&%5$ *+$235-=-5:6

Evaluation draughts playing program Rambo insight in AI module object creation expensive methods software build tool Ant insight in software structure relation to external programs

Conclusions & Future effcient trace collection provides insight in dynamic interaction of classes space efficient rendering of sequence diagrams scalability: exploit package hierarchy with hier. edge bundles; avoid overlapping nodes theme river for timeline real-time data visualization

Part II CoffeeDregs Novice programmers problems with understanding the basic blocks algemener probleem waaruit onderstaande misconceptie voorkomt? typical misconception: while means while (instead of while is guard is true when execution arrives here ) problems with difference objects vs. classes coherent (operational) model is often missing

Help building operational model show what s happens inside computer on the right level of abstraction no prefab: student s own program will be visualized too Note: later other views than operational will be needed, but operational model is the basis

Note students/pupils have less technical experience than they used to (even comp. sc. students) mental image of computer often inadequate

Java execution concepts objects methods program (thread) location stack data

Abstraction level variables pointers unit of step: line of own code third party objects and code are not shown methods are shown when active

Visualization objects as boxes pointers as values and as arrows active methods are vis d in receiver objects call stack by arrows stack (local variables) is distributed over objects expression execution is not visualized