© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.1 5. Software Visualization Introduction  SV in a Reengineering Context Static Code Visualization.

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

8. Static Single Assignment Form Marcus Denker. © Marcus Denker SSA Roadmap  Static Single Assignment Form (SSA)  Converting to SSA Form  Examples.
8. Introduction to Denotational Semantics. © O. Nierstrasz PS — Denotational Semantics 8.2 Roadmap Overview:  Syntax and Semantics  Semantics of Expressions.
Abstraction Lecture-4. ADT example: London Underground Map.
ESE Einführung in Software Engineering 6. Modeling Objects and Classes Prof. O. Nierstrasz.
ESE Einführung in Software Engineering 7. Modeling Behaviour Prof. O. Nierstrasz.
Introduction to Software Engineering 7. Modeling Behaviour.
OORPT Object-Oriented Reengineering Patterns and Techniques 7. Problem Detection Prof. O. Nierstrasz.
© S. Demeyer, S. Ducasse, O. Nierstrasz Reverse Engineering.1 2. Reverse Engineering What and Why Setting Direction  Most Valuable First First Contact.
Object-Oriented Analysis and Design
Object-Oriented Reengineering Patterns and Techniques Prof. O. Nierstrasz Prof. S. Ducasse T.
12. Summary, Trends, Research. © O. Nierstrasz PS — Summary, Trends, Research Roadmap  Summary: —Trends in programming paradigms  Research:...
ESE Einführung in Software Engineering N. XXX Prof. O. Nierstrasz Fall Semester 2009.
© S. Demeyer, S. Ducasse, O. Nierstrasz Duplication.1 7. Problem Detection Metrics  Software quality  Analyzing trends Duplicated Code  Detection techniques.
The Software Composition Group Prof. O. Nierstrasz
13. Summary, Trends, Research. © O. Nierstrasz PS — Summary, Trends, Research Summary, Trends, Research...  Summary: functional, logic and object-oriented.
7. Fixed Points. © O. Nierstrasz PS — Fixed Points 7.2 Roadmap  Representing Numbers  Recursion and the Fixed-Point Combinator  The typed lambda calculus.
Metamodeling Seminar X. CHAPTER Prof. O. Nierstrasz Spring Semester 2008.
OORPT Object-Oriented Reengineering Patterns and Techniques 5. Software Visualization Prof. O. Nierstrasz.
1 Objectives To introduces the concept of software Design. To introduce the concept of Object- Oriented Design (OOD). To Define various aspects about object.
7. Duplicated Code Metrics Duplicated Code Software quality
ESE Einführung in Software Engineering X. CHAPTER Prof. O. Nierstrasz Wintersemester 2005 / 2006.
N. XXX Prof. O. Nierstrasz Thanks to Jens Palsberg and Tony Hosking for their kind permission to reuse and adapt the CS132 and CS502 lecture notes.
7. Fixed Points. © O. Nierstrasz PS — Fixed Points 7.2 Roadmap Overview  Representing Numbers  Recursion and the Fixed-Point Combinator  The typed.
Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science Unified Modeling Language Visual language.
12. Summary, Trends, Research. © O. Nierstrasz PS — Summary, Trends, Research Roadmap  Summary: —Trends in programming paradigms  Research:...
© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.1 3. Software Visualization Introduction SV in a Reengineering Context Static Code Visualization.
An Introduction to Software Visualization Dr. Jonathan I. Maletic Software DevelopMent Laboratory Department of Computer Science Kent State University.
9 1 Chapter 9 Database Design Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
© S. Demeyer, S. Ducasse, O. Nierstrasz Chapter.1 MakeMoney Corp. C*O of MakeMoney Corp. Our Vision  We invest in software  We do not know software 
OORPT Object-Oriented Reengineering Patterns and Techniques X. CHAPTER Prof. O. Nierstrasz.
CP — Concurrent Programming X. CHAPTER Prof. O. Nierstrasz Wintersemester 2005 / 2006.
12. eToys. © O. Nierstrasz PS — eToys 12.2 Denotational Semantics Overview:  … References:  …
Object-Oriented Reengineering Patterns 3. Software Visualization Selected slides courtesy Tudor Girba.
1 User Interface Design CIS 375 Bruce R. Maxim UM-Dearborn.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
OBJECT ORIENTED PROGRAMMING IN C++ LECTURE
The Re-engineering and Reuse of Software
The chapter will address the following questions:
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Objects What are Objects Observations
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
A Survey of Software Refactoring Tom Mens, Tom Tourwé
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
Introduction to UML By: Prof. Aiman Hanna Department of Computer Science, Concordia University, Montreal, Canada.
Glyph Visualization and Yet Another Tree Visualization Matt Williams InfoVis 533c April 3, 2003.
Unit 2: Engineering Design Process
1 Introduction to Software Engineering Lecture 1.
Lucian Voinea Visualizing the Evolution of Code The Visual Code Navigator (VCN) Nunspeet,
1 Class Diagrams: Advanced Concepts. 2 Overview Class diagrams are the most commonly used diagrams in UML. Class diagrams are the most commonly used diagrams.
Computer Systems & Architecture Lesson 4 8. Reconstructing Software Architectures.
PROC-1 1. Software Development Process. PROC-2 A Process Software Development Process User’s Requirements Software System Unified Process: Component Based.
SBD: Information Design
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Lecture VIII: Software Architecture
Introduction to Object Oriented Programming Lecture-3.
Michele Lanza Software Visualization. 2 Software Visualization - Outline  Introduction  Software Visualization in a Reengineering Context  Static Code.
WELCOME TO OUR PRESENTATION UNIFIED MODELING LANGUAGE (UML)
Software Design and Architecture Muhammad Nasir Software Architecture Documentation
Software Metrics 1.
Object-Oriented Analysis and Design
Unified Modeling Language
Methodology Overview 2 basics in user studies Lecture /slide deck produced by Saul Greenberg, University of Calgary, Canada Notice: some material in this.
Visual Perception.
OORPT Object-Oriented Reengineering Patterns and Techniques
Applying Use Cases (Chapters 25,26)
Applying Use Cases (Chapters 25,26)
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:

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.1 5. Software Visualization Introduction  SV in a Reengineering Context Static Code Visualization  Examples Dynamic Code Visualization  Examples Understanding Packages Understanding Evolution Conclusion

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.2 Program Visualization Reduction of complexity Generate different views on software system Visualization is powerful. But  Can be complex (active research area), Efficient space use, crossing edges, focus...  Colors are nice but there is no convention  Nice pictures do not imply valuable information  Where to look? What is important?

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.3 A Bit of Vocabulary Visualization  Information Visualization Software Visualization  Algorithm Visualization  Program Visualization Static Code Visualization Dynamic Code Visualization The overall goal is to reduce complexity

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.4 (Information) Visualization Bertin assessed three levels of questions  Lower perception (one element)  Medium perception (several elements)  Upper perception (all elements/the complete picture) In Information Visualization it’s all about the reduction of complexity Information Collection What to visualize How to visualize

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.5 Software Visualization “Software Visualization is the use of the crafts of typography, graphic design, animation, and cinematography with modern human-computer interaction and computer graphics technology to facilitate both the human understanding and effective use of computer software.” Price, Baecker and Small, “Introduction to Software Visualization” 2 main fields:  Algorithm Visualization  Program Visualization The main conceptual problem: “Software is intangible, having no physical shape or size. Software visualisation tools use graphical techniques to make software visible by displaying programs, program artifacts and program behaviour.” [Thomas Ball]

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.6 In a Reengineering Context Work on old systems, dialects New tools are not processing your (C++) dialect Approaches  Scalability is crucial  Efficient (time/information obtained)  Need a clear focus Solutions  Minimize tools support  Use existing proven tools (Rigi, CodeCrawler, Jinsight)  Do it yourself but simple thing first

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.7 The Reengineering Life-cycle Requirements Designs Code (0) requirement analysis (1) model capture (2) problem detection (3) problem resolution (4) program transformation (2) problem detection issues Tool support Scalability Efficiency

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.8 Program Visualization “Program visualization is the visualization of the actual program code or data structures in either static or dynamic form” [Price, Baecker and Small] Static code visualization Dynamic code visualization Generate different views of a system and infer knowledge based on the views Complex problem domain (current research area)  Efficient space use, edge crossing problem, layout problem, focus, HCI issues, GUI issues, …  Lack of conventions (colors, symbols, interpretation, …)

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.9 Program Visualization II Level of granularity?  Complete systems, subsystems, modules, classes, hierarchies,... When to apply?  First contact with a unknown system  Known/unknown parts?  Forward engineering? Methodology?

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.10 RoadMap Introduction  SV in a Reengineering Context Static Code Visualization  Examples Dynamic Code Visualization  Examples Understanding Packages Understanding Evolution Conclusion

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.11 Static Code Visualization The visualization of information that can be extracted from the static structure of a software system Depends on the programming language and paradigm:  Object-Oriented PL: classes, methods, attributes, inheritance, …  Procedural PL: procedures, invocations, …  …

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.12 Example 1: Class Hierarchies Jun/OpenGL The Smalltalk Class Hierarchy Problems:  Colors are meaningless  Visual Overload

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.13 Example 2: Tree Maps Pros  100% screen  Large data  Scales well Cons  Boundaries  Cluttered display  Interpretation  Leaves only Useful for the display of HDDs

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.14 Examples 3 & 4 Euclidean cones  Pros: More info than 2D  Cons: Lack of depth Navigation Hyperbolic trees  Pros: Good focus Dynamic  Cons: Copyright

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.15 Kind of Code Maps From Marcus,Feng, Maletic Software Visualization’03 Simple Overview File-based One “Dot” = one line

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.16 Nesting Level

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.17 Control Flow

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.18 Evaluation Simple to draw Good overview Limited semantics Patterns difficult to identify because of line breaks

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.19 One Case for 3D Most of the time 3D is not worth but…

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.20 Usual Problems with 3D No spatial semantics (is above better than below) Scalability Extra effort Space localization

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.21 Quantitative Information 3D useful for quantitative information

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.22 Accessing Hidden Information

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.23 Evaluation Worth to represent quantitative information Spatial information is not really sexy Requires more work Requires more tooling

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.24 Class Diagram Approaches For example UML diagrams… Pros:  OO Concepts  Good for small parts Cons:  Lack of scalability  Require tool support  Requires mapping rules to reduce noise  Preconceived views

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.25 Class Diagram Examples

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.26 Example 5a: Rigi Scalability problem Entity- Relationshi p visualizatio n Problems:  Filtering  Navigatio n

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.27 Example 5b: Rigi Entities can be grouped Pros:  Scales well  Applicable in other domains Cons:  Not enough code semantics

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.28 Evaluation Pros  Intuitive approaches  Aesthetically pleasing results Cons  Several approaches are orthogonal to each other  Too easy to produce meaningless results  Scaling up is sometimes possible, however at the expense of semantics

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.29 RoadMap Introduction  SV in a Reengineering Context Static Code Visualization  Examples Dynamic Code Visualization  Examples Understanding Packages Understanding Evolution Conclusion

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.30 Dynamic Code Visualization Visualization of dynamic behaviour of a software system  Code instrumentation  Trace collection  Trace evaluation  What to visualize Execution trace Memory consumption Object interaction …

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.31 Example 1: JInsight Visualization of execution trace

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.32 Example 2: Inter-class call matrix Simple Reproducible Scales well Excel?

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.33 Mural View The algorithm takes an image of M x N elements and scales it into a mural of I x J pixels.

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.34 The Algorithm 1) for each i,j set mural_array[i][j] to zero 2) for each element m,n of information a) compute x = m / M * I, y = n / N * J b) determine the proportion of this point that lies in each of the four surrounding mural_array entries (totals to 1.0): mural_array[floor(x)][floor(y)] mural_array[floor(x)][ceil(y)] mural_array[ceil(x)][floor(y)] mural_array[ceil(x)][ceil(y)] c) add each of the proportions determined in the previous step to the existing values of each corresponding mural_array entry i) update max_mural_array_value to keep track of the maximum mural_array[][] value 3) for each i,j in the mural_array a) map the value mural_array[i][j] / max_mural_array_value to a grayscale or color intensity varying scale, or to pixel size, depending on the type of mural being created b) color and draw the pixel at i,j of the mural based on mapping computed in the previous step

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.35 Class View Smith, Munro, Runtime Visualization of Object Oriented Software, Vissoft 02

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.36 A Class Methods/#invocation

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.37 Method Calling Counts

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.38 Evaluation Entities as objects Spot fast the important methods For complete scenario may be difficult to reproduce Requires interactivity Layout can be a problem

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.39 Evaluation Useful not for any kinds of data Handling of large amount of data

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.40 Dynamic SV: Evaluation Code instrumentation problem  Logging, Extended VMs, Method Wrapping, C++ preprocessing is heavy Scalability problem  Traces quickly become very big (1Mb/s) Completeness problem: scenario driven Pros:  Good for fine-tuning, problem detection Cons:  Tool support crucial  Lack of abstraction without tool support

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.41 RoadMap Introduction  SV in a Reengineering Context Static Code Visualization  Examples Dynamic Code Visualization  Examples Understanding Packages Understanding Evolution Conclusion

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.42 Butterfly for Package Important: first level of structure Package are complex entities  Not always have to be cohesive (subclasses of a framework grouped together)  Team-oriented  Contain intent of structure and deployement

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.43 Butterfly View

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.44 Butterflies

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.45 Evaluation Focus on packages Entities as objects Patterns Shape easily recognisable Lot of information condensed Problems with value normalisation

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.46 Cities Houari et al

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.47 Boxes = Packages Height Color Twist 2D +

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.48

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.49 Evolution

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.50 Evaluation Interesting use of pseudo-3D Limited mapping possibility Good overview Good spotting facility Limit of metaphor  Are shanty towns that bad?

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.51 RoadMap Introduction SV in a Reengineering Context Static Code Visualization  Examples Dynamic Code Visualization  Examples Understanding Packages Understanding Evolution Conclusion

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.52 Understanding Evolution Information is in the history! Overwhelming complexity How can we detect and understand changes? Solutions:  Revision Towers  TimeWheel, Infobug  The Evolution Matrix

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.53 Revision Tower Taylor, Munro, Revision Towers, Vissoft02 Past is at the bottom Middle section represents release Side section represents history Here.c files compared with.h files Authors are color typed File changed often: lot of rectangle inside a release period

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.54 Revision Tower (II) Simple Entire file File based Few information revealed

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.55 Definitions Glyph: A symbol, such as a stylized figure or arrow on a public sign, that imparts information nonverbally.

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.56 How can we represent time? Animation?  Good for easily perceived outliers Time Series graph?  Good for comparing trends Timewheel

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.57 TimeWheel (1) Displays trends for a number of attributes at a time Maintain “Objectedness” through Gestalt principals

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.58 Timewheel (II) Multiple time series ordered in a circle Data attributes are color coded Easy recognition of two trends  Increasing trend  Tapering trend Helps to examine different trends within one object

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.59 Time Series Problems In row  More time to spot them  Less local patterns In circle  Weakens reading order implications  Rotation invariant Example

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.60 InfoBug

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.61 Infobug Look like an insect Show many properties while still maintaining “objectedness” Certain patterns preattentively pop out Interactive Represent four classes of software data  Code lines, errors (wings)

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.62 4 Classes of Software Data Head (Type of code) Wings (Lines of codes, errors) Body (bar - file changes, Spots - number of subsystems) Tails (added, removed lines)

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.63 Infobug Wings Time series Lines of code vs. Lines of Errors Red line is current selection (update other aspects) Code quality

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.64 Infobug Head Different types of code Type is color coded Relative size is shown by antenna length

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.65 Infobug Tail Triangle shaped Number of delected lines (height) Number of added lines (width)  Errors in red  New function in green

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.66 Infobug Body Bar in the middle - Number of changed files Spots - Number of children

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.67 Interface Colors: file types Time scale

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.68 Evaluation Pros:  Large datasets on little space  Entities as objects  Easy to recognise patterns  Trends identification  Easy to compare and analyse  Interactive Cons:  Learning (but is there something we should not learn?)  Main focus on Error/Loc ratio  Could include more information

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.69 The Evolution Matrix Last Version First Version Major Leap Removed Classes TIME (Versions) GrowthStabilisation Added Classes

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.70 Dayfly & Persistent Dayflies: Exists during only one or two versions. Perhaps an idea which was tried out and then dropped. Persistent: Has the same lifespan as the whole system. Part of the original design. Perhaps holy dead code which no one dares to remove.

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.71 Visualizing Classes Using Metrics Object-Oriented Programming is about “state” and “behavior”:  State is encoded using attributes  Behavior is encoded with methods We visualize classes as rectangles using for width and height the following metrics:  NOM (number of methods)  NOA (number of attributes) The Classes can be categorized according to their “personal evolution” and to their “system evolution”: Pulsar, Supernova,Red Giant, Stagnant,DayflyPersistent Foo Bar

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.72 Pulsar & Supernova Pulsar: Repeated Modifications make it grow and shrink. System Hotspot: Every System Version requires changes. Supernova: Sudden increase in size. Possible Reasons: Massive shift of functionality towards a class. Data holder class for which it is easy to grow. Sleeper: Developers knew exactly what to fill in.

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.73 White Dwarf, Red Giant, Idle White Dwarf: Lost the functionality it had and now trundles along without real meaning. Possibly dead code. Red Giant: A permanent god class which is always very large. Idle: Keeps size over several versions. Possibly dead code, possibly good code.

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.74 Example: MooseFinder (38 Versions)

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.75 Evaluation Easy to draw Scalable via other grouping entities (packages) Good overview of history Limit of the metaphor…

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.76 RoadMap Introduction SV in a Reengineering Context Static Code Visualization  Examples Dynamic Code Visualization  Examples Understanding Packages Understanding Evolution Conclusion

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.77 Do It Yourself Considerations A decent graph layout can be a hard task...  Algorithmic aspects may be important  Efficient space use (physical limits of a screen)  Colours are nice, but... there are no conventions!  Trade-off between usefulness and complexity Keeping a focus is hard:  Beautiful graphs are not always meaningful  Where should we look?  What should we look for? Which approach be reproduced by reengineers in work context and provides useful information?

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.78 Conclusions SV is very useful when used correctly An integrated approach is needed, just having nice pictures is not enough In general: only people that know what they see can react on that: SV is for expert/advanced developers The future of software development is coming…and SV is part of it

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.79 Lessons Learned Visualization is not just smoke and mirrors!  Complexity reduction, abstraction But it should be adapted to  your goal (first contact, deep understanding),  time (2 days - a month),  size (a complete system or 3 classes) Minimize tool support if you are not familiar Simple approaches give 80%, the last 20% are hard to get

© S. Demeyer, S. Ducasse, O. Nierstrasz Visualization.80 License Attribution-ShareAlike 2.5 You are free: to copy, distribute, display, and perform the work to make derivative works to make commercial use of the work Under the following conditions: Attribution. You must attribute the work in the manner specified by the author or licensor. Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one. For any reuse or distribution, you must make clear to others the license terms of this work. Any of these conditions can be waived if you get permission from the copyright holder. Your fair use and other rights are in no way affected by the above. Attribution-ShareAlike 2.5 You are free: to copy, distribute, display, and perform the work to make derivative works to make commercial use of the work Under the following conditions: Attribution. You must attribute the work in the manner specified by the author or licensor. Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one. For any reuse or distribution, you must make clear to others the license terms of this work. Any of these conditions can be waived if you get permission from the copyright holder. Your fair use and other rights are in no way affected by the above.