24
Exploring the Evolution of Software Quality with Animated Visualization Guillaume Langelier , Houari Sahraoui, Pierre Poulin Université de Montréal

Exploring the Evolution of Software Quality with Animated Visualization

  • Upload
    aizza

  • View
    40

  • Download
    2

Embed Size (px)

DESCRIPTION

Exploring the Evolution of Software Quality with Animated Visualization. Guillaume Langelier , Houari Sahraoui, Pierre Poulin Université de Montréal. Introduction. Visualization of software quality and its evolution Animated transitions between versions Use of graphical coherence. - PowerPoint PPT Presentation

Citation preview

Page 1: Exploring the Evolution of Software Quality with Animated Visualization

Exploring the Evolution of Software Quality with

Animated VisualizationGuillaume Langelier,

Houari Sahraoui, Pierre Poulin

Université de Montréal

Page 2: Exploring the Evolution of Software Quality with Animated Visualization

2

Introduction• Visualizatio

n of software quality and its evolution

• Animated transitions between versions

• Use of graphical coherence

Page 3: Exploring the Evolution of Software Quality with Animated Visualization

3

Nightmare of a project Manager

• An old system has grown and has become very complex over the years. Everyone is afraid to be assigned to the project.

• Abandon and start over!• A project manager has to figure out what

happened, why the program has become poorly maintainable and possibly find a version from which to restart in the history database.

• No! Abandon and start over!• How is it possible for the manager to assess

millions of lines of code possibly modified in many versions?

• Abandon and start over?!?

Page 4: Exploring the Evolution of Software Quality with Animated Visualization

4

Plan

• Problem Statement and Previous Work

• Data• Single Version Representation• Software and Graphical Coherence• Multiple Version Representation• Switching between Views• Conclusion

Page 5: Exploring the Evolution of Software Quality with Animated Visualization

5

Problem Statement

• Quality– Quality is known as a major concern in software

development– Evolution is required to understand the steps leading to a

certain problem– Large amounts of data need to be analyzed

• Existing approaches for analysis– Fully manual approaches are impractical

• Too much information

– Fully automatic approaches are imprecise• Quality aspects are not systematically defined

• Solution : Visualization a semi-automatic approach

Page 6: Exploring the Evolution of Software Quality with Animated Visualization

6

Previous Work(Visualization of software

evolution)• Single Frame with data

aggregation– Less information displayed

• Multiple Frames shown side by side– Less entities displayed

• Animation– Graph-based– Bayer (CVS)– Collberg (code)

Page 7: Exploring the Evolution of Software Quality with Animated Visualization

7

Approach Overview

• Evolution analysis using visualization– Determine data to be extracted

• Pertinent to quality analysis• Data easy to visualize

– Visualize it for analysis• Must take perception issues into account• Must avoid the problem generated by the

great amount of data spawning multiple versions

Page 8: Exploring the Evolution of Software Quality with Animated Visualization

8

Data• Metrics

– Measures on software aspects– Structural metrics

• Coupling• Complexity/Size• Cohesion• Other

– Version control metrics• Author• Change magnitude• Number of versions since last change

• Architecture– Package hierarchy

Page 9: Exploring the Evolution of Software Quality with Animated Visualization

9

Visualization Approach

• Single Version Visualization• Multiple Version Visualization

Page 10: Exploring the Evolution of Software Quality with Animated Visualization

10

Single Version Visualization

• Classes 3D Boxes– Color (scale from blue to red)– Height– Twist (rotation around the Up axis)

• Layout– Treemap layout – Color separators

Page 11: Exploring the Evolution of Software Quality with Animated Visualization

11

Single Version Representation (Example)

Page 12: Exploring the Evolution of Software Quality with Animated Visualization

12

Multiple Version Visualization

• Software coherence– A version is constructed from a previous one– Strong similarities between adjacent versions– Modifications are often small and targeted

• Graphical coherence– High similarities between two images

• Similar to a movie

– Small cognitive effort• Only assess the differences• Do not have to reconstruct our virtual representation

Page 13: Exploring the Evolution of Software Quality with Animated Visualization

13

Graphical Coherence(no spatial coherence)

From Rensink RA, O'Regan JK, and Clark JJ (1997).“To See or Not to See: The Need for Attention toPerceive Changes in Scenes”. Psychological Science, 8.

Page 14: Exploring the Evolution of Software Quality with Animated Visualization

14

Graphical Coherence(spatial and temporal coherences)

From Rensink RA, O'Regan JK, and Clark JJ (1997).“To See or Not to See: The Need for Attention toPerceive Changes in Scenes”. Psychological Science, 8.

Page 15: Exploring the Evolution of Software Quality with Animated Visualization

15

Multiple Version Representation

• Class animation– Characteristics are

animated individually with linear interpolation

– Movement and characteristics animation in two distinct phases

Page 16: Exploring the Evolution of Software Quality with Animated Visualization

16

Layout Animation• Integrate spatial coherence in the

visualization of the evolution• Displaying single version

representations one after the other is not satisfactory– Class movements cross each other– Lost the unique virtual representation

• Two algorithms– Static position layout (class tracking)– Relative position layout (space reduction)

Page 17: Exploring the Evolution of Software Quality with Animated Visualization

17

Layout Animation

• Static Position Animation – Each class remains at the same position

for all versions– Positions are computed for a merged

tree containing all classes existing in at least one version

– Classes are only displayed when they exist in the current version

Page 18: Exploring the Evolution of Software Quality with Animated Visualization

18

Static Layout Animation

Page 19: Exploring the Evolution of Software Quality with Animated Visualization

19

Layout Animation

• Relative Position Animation – Classes keep a relative position to each

other– Computed from the static position

animation– Classes are moved left or down until

they reach their nearest neighbor

Page 20: Exploring the Evolution of Software Quality with Animated Visualization

20

Relative Position Animation

Page 21: Exploring the Evolution of Software Quality with Animated Visualization

21

Switching between Views

• Require to access CVS metrics during evolution

• Limited number of graphical attributes• Creation of a second mapping of

graphical attributes• Same entities at same positions

(spatial coherence)• Additional information is fetched

instantly on demand without introducing a cognitive gap

Page 22: Exploring the Evolution of Software Quality with Animated Visualization

22

Switching between Views

Page 23: Exploring the Evolution of Software Quality with Animated Visualization

23

Applications• Exploration

– Gather information from a new system with free exploration

– Exploration of Azureus(Responsibility transfer, class renaming, etc …)

• Verification of automatic analysis– Calibrate automatic approach– Tune rules and their threshold– Oracles for machine-learning algorithms

• Study of evolution patterns– Study different types of evolution and how they affect

quality aspects– Blob: Instant grown, gradual grown, up and down pattern

Page 24: Exploring the Evolution of Software Quality with Animated Visualization

24

Conclusion• We presented an approach that uses…

– Visualization and metrics to represent software – Animation to represent transition between versions– Layout and animation

• Static Layout• Relative Position Layout

– Exploit multiple views

• Future work– User study– Semantic zoom– More views (Bug view, Management View, Performance

View)