Visualizing Object Oriented Software execution By: Wim De Pauw, Doug Kimelman and John Vlissides Presented By: Tomer & Mirela Ben-Chen.

Slides:



Advertisements
Similar presentations
© 2005 by Prentice Hall Appendix 3 Object-Oriented Analysis and Design Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F. George.
Advertisements

STATEMATE A Working Environment for the Development of Complex Reactive Systems.
Intel® performance analyze tools Nikita Panov Idrisov Renat.
Interaction Diagram Notation From Chapter 15 of Craig Larman, Applying UML and Patterns John Dalesandro.
Visualization Kenny Inthirath.  Reviewing a Suitable Technique to Use  Scope and Purpose  What types of models can be represented?  Architectural.
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 9 Slide 1 Appendix 3 Object-Oriented Analysis and Design.
Unified Modeling Language
Lecture 5a: Sequence Interaction Diagrams CSE 111 Copyright W. Howden1.
Essentials of interaction diagrams Lecture Outline Collaborations Interaction on collaboration diagrams Sequence diagrams Messages from an object.
Dynamic modeling using UML
© Copyright Eliyahu Brutman Programming Techniques Course.
Visualization. CS351 - Software Engineering (AY2004)2 Program visualization Debugging programs without the aid of support tools can be extremely difficult.
Expression Web 2 Concepts and Techniques Expression Web Design Feature Web Design Basics.
Copyright © 2010 SAS Institute Inc. All rights reserved. Effective Data Visualization Design for Dashboards Lisa Whitman TriUPA May 25, 2011.
Systems Analysis And Design © Systems Analysis And Design © V. Rajaraman MODULE 14 CASE TOOLS Learning Units 14.1 CASE tools and their importance 14.2.
Interactions. 2 Objects communicate with each other by sending messages. Sending a message is another name for a member function call. –Some C++ examples.
Class, Sequence and UML Model.  Has actors and use cases.
1 CSE 2102 CSE 2102 CSE 2102: Introduction to Software Engineering Ch9: Software Engineering Tools and Environments.
SOFTWARE ENGINEERING BIT-8 APRIL, 16,2008 Introduction to UML.
Prepared by: Sanaz Helmi Hoda Akbari Zahra Ahmadi Sharif University of Tech. Summer 2006 An Introduction to.
1 SAD2 - UML 4 th Lecture Class Diagram in Construction Phase Patterns Case Study Lecturer: Dr Dimitrios Makris
1 On to Object Design Chapter 14 Applying UML and Patterns.
1 UML Basic Training. UML Basic training2 Agenda  Definitions: requirements, design  Basics of Unified Modeling Language 1.4  SysML.
+ Web Design Terminology Digital Communications III- Frameworks-2.1 Terminology HTML Domain Name Hot Spot Site Maps.
Systems Analysis & Design 7 th Edition Chapter 5.
UML diagrams What is UML UML diagrams –Static modeoing –Dynamic modeling 1.
Sequence diagram in UML Martin Palkovik. Sequence diagram  It is a graphic representation of system operations based on chronology - a time sequence.
Interaction Diagrams Interaction Diagrams allow the designer to show how groups of objects collaborate in some behavior. –Interaction Diagrams will show.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 8: Modelling Interactions and Behaviour UML Sequence Diagram.
Information System Design (IT60105) Lecture 26 Object-Oriented System Testing.
Object Oriented Analysis and Design Sequence Diagrams.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
Modelling Class T07 Conceptual Modelling – Behaviour References: –Conceptual Modeling of Information Systems (Chapters 11, 12, 13 and 14)
1 Class Diagrams. 2 Overview Class diagrams are the most commonly used diagrams in UML. Class diagrams are for visualizing, specifying and documenting.
(14-2) UML Instructor - Andrew O’Fallon CptS 122 (December 2, 2015) Washington State University.
Unit 21 AO5: Lesson 01 Making Advertising Banners Mr C Johnston ICT Teacher
33 CHAPTER BASIC APPLLICATION SOFTWARE. © 2005 The McGraw-Hill Companies, Inc. All Rights Reserved. 1-2 Common Errors Resulting in Spreadsheet Formulas.
?. When designing, you should analyze your target audience. Design you webpage around your target audience Target Audience.
Chapter 5 System Modeling (1/2) Yonsei University 2 nd Semester, 2015 Sanghyun Park.
Microsoft Expression Web 3 Expression Web Design Feature Web Design Basics.
IE 411/511: Visual Programming for Industrial Applications Lecture Notes #2 Introduction to the Visual Basic Express 2010 Integrated Development Environment.
1 Kyung Hee University Interaction Diagrams Spring 2001.
Project 2: Phase 1 Submission 7 Late submissions 10% 10 No submissions 14% Better than project 1 phase 3 submissions 10-point bonus: If you catch the deadline.
Chapter 4 – System Modeling Lecture 1 1Chapter 5 System modeling.
Chapter 2, Modeling with UML
Appendix 3 Object-Oriented Analysis and Design
Objective % Select and utilize tools to design and develop websites.
UML(Unified Modeling Language)
Unified Modeling Language Tutorial
Interactions.
Course Outcomes of Object Oriented Modeling Design (17630,C604)
Object-Oriented Analysis and Design
Unified Modeling Language
Objective % Select and utilize tools to design and develop websites.
The Process of Object Modeling
Business System Development
UML dynamic Modeling (Behavior Diagram)
INFS 6225 – Object-Oriented Systems Analysis & Design
Object Oriented Analysis and Design
Requirements To Design In This Iteration
CIS16 Application Development Programming with Visual Basic
Presentation Controls
Analysis models and design models
Software Design Lecture : 15.
Class Diagrams.
Chapter 5.
CIS 375 Bruce R. Maxim UM-Dearborn
Charts A chart is a graphic or visual representation of data
Appendix 3 Object-Oriented Analysis and Design
UML  UML stands for Unified Modeling Language. It is a standard which is mainly used for creating object- oriented, meaningful documentation models for.
Presentation transcript:

Visualizing Object Oriented Software execution By: Wim De Pauw, Doug Kimelman and John Vlissides Presented By: Tomer & Mirela Ben-Chen

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 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 Basic Concepts Classes, objects, methods and messages Levels of detail Different views – Clustering indicates interaction – Histograms show activity – Cross-reference matrices

5 Inter-class call cluster Class name Cluster Active class Inactive class Call stack Top of stack

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 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 Time bar chart CPU time Classes Hot Spot

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 Inter-class call matrix Called Callers Many callsNot Many calls

11 Inter-class call matrix Sub system Called Callers

12 Inter-method call matrix Callers Called

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 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 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 Histogram Of Instances All Instances Destroyed Instances in White Color shows message activity Clicking on an instance shows textual message information

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 Histogram Of Instances Created objects

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 Finding the Responsible Classes Allocation Matrix: Allocated Classes Allocating Classes

21 Looking at Inter-Function Call Matrix Conclusion: Terms::Add may be missing a call to ~Term “Term” methods “Terms” methods

22 Instance Histogram – Correct Case

23 Conclusions SV is useful in real life applications – Aids debugging – Finds optimization spots – Helps understand the system