Download presentation
Presentation is loading. Please wait.
Published byDylan Harmon Modified over 8 years ago
1
Visualizing Object Oriented Software execution By: Wim De Pauw, Doug Kimelman and John Vlissides Presented By: Tomer & Mirela Ben-Chen
2
2 Motivation Large software systems are difficult to understand, debug and tune Difficult because – Difference between code and execution structures – Functionality is dispersed in many classes – It is BIG
3
3 Motivation (cont.) Static description of code is widely available – UML – Source navigators Dynamic description is not common and not standardized The dynamic aspect is more important to understand the software Best displayed by visual animated tools
4
4 Basic Concepts Classes, objects, methods and messages Levels of detail Different views – Clustering indicates interaction – Histograms show activity – Cross-reference matrices
5
5 Inter-class call cluster Class name Cluster Active class Inactive class Call stack Top of stack
6
6 Inter-class call cluster Purpose: – Dynamic overview of objects’ interaction Elements: – Each class is a floating label – The more the classes communicate, the closer they are – Labels are colored by number of messages (calls) – Indicates calling stack – Indicates currently active class
7
7 Inter-class call cluster Interpretation – Static Clustered classes – tightly coupled Hot-spots – red classes – Dynamic Location of execution path – hot spot Classes changing clusters – new execution phase
8
8 Time bar chart CPU time Classes Hot Spot
9
9 Time bar chart Purpose: – Shows CPU usage per class Elements – Classes appear when instantiated – Length of bar proportional to CPU time Interpretation – Long bars indicate hot-spots
10
10 Inter-class call matrix Called Callers Many callsNot Many calls
11
11 Inter-class call matrix Sub system Called Callers
12
12 Inter-method call matrix Callers Called
13
13 Inter-class call matrix Purpose: – Cumulative overview of communication Elements – Classes appear as instantiated – Square denotes a call from Y to X – Color of square reflects number of calls
14
14 Inter-class call matrix Interpretation – Vertical stripes – heavily used base class – Horizontal stripes – class with many members – Squares on diagonal – calls to self – Clusters near diagonal – tightly coupled classes, part of a sub-system
15
15 Inter-method call matrix Purpose: – Extended view of the call matrix Elements – Square denotes calls from method X to method Y – Color of square indicates number of calls
16
16 Histogram Of Instances All Instances Destroyed Instances in White Color shows message activity Clicking on an instance shows textual message information
17
17 Histogram Of Instances Clicking on instance can show textually: – Received messages information – Sent messages information – Instance creator User can also view graphically, for any instance: – Objects it calls – Objects that call it – Objects it creates – Objects that created it View changes dynamically as instances are created/destroyed
18
18 Histogram Of Instances Created objects
19
19 Identifying Problems Many instances of Term, Factors and BaseNode Instances are active only a short time after creation What can this indicate? A memory leak!
20
20 Finding the Responsible Classes Allocation Matrix: Allocated Classes Allocating Classes
21
21 Looking at Inter-Function Call Matrix Conclusion: Terms::Add may be missing a call to ~Term “Term” methods “Terms” methods
22
22 Instance Histogram – Correct Case
23
23 Conclusions SV is useful in real life applications – Aids debugging – Finds optimization spots – Helps understand the system
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.