SlideShare ist ein Scribd-Unternehmen logo
1 von 95
Software Evolution Visualization
  Status, Challenges, and Possible Research Directions

                   Prof. Manoel Mendonça




http://fpc.dcc.ufba.br                             http://les.dcc.ufba.br
+55 (71) 3283-6311       manoel.mendonca@ufba.br
Outline
   Introduction
   Information and Software Visualization
   Software Evolution Visualization (SEV)
   A Critical View of the Area
   SEV@UFBA
   Conclusion




2
Outline
   Introduction
   Information and Software Visualization
   Software Evolution Visualization (SEV)
   A Critical View of the Area
   SEV@UFBA
   Conclusion




3
Software Visualization (SoftVis)

   It is the use of visual paradigms (visual resources
    – animation and graphical design) to facilitate the
    comprehension and effective use of software.
       Price, Baecker and Small, “An Introduction to Software
        Visualization”




4
Software is Abstract

       Software is inherently:
           “invisible”
           intangible
           has no physical format




    5
Representing Software

       Software can be represented in many ways
           The most common way is the textual format, especially
            its source code




    6
Source Code at a Low Level of Abstraction
    Address             Label        Source Code           Object Code

                                     .begin
                                     .org 2048
                        a_start      .equ 3000
    2048                             ld length,%
    2064                             be done               00000010 10000000 00000000 00000110
    2068                             addcc %r1,-4,%r1      10000010 10000000 01111111 11111100
    2072                             addcc %r1,%r2,%r4     10001000 10000000 01000000 00000010
    2076                             ld %r4,%r5            11001010 00000001 00000000 00000000
    2080                             ba loop               00010000 10111111 11111111 11111011
    2084                             addcc %r3,%r5,%r3     10000110 10000000 11000000 00000101
    2088                done:        jmpl %r15+4,%r0       10000001 11000011 11100000 00000100
    2092                length:      20                    00000000 00000000 00000000 00010100
    2096                address:     a_start               00000000 00000000 00001011 10111000
                                     .org a_start
    3000                a:

           Murdocca, Miles J.; Vincent P. Heuring (2000). Principles of Computer Architecture.
                                  Prentice-Hall. ISBN 0-201-43664-7.


7
Representing Software

       Can visualization techniques be used to represent
        software?
       Yes! It is already being used in some way or another
        since the 70’s




    8
Visualization in a Modern IDEs



                           pretty printing

    hierarchical
     structure




                                              iconographic
                                             representation
                        syntax based
                          coloring




9
Is this Enough?

        Not Quite
            Size and Complexity have sky rocked
            We lack mechanisms to visualize and explore software
             in the large
        Information Visualization techniques and paradigms can
         be used to deal with this issue




    10
Outline
    Introduction
    Information and Software Visualization
    Software Evolution Visualization (SEV)
    A Critical View of the Area
    SEV@UFBA
    Conclusion




14
SoftVis is InfoVis




15
Information Visualization (InfoVis)

     “InfoVis is the study of (interactive) visual representations
      of abstract data to reinforce human cognition.”
                                                                     .




16
Visualization is about Perception

        Taking the input from our senses (in this case Vision)
         and turning it into something that has meaning for us


        We “see” (perceive) with our brains!




19
A Data Pattern in Tabular Format


Y      0        0.259    0.5    0.707    0.866   0.966    1        0.966    0.866   0.707
X      12       13       14     15       16      17       18       19       20      21
Y      0.5      0.259    0      -0.259   -0.5    -0.707   -0.866   -0.966   -1      -0.966
X      22       23       24     25       26      27       28       29       30      31
Y      -0.866   -0.707   -0.5   -0.259   0       .0259    0.5      0.707    0.866   0.966
X      32       33       34     35       36      37       38       39       40      41



                  Requires Perception and Reasoning




20
Same Pattern in Visual Format

          1


         0,5


          0


        -0,5


          -1
               12

                    14
                         16

                              18
                                   20

                                        22
                                             24
                                                  26

                                                       28
                                                            30

                                                                 32
                                                                      34

                                                                           36
                                                                                38

                                                                                     40
                              Requires only Perception



21
InfoVis requires Interaction
        Computer-based InfoVis requires human computer
         interaction.
        There is no InfoVis without good interaction
         mechanisms.




26
InfoVis Interaction Mantra


     Gain a global view, zoom and filter, and then
                    detail on demand

        SHNEIDERMAN, B. The eyes have it: A task by data type taxonomy for
                                                  information visualization.

                   In VL’96: Proceedings of the 1996 IEEE Symposium on Visual
                               Languages (1996), IEEE CS Press, pp. 336–343.




27
Revisiting our SoftVis Definition

     SoftVis is the effective mapping of software entities
     and its attributes into graphical structures that are
     easy explore and understand by software engineers …


     to facilitate the comprehension and effective use of
     software.




28
Effective Mapping (1)

    Good visual metaphors
         graphical structure matches the nature of the information
         use perception efficient representations and visual attributes

    Good views (instantiations of metaphors)
         intuitive mapping of real attributes into visual attributes




29
Effective Mapping (2)

 Due to its complexity software cannot be described by
just one view
Multiple views are need to assemble an analysis
perspective
      These views must be consistent and integrated among
     themselves and with the rest of the IDE




30
Effective Mapping in Modern IDEs
                                      Multiple views assemble
                                      an analysis perspective




     Multiple visual
      Metaphors




                       Syntax-based
                         coloring
                            Visual attribute
                           => Real attribute

                                               All is integrated !

31
Easy to Explore and Undertsnad
 The goal is to facilitate the comprehension of the software
(the graphics is a means to an end).
   We need good interaction mechanisms
        Easy to use widgets and interaction controls
 We need a comprehensive data exploration functionality
to support Shneiderman’s mantra




32
There is a lot to be done here




33
Easy to Explore and Undertsnad
   Good interaction mechanisms
        Easy to use widgets and interaction controls
Comprehensive data exploration functionality to support
Shneiderman’s mantra
      Global views, conceptual zoom, attribute based
     brushing and filtering, dynamic mapping between real
     and visual attributes, navigation and consistent marking,
     and details on demand.
   Integration of the views with these functionalities.



34
SourceMiner
     (www.sourceminer.org)




35
(A)    (E)

                  (C)   (D)

      (B)
36
There is much still to be visualized

                 in the large




37
SoftVis Areas

     Static Software Visualization (no need to run the code)
          Static representations of control and data flows

          Visualization of modules (structures and dependencies)

          Static aspects of architectures

     Dynamic Software Visualization (running the code)
          Animated Algorithms

          Test coverage and debugging

          Memory usage and code traces

          Dynamic aspects of software architectures




38
SoftVis Areas

     Visualizing data about the software
          Contributions, authorship and usage of modules and components

          Bug and issues information

          Discussions, opinions, and people roles

     Software Evolution Visualization
          Changes in structure

          Dependency evolution

          Change in metrics

          Evolution of data about the software (all of the above)




39
SoftVis Areas

     Visualizing data about the software
          Contributions, authorship and usage of modules and components

          Bug and issues information

          Discussions, opinions, and people roles

     Software Evolution Visualization
          Changes in structure

          Dependency evolution

          Change in metrics

          Evolution of data about the software (all of the above)




40
Outline
    Introduction
    Information and Software Visualization
    Software Evolution Visualization (SEV)
    A Critical View of the Area
    SEV@UFBA
    Conclusion




41
Software systems must be continually adapted or they become
progressively less satisfactory (LEHMAN, 1978)(LEHMAN, 1980)




   42
Evolution                    (Lehman, 78)




Complexity   Comprehension
                               (Jay et al.,
                                 2009)




 Costs                       (Erlikh, 2000)

   43
For some systems, the cost devoted to evolution and
maintenance now accounts for more than 90% of total
software costs (ERLIKH, 2000)




       Software maintainers spend approximately 50%
        of their time in the process of understanding
             the code (FJELDSTA e HAMLEN, 1983)
  44
So, what can we do to facilitate software
comprehension “in the large”?




45
Software evolution visualization


Software evolution analysis   Software visualization
         requires             can summarize the data
       lots of data           in meaningful contexts




 46
Software evolution visualization

    SEV is around since the 90’s


    There is a sizeable body of work in the literature




    47
SEV of What?

    Behavior                  Mail List
    Code Clones               Metrics
    Data structures           Requirements
    Defects                   Software Architecture
    Developer Activities      Source code changes
    Developer Dependency      Comment changes
    Exception handling        Source code dependency
    Ecosystem change          System dependency
    Features                  Topics




48
SEV for What?

    Change Comprehension            Quality improvement
    Change Control Enhancement      Process Improvement
    Change Prediction               Powerful and scalable
    Contribution Analysis            visualization

    Defect Classification and       Re-documentation
     Analysis                        Reverse engineering
    Development communication       Software reuse
                                     Identification of anomalies
                                     Dependency among projects




49
Strategies of Analysis

     Defines the strategy for the visual presentation of
       software artifacts.

        Temporal Overview
        Temporal Snapshot
        Temporal Cumulative

                                  Differential Relative
                                  Differential Absolute



50
A visualization for software project
Example 1                               awareness and evolution, VISSOFT 2007
                                          RM Ripley, A Sarma, A van der Hoek

of What: Developer activity over the code




for What: contribution analysis and change comprehension


51
Example 2

     of What: logical
     coupling between
     modules



           Animated visualization of
        software history using evolution
           storyboards, WCRE 2006
              D Beyer, AE Hassan




for What: change prediction, reverse engineering, identification of
anomalies

52
Example 3
                                   Exploring software evolution using
                                      spectrographs, WCRE 2004
of What: files by version              J Wu, RC Holt, AE Hassan
by recent changes




for What: change prediction (and contribution analysis)

53
Temporal Strategies

    Temporal Overview
    Temporal Snapshot
    Temporal Cumulative




54
Outline
    Introduction
    Information and Software Visualization
    Software Evolution Visualization (SEV)
    A Critical View of the Area
    SEV@UFBA
    Conclusion




55
Mapping Study

     Search String
     ("software" OR "system")
     AND
     ("visualization" OR "visual" OR "Visualisation")
     AND
     ("evolution" OR "evolving")




56
SEV Data Sources

     Type                     Data sources

Source Code        CVS         SubVersion     GIT
Management


Bug Tracking     Mantis         BugZilla      Trac
  System
                                             Models
               Requirements      Features
Other Types                      mapping      Trace
                 Forums                      mapping


57
Most used data sources
     60

          49
     50
                                                  41.78% use more than one data
     40
               34                                            source
                    29
     30


     20

                         10
     10
                              5
                                  3   2   2                                         2
                                              1     1   1   1   1   1   1   1   1       1
      0




58
Most used metrics

                                                  78.08% of the authors use more
     60
               56
                                                         than one metric
     50



     40
                             36


     30                                  28

                                                     22
                                                                 20
     20
                                                                          15


     10
                                                                                   5


      0
          Coupling (any)   # commit   # authors   Complexity    Logical   LOC   Cohesion
                                                               Coupling




59
Most used perspectives




                         54,79% of the studies use
                         more than one perspective


60
Most used strategies


                       Only 23.97% use combination
                               of strategies




61
Goals




62
Papers per type of validation

     50
                         19.18% 72.60%          0.68%   7.53%
     45
          44
                              Feasibility study
     40        36
     35
     30             28

     25
     20
     15                    12
                                10
     10
                                     4    4    4
      5                                             2   1   1
      0




63
Outline
    Introduction
    Information and Software Visualization
    Software Evolution Visualization (SEV)
    A Critical View of the Area
    SEV@UFBA
    Conclusion




64
Goals of our SoftVis Group

    To help developers to build successful InfoVis tools
    To help system analysts to use InfoVis tools to
     achieve their maintenance goals
    To help researchers to evaluate InfoVis tools from a
     software engineering point of view




65
Our Approach




66
67
EXAMPLE 1

     Differential Strategies with

      SourceMiner Evolution




68
Differential Strategies


        Differencial Absolute
        Differencial Relative




69
Using Colors to Represent Evolution Attributes

    From one version to the other,
     elements that
            Appeared are painted in blue
            Disappeared are painted in gray
            No change are painted in white

  Elements that decreased or increase are painted in a
colour scale that ranges from bright green (decreased a lot)
to bright red (increased a lot)



    70
Adapting SourceMiner’s Views and Perspectivas




71
Differential Strategies


        Differencial Absolute
        Differencial Relative




72
Implementing and evaluating the Relative
Differential Analysis
    Goal: Identify software erosion

    Tasks (questions):

        What are the hot spots of the source code?

        What are the God Classes, long methods? Etc.

    Experimental object:

        8 versions of MobileMedia (open source)

    Subjects: 14 Grad Students

    NOVAIS, R. L., CARNEIRO, G. F., SIMOES JUNIOR, P. R. M., MENDONÇA
     NETO, M. G. On the Use of Software Visualization to Analyze Software
     Evolution - An Interactive Differential Approach. In ICEIS 2011.



73
74
Demo

     SourceMiner Evolution




75
Differential Strategies


        Differencial Absolute
        Differencial Relative




76
Implementing and evaluating the Absolute
    Differential Analysis

    Goal: Understand how features are evolving

    Tasks (questions):

            Tasks related to feature evolution, feature tangling, and feature dependency
             analysis. Etc.

    Experimental object:

            5 versions of an oil company software in Brazil

    Subjects: 20 analysts from two cities

    NOVAIS, R., NUNES, C., LIMA, C., CIRILO, E., DANTAS, F., GARCIA, A.,
     MENDONÇA, M. On the Proactive and Interactive Visualization for Feature
     Evolution Comprehension: An Industrial Investigation. In ICSE’12.



    79
Colour Represent Concerns




80
Colour Represent the Evolution of Concerns




81
EXAMPLE 2

     Cumulative Temporal Evolution
                  &
       Augmented Reality with

             SkyscrapAR



84
3D Software Visualization




     3D representations for software
        visualization, SoftVis’03
      A Marcus, L Feng, JI Maletic




“The inclusion of aesthetically appealing elements such as 3D graphics
   and animation not only increases the design’s appeal,
   intuitiveness, and memorability of a visualization but also eases
   perception of the human visual system” (Teyseyre, 2009)


85
SEV in 3D – CodeCity’s Example

                        Building height: number of methods

                                    Building base (width and length):
                                          number of attributes




                    Program comprehension through software habitability
                                   R Wettel, M Lanza




86
Problems with 3D Visualization

        Oclusion X Interaction
        Navigation in a 3D world with a 2D mouse




87
Augmented Reality: A Cheap Solution




88
How it Works




89
SkyscrapAR

    Code-city metaphor
    Using a temporal cumulative strategy
     to analyze code evolution
    In augmented reality




90
SkyscrapAR Building Metaphor


                                     (2)

                                           (3)


                                     (1)


      (1) Green area – class max LOC in history
     (2) Building base – class LOC at current version
     (3) Building height – class code churn in history


91
SkyscrapAR
     Code-city Metaphor




92
93   93
94   94
95   95
96   96
97   97
SkyscrapAR - Other info




98
SkyscrapAR - Cumulative Temporal Snapshot

    Accumulated Code Churn
    Animated transitions




                                   ΔLOC


                                          Vn
                            Vn-1




99
SkyscrapAR - Augmented Reality




             (a)                           (b)                        (c)
      (a) the camera captures a scene containing a marker;
      (b) the image is transformed to black and white, the marker is detected
      and its local coordinate system is computed;
      (c) the 3D model is aligned with the coordinate axes.


100                                                                 100
Demo

      SkyscrapAR




101
Outline
     Introduction
     Information and Software Visualization
     Software Evolution Visualization (SEV)
     A Critical View of the Area
     SEV@UFBA
     Conclusion




102
Summing up

     As software evolution comprehension is complex, there is
      a need for multi-metrics, multi-perspectives, multi-data
      SEV environments to address the many existing
      engineering needs associated with software evolution.




103
Summarizing the mapping results

  The actual adoption of SEV in industrial environments
is very low
     There is very little evaluation of the proposed
      approaches
     Very few with multi-strategies




104
Looking ahead

     We need to build good SEV Models to
         guide researchers in proposing new SEV approaches
             both from the SE and the InfoVis perspectives
         guide developers in building SEV tools
         guide system analysts in using such tools
         guide experimentalists in evaluating such tools




105
SoftVis group – http://softvis.dcc.ufba.br




106
Software Design and Evolution Group
http://aside.dcc.ufba.br




107
Software Evolution Visualization
              Status, Challenges, and Possible Research Directions

                         Prof. Manoel Mendonça




      http://fpc.dcc.ufba.br                             http://les.dcc.ufba.br
108   +55 (71) 3283-6311       manoel.mendonca@ufba.br

Weitere ähnliche Inhalte

Andere mochten auch

Software evolution -- Good practices
Software evolution -- Good practicesSoftware evolution -- Good practices
Software evolution -- Good practicesNicolas Anquetil
 
Software Evolution Introduction (EVO 2008)
Software Evolution Introduction (EVO 2008)Software Evolution Introduction (EVO 2008)
Software Evolution Introduction (EVO 2008)Tudor Girba
 
Software Evolution: From Legacy Systems, Service Oriented Architecture to Clo...
Software Evolution: From Legacy Systems, Service Oriented Architecture to Clo...Software Evolution: From Legacy Systems, Service Oriented Architecture to Clo...
Software Evolution: From Legacy Systems, Service Oriented Architecture to Clo...PET Computação
 
Unified Modeling Language (UML)
Unified Modeling Language (UML)Unified Modeling Language (UML)
Unified Modeling Language (UML)ppd1961
 
Object Modeling with UML: Behavioral Modeling
Object Modeling with UML: Behavioral ModelingObject Modeling with UML: Behavioral Modeling
Object Modeling with UML: Behavioral Modelingelliando dias
 
Software evolution evangelisation
Software evolution evangelisationSoftware evolution evangelisation
Software evolution evangelisationNicolas Anquetil
 
10 software maintenance
10 software maintenance10 software maintenance
10 software maintenanceakiara
 
Information systems development methodologies (autosaved)
Information systems development methodologies (autosaved)Information systems development methodologies (autosaved)
Information systems development methodologies (autosaved)Vaska Shefteroska
 
Programming in UML: An Introduction to fUML and Alf
Programming in UML: An Introduction to fUML and AlfProgramming in UML: An Introduction to fUML and Alf
Programming in UML: An Introduction to fUML and AlfEd Seidewitz
 
System Development Methodologies
System Development MethodologiesSystem Development Methodologies
System Development MethodologiesDevon Ravihansa
 
UCS Impact of Innovation
UCS Impact of InnovationUCS Impact of Innovation
UCS Impact of InnovationMeredithSabye
 

Andere mochten auch (18)

Software evolution -- Good practices
Software evolution -- Good practicesSoftware evolution -- Good practices
Software evolution -- Good practices
 
Software Evolution Introduction (EVO 2008)
Software Evolution Introduction (EVO 2008)Software Evolution Introduction (EVO 2008)
Software Evolution Introduction (EVO 2008)
 
Software Evolution: From Legacy Systems, Service Oriented Architecture to Clo...
Software Evolution: From Legacy Systems, Service Oriented Architecture to Clo...Software Evolution: From Legacy Systems, Service Oriented Architecture to Clo...
Software Evolution: From Legacy Systems, Service Oriented Architecture to Clo...
 
4 (uml basic)
4 (uml basic)4 (uml basic)
4 (uml basic)
 
Ch21
Ch21Ch21
Ch21
 
Unified Modeling Language (UML)
Unified Modeling Language (UML)Unified Modeling Language (UML)
Unified Modeling Language (UML)
 
Object Modeling with UML: Behavioral Modeling
Object Modeling with UML: Behavioral ModelingObject Modeling with UML: Behavioral Modeling
Object Modeling with UML: Behavioral Modeling
 
Software evolution evangelisation
Software evolution evangelisationSoftware evolution evangelisation
Software evolution evangelisation
 
10 software maintenance
10 software maintenance10 software maintenance
10 software maintenance
 
DISE - OOAD Using UML
DISE - OOAD Using UMLDISE - OOAD Using UML
DISE - OOAD Using UML
 
Software maintenance
Software maintenanceSoftware maintenance
Software maintenance
 
Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
 
Software Maintenance
Software MaintenanceSoftware Maintenance
Software Maintenance
 
Information systems development methodologies (autosaved)
Information systems development methodologies (autosaved)Information systems development methodologies (autosaved)
Information systems development methodologies (autosaved)
 
Programming in UML: An Introduction to fUML and Alf
Programming in UML: An Introduction to fUML and AlfProgramming in UML: An Introduction to fUML and Alf
Programming in UML: An Introduction to fUML and Alf
 
System Development Methodologies
System Development MethodologiesSystem Development Methodologies
System Development Methodologies
 
UCS Impact of Innovation
UCS Impact of InnovationUCS Impact of Innovation
UCS Impact of Innovation
 
IAS 17 Leases
IAS 17 LeasesIAS 17 Leases
IAS 17 Leases
 

Ähnlich wie Software Evolution Visualization

What your IDE could do once you understand your code
What your IDE could do once you understand your codeWhat your IDE could do once you understand your code
What your IDE could do once you understand your codeArie van Deursen
 
DSDT meetup July 2021
DSDT meetup July 2021DSDT meetup July 2021
DSDT meetup July 2021DSDT_MTL
 
Mapping the Evolution of SOLIDWORKS and Automation
Mapping the Evolution of SOLIDWORKS and Automation Mapping the Evolution of SOLIDWORKS and Automation
Mapping the Evolution of SOLIDWORKS and Automation Engineering Technique
 
A Presentation on Database modelling tools.pptx
A Presentation on Database modelling tools.pptxA Presentation on Database modelling tools.pptx
A Presentation on Database modelling tools.pptxrncamp606
 
Backbone And Marionette : Take Over The World
Backbone And Marionette : Take Over The WorldBackbone And Marionette : Take Over The World
Backbone And Marionette : Take Over The Worldharshit040591
 
MSR 2022 Foundational Contribution Award Talk: Software Analytics: Reflection...
MSR 2022 Foundational Contribution Award Talk: Software Analytics: Reflection...MSR 2022 Foundational Contribution Award Talk: Software Analytics: Reflection...
MSR 2022 Foundational Contribution Award Talk: Software Analytics: Reflection...Tao Xie
 
Sketches and Diagrams in Practice (SE'15)
Sketches and Diagrams in Practice (SE'15)Sketches and Diagrams in Practice (SE'15)
Sketches and Diagrams in Practice (SE'15)Sebastian Baltes
 
JSFoo Backbone Updated
JSFoo Backbone UpdatedJSFoo Backbone Updated
JSFoo Backbone UpdatedHarshit Jain
 
IRJET - Augmented Reality: Social Profile Detection by Face Recognition
IRJET - Augmented Reality: Social Profile Detection by Face RecognitionIRJET - Augmented Reality: Social Profile Detection by Face Recognition
IRJET - Augmented Reality: Social Profile Detection by Face RecognitionIRJET Journal
 
Modelling the User Interface
Modelling the User InterfaceModelling the User Interface
Modelling the User InterfacePedro J. Molina
 
An illustrated guide to microservices (ploneconf 10 21-2016)
An illustrated guide to microservices (ploneconf 10 21-2016)An illustrated guide to microservices (ploneconf 10 21-2016)
An illustrated guide to microservices (ploneconf 10 21-2016)Ambassador Labs
 
Minor Project Synopsis on Data Structure Visualizer
Minor Project Synopsis on Data Structure VisualizerMinor Project Synopsis on Data Structure Visualizer
Minor Project Synopsis on Data Structure VisualizerRonitShrivastava057
 
AutoDesk Inventor Professional-2018
AutoDesk Inventor Professional-2018AutoDesk Inventor Professional-2018
AutoDesk Inventor Professional-2018Umair Ahmad
 
The Medium of Visualization for Software Comprehension
The Medium of Visualization for Software ComprehensionThe Medium of Visualization for Software Comprehension
The Medium of Visualization for Software ComprehensionLeonel Merino
 

Ähnlich wie Software Evolution Visualization (20)

What your IDE could do once you understand your code
What your IDE could do once you understand your codeWhat your IDE could do once you understand your code
What your IDE could do once you understand your code
 
Ch - 01 [Eng-11] Chapter -1
Ch - 01 [Eng-11] Chapter -1Ch - 01 [Eng-11] Chapter -1
Ch - 01 [Eng-11] Chapter -1
 
2020-04-29 SIT Insights in Technology - Bertrand Meyer
2020-04-29 SIT Insights in Technology - Bertrand Meyer2020-04-29 SIT Insights in Technology - Bertrand Meyer
2020-04-29 SIT Insights in Technology - Bertrand Meyer
 
DSDT meetup July 2021
DSDT meetup July 2021DSDT meetup July 2021
DSDT meetup July 2021
 
Mapping the Evolution of SOLIDWORKS and Automation
Mapping the Evolution of SOLIDWORKS and Automation Mapping the Evolution of SOLIDWORKS and Automation
Mapping the Evolution of SOLIDWORKS and Automation
 
A Presentation on Database modelling tools.pptx
A Presentation on Database modelling tools.pptxA Presentation on Database modelling tools.pptx
A Presentation on Database modelling tools.pptx
 
Backbone And Marionette : Take Over The World
Backbone And Marionette : Take Over The WorldBackbone And Marionette : Take Over The World
Backbone And Marionette : Take Over The World
 
VIZLAND Research Overview
VIZLAND Research OverviewVIZLAND Research Overview
VIZLAND Research Overview
 
MSR 2022 Foundational Contribution Award Talk: Software Analytics: Reflection...
MSR 2022 Foundational Contribution Award Talk: Software Analytics: Reflection...MSR 2022 Foundational Contribution Award Talk: Software Analytics: Reflection...
MSR 2022 Foundational Contribution Award Talk: Software Analytics: Reflection...
 
Sketches and Diagrams in Practice (SE'15)
Sketches and Diagrams in Practice (SE'15)Sketches and Diagrams in Practice (SE'15)
Sketches and Diagrams in Practice (SE'15)
 
JSFoo Backbone Updated
JSFoo Backbone UpdatedJSFoo Backbone Updated
JSFoo Backbone Updated
 
IRJET - Augmented Reality: Social Profile Detection by Face Recognition
IRJET - Augmented Reality: Social Profile Detection by Face RecognitionIRJET - Augmented Reality: Social Profile Detection by Face Recognition
IRJET - Augmented Reality: Social Profile Detection by Face Recognition
 
Material design
Material designMaterial design
Material design
 
Modelling the User Interface
Modelling the User InterfaceModelling the User Interface
Modelling the User Interface
 
Digital design
Digital designDigital design
Digital design
 
An illustrated guide to microservices (ploneconf 10 21-2016)
An illustrated guide to microservices (ploneconf 10 21-2016)An illustrated guide to microservices (ploneconf 10 21-2016)
An illustrated guide to microservices (ploneconf 10 21-2016)
 
Minor Project Synopsis on Data Structure Visualizer
Minor Project Synopsis on Data Structure VisualizerMinor Project Synopsis on Data Structure Visualizer
Minor Project Synopsis on Data Structure Visualizer
 
AutoDesk Inventor Professional-2018
AutoDesk Inventor Professional-2018AutoDesk Inventor Professional-2018
AutoDesk Inventor Professional-2018
 
The Medium of Visualization for Software Comprehension
The Medium of Visualization for Software ComprehensionThe Medium of Visualization for Software Comprehension
The Medium of Visualization for Software Comprehension
 
Solidworks software
Solidworks softwareSolidworks software
Solidworks software
 

Software Evolution Visualization

  • 1. Software Evolution Visualization Status, Challenges, and Possible Research Directions Prof. Manoel Mendonça http://fpc.dcc.ufba.br http://les.dcc.ufba.br +55 (71) 3283-6311 manoel.mendonca@ufba.br
  • 2. Outline  Introduction  Information and Software Visualization  Software Evolution Visualization (SEV)  A Critical View of the Area  SEV@UFBA  Conclusion 2
  • 3. Outline  Introduction  Information and Software Visualization  Software Evolution Visualization (SEV)  A Critical View of the Area  SEV@UFBA  Conclusion 3
  • 4. Software Visualization (SoftVis)  It is the use of visual paradigms (visual resources – animation and graphical design) to facilitate the comprehension and effective use of software.  Price, Baecker and Small, “An Introduction to Software Visualization” 4
  • 5. Software is Abstract  Software is inherently:  “invisible”  intangible  has no physical format 5
  • 6. Representing Software  Software can be represented in many ways  The most common way is the textual format, especially its source code 6
  • 7. Source Code at a Low Level of Abstraction Address Label Source Code Object Code .begin .org 2048 a_start .equ 3000 2048 ld length,% 2064 be done 00000010 10000000 00000000 00000110 2068 addcc %r1,-4,%r1 10000010 10000000 01111111 11111100 2072 addcc %r1,%r2,%r4 10001000 10000000 01000000 00000010 2076 ld %r4,%r5 11001010 00000001 00000000 00000000 2080 ba loop 00010000 10111111 11111111 11111011 2084 addcc %r3,%r5,%r3 10000110 10000000 11000000 00000101 2088 done: jmpl %r15+4,%r0 10000001 11000011 11100000 00000100 2092 length: 20 00000000 00000000 00000000 00010100 2096 address: a_start 00000000 00000000 00001011 10111000 .org a_start 3000 a: Murdocca, Miles J.; Vincent P. Heuring (2000). Principles of Computer Architecture. Prentice-Hall. ISBN 0-201-43664-7. 7
  • 8. Representing Software  Can visualization techniques be used to represent software?  Yes! It is already being used in some way or another since the 70’s 8
  • 9. Visualization in a Modern IDEs pretty printing hierarchical structure iconographic representation syntax based coloring 9
  • 10. Is this Enough?  Not Quite  Size and Complexity have sky rocked  We lack mechanisms to visualize and explore software in the large  Information Visualization techniques and paradigms can be used to deal with this issue 10
  • 11. Outline  Introduction  Information and Software Visualization  Software Evolution Visualization (SEV)  A Critical View of the Area  SEV@UFBA  Conclusion 14
  • 13. Information Visualization (InfoVis) “InfoVis is the study of (interactive) visual representations of abstract data to reinforce human cognition.” . 16
  • 14. Visualization is about Perception  Taking the input from our senses (in this case Vision) and turning it into something that has meaning for us  We “see” (perceive) with our brains! 19
  • 15. A Data Pattern in Tabular Format Y 0 0.259 0.5 0.707 0.866 0.966 1 0.966 0.866 0.707 X 12 13 14 15 16 17 18 19 20 21 Y 0.5 0.259 0 -0.259 -0.5 -0.707 -0.866 -0.966 -1 -0.966 X 22 23 24 25 26 27 28 29 30 31 Y -0.866 -0.707 -0.5 -0.259 0 .0259 0.5 0.707 0.866 0.966 X 32 33 34 35 36 37 38 39 40 41 Requires Perception and Reasoning 20
  • 16. Same Pattern in Visual Format 1 0,5 0 -0,5 -1 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 Requires only Perception 21
  • 17. InfoVis requires Interaction  Computer-based InfoVis requires human computer interaction.  There is no InfoVis without good interaction mechanisms. 26
  • 18. InfoVis Interaction Mantra Gain a global view, zoom and filter, and then detail on demand SHNEIDERMAN, B. The eyes have it: A task by data type taxonomy for information visualization. In VL’96: Proceedings of the 1996 IEEE Symposium on Visual Languages (1996), IEEE CS Press, pp. 336–343. 27
  • 19. Revisiting our SoftVis Definition SoftVis is the effective mapping of software entities and its attributes into graphical structures that are easy explore and understand by software engineers … to facilitate the comprehension and effective use of software. 28
  • 20. Effective Mapping (1)  Good visual metaphors  graphical structure matches the nature of the information  use perception efficient representations and visual attributes  Good views (instantiations of metaphors)  intuitive mapping of real attributes into visual attributes 29
  • 21. Effective Mapping (2)  Due to its complexity software cannot be described by just one view Multiple views are need to assemble an analysis perspective  These views must be consistent and integrated among themselves and with the rest of the IDE 30
  • 22. Effective Mapping in Modern IDEs Multiple views assemble an analysis perspective Multiple visual Metaphors Syntax-based coloring Visual attribute => Real attribute All is integrated ! 31
  • 23. Easy to Explore and Undertsnad  The goal is to facilitate the comprehension of the software (the graphics is a means to an end).  We need good interaction mechanisms  Easy to use widgets and interaction controls  We need a comprehensive data exploration functionality to support Shneiderman’s mantra 32
  • 24. There is a lot to be done here 33
  • 25. Easy to Explore and Undertsnad  Good interaction mechanisms  Easy to use widgets and interaction controls Comprehensive data exploration functionality to support Shneiderman’s mantra  Global views, conceptual zoom, attribute based brushing and filtering, dynamic mapping between real and visual attributes, navigation and consistent marking, and details on demand.  Integration of the views with these functionalities. 34
  • 26. SourceMiner (www.sourceminer.org) 35
  • 27. (A) (E) (C) (D) (B) 36
  • 28. There is much still to be visualized in the large 37
  • 29. SoftVis Areas  Static Software Visualization (no need to run the code)  Static representations of control and data flows  Visualization of modules (structures and dependencies)  Static aspects of architectures  Dynamic Software Visualization (running the code)  Animated Algorithms  Test coverage and debugging  Memory usage and code traces  Dynamic aspects of software architectures 38
  • 30. SoftVis Areas  Visualizing data about the software  Contributions, authorship and usage of modules and components  Bug and issues information  Discussions, opinions, and people roles  Software Evolution Visualization  Changes in structure  Dependency evolution  Change in metrics  Evolution of data about the software (all of the above) 39
  • 31. SoftVis Areas  Visualizing data about the software  Contributions, authorship and usage of modules and components  Bug and issues information  Discussions, opinions, and people roles  Software Evolution Visualization  Changes in structure  Dependency evolution  Change in metrics  Evolution of data about the software (all of the above) 40
  • 32. Outline  Introduction  Information and Software Visualization  Software Evolution Visualization (SEV)  A Critical View of the Area  SEV@UFBA  Conclusion 41
  • 33. Software systems must be continually adapted or they become progressively less satisfactory (LEHMAN, 1978)(LEHMAN, 1980) 42
  • 34. Evolution (Lehman, 78) Complexity Comprehension (Jay et al., 2009) Costs (Erlikh, 2000) 43
  • 35. For some systems, the cost devoted to evolution and maintenance now accounts for more than 90% of total software costs (ERLIKH, 2000) Software maintainers spend approximately 50% of their time in the process of understanding the code (FJELDSTA e HAMLEN, 1983) 44
  • 36. So, what can we do to facilitate software comprehension “in the large”? 45
  • 37. Software evolution visualization Software evolution analysis Software visualization requires can summarize the data lots of data in meaningful contexts 46
  • 38. Software evolution visualization  SEV is around since the 90’s  There is a sizeable body of work in the literature 47
  • 39. SEV of What?  Behavior  Mail List  Code Clones  Metrics  Data structures  Requirements  Defects  Software Architecture  Developer Activities  Source code changes  Developer Dependency  Comment changes  Exception handling  Source code dependency  Ecosystem change  System dependency  Features  Topics 48
  • 40. SEV for What?  Change Comprehension  Quality improvement  Change Control Enhancement  Process Improvement  Change Prediction  Powerful and scalable  Contribution Analysis visualization  Defect Classification and  Re-documentation Analysis  Reverse engineering  Development communication  Software reuse  Identification of anomalies  Dependency among projects 49
  • 41. Strategies of Analysis Defines the strategy for the visual presentation of software artifacts.  Temporal Overview  Temporal Snapshot  Temporal Cumulative  Differential Relative  Differential Absolute 50
  • 42. A visualization for software project Example 1 awareness and evolution, VISSOFT 2007 RM Ripley, A Sarma, A van der Hoek of What: Developer activity over the code for What: contribution analysis and change comprehension 51
  • 43. Example 2 of What: logical coupling between modules Animated visualization of software history using evolution storyboards, WCRE 2006 D Beyer, AE Hassan for What: change prediction, reverse engineering, identification of anomalies 52
  • 44. Example 3 Exploring software evolution using spectrographs, WCRE 2004 of What: files by version J Wu, RC Holt, AE Hassan by recent changes for What: change prediction (and contribution analysis) 53
  • 45. Temporal Strategies  Temporal Overview  Temporal Snapshot  Temporal Cumulative 54
  • 46. Outline  Introduction  Information and Software Visualization  Software Evolution Visualization (SEV)  A Critical View of the Area  SEV@UFBA  Conclusion 55
  • 47. Mapping Study Search String ("software" OR "system") AND ("visualization" OR "visual" OR "Visualisation") AND ("evolution" OR "evolving") 56
  • 48. SEV Data Sources Type Data sources Source Code CVS SubVersion GIT Management Bug Tracking Mantis BugZilla Trac System Models Requirements Features Other Types mapping Trace Forums mapping 57
  • 49. Most used data sources 60 49 50 41.78% use more than one data 40 34 source 29 30 20 10 10 5 3 2 2 2 1 1 1 1 1 1 1 1 1 1 0 58
  • 50. Most used metrics 78.08% of the authors use more 60 56 than one metric 50 40 36 30 28 22 20 20 15 10 5 0 Coupling (any) # commit # authors Complexity Logical LOC Cohesion Coupling 59
  • 51. Most used perspectives 54,79% of the studies use more than one perspective 60
  • 52. Most used strategies Only 23.97% use combination of strategies 61
  • 54. Papers per type of validation 50 19.18% 72.60% 0.68% 7.53% 45 44 Feasibility study 40 36 35 30 28 25 20 15 12 10 10 4 4 4 5 2 1 1 0 63
  • 55. Outline  Introduction  Information and Software Visualization  Software Evolution Visualization (SEV)  A Critical View of the Area  SEV@UFBA  Conclusion 64
  • 56. Goals of our SoftVis Group  To help developers to build successful InfoVis tools  To help system analysts to use InfoVis tools to achieve their maintenance goals  To help researchers to evaluate InfoVis tools from a software engineering point of view 65
  • 58. 67
  • 59. EXAMPLE 1 Differential Strategies with SourceMiner Evolution 68
  • 60. Differential Strategies  Differencial Absolute  Differencial Relative 69
  • 61. Using Colors to Represent Evolution Attributes  From one version to the other, elements that  Appeared are painted in blue  Disappeared are painted in gray  No change are painted in white  Elements that decreased or increase are painted in a colour scale that ranges from bright green (decreased a lot) to bright red (increased a lot) 70
  • 62. Adapting SourceMiner’s Views and Perspectivas 71
  • 63. Differential Strategies  Differencial Absolute  Differencial Relative 72
  • 64. Implementing and evaluating the Relative Differential Analysis  Goal: Identify software erosion  Tasks (questions):  What are the hot spots of the source code?  What are the God Classes, long methods? Etc.  Experimental object:  8 versions of MobileMedia (open source)  Subjects: 14 Grad Students  NOVAIS, R. L., CARNEIRO, G. F., SIMOES JUNIOR, P. R. M., MENDONÇA NETO, M. G. On the Use of Software Visualization to Analyze Software Evolution - An Interactive Differential Approach. In ICEIS 2011. 73
  • 65. 74
  • 66. Demo SourceMiner Evolution 75
  • 67. Differential Strategies  Differencial Absolute  Differencial Relative 76
  • 68. Implementing and evaluating the Absolute Differential Analysis  Goal: Understand how features are evolving  Tasks (questions):  Tasks related to feature evolution, feature tangling, and feature dependency analysis. Etc.  Experimental object:  5 versions of an oil company software in Brazil  Subjects: 20 analysts from two cities  NOVAIS, R., NUNES, C., LIMA, C., CIRILO, E., DANTAS, F., GARCIA, A., MENDONÇA, M. On the Proactive and Interactive Visualization for Feature Evolution Comprehension: An Industrial Investigation. In ICSE’12. 79
  • 70. Colour Represent the Evolution of Concerns 81
  • 71. EXAMPLE 2 Cumulative Temporal Evolution & Augmented Reality with SkyscrapAR 84
  • 72. 3D Software Visualization 3D representations for software visualization, SoftVis’03 A Marcus, L Feng, JI Maletic “The inclusion of aesthetically appealing elements such as 3D graphics and animation not only increases the design’s appeal, intuitiveness, and memorability of a visualization but also eases perception of the human visual system” (Teyseyre, 2009) 85
  • 73. SEV in 3D – CodeCity’s Example Building height: number of methods Building base (width and length): number of attributes Program comprehension through software habitability R Wettel, M Lanza 86
  • 74. Problems with 3D Visualization  Oclusion X Interaction  Navigation in a 3D world with a 2D mouse 87
  • 75. Augmented Reality: A Cheap Solution 88
  • 77. SkyscrapAR  Code-city metaphor  Using a temporal cumulative strategy to analyze code evolution  In augmented reality 90
  • 78. SkyscrapAR Building Metaphor (2) (3) (1) (1) Green area – class max LOC in history (2) Building base – class LOC at current version (3) Building height – class code churn in history 91
  • 79. SkyscrapAR Code-city Metaphor 92
  • 80. 93 93
  • 81. 94 94
  • 82. 95 95
  • 83. 96 96
  • 84. 97 97
  • 86. SkyscrapAR - Cumulative Temporal Snapshot  Accumulated Code Churn  Animated transitions ΔLOC Vn Vn-1 99
  • 87. SkyscrapAR - Augmented Reality (a) (b) (c) (a) the camera captures a scene containing a marker; (b) the image is transformed to black and white, the marker is detected and its local coordinate system is computed; (c) the 3D model is aligned with the coordinate axes. 100 100
  • 88. Demo SkyscrapAR 101
  • 89. Outline  Introduction  Information and Software Visualization  Software Evolution Visualization (SEV)  A Critical View of the Area  SEV@UFBA  Conclusion 102
  • 90. Summing up  As software evolution comprehension is complex, there is a need for multi-metrics, multi-perspectives, multi-data SEV environments to address the many existing engineering needs associated with software evolution. 103
  • 91. Summarizing the mapping results  The actual adoption of SEV in industrial environments is very low  There is very little evaluation of the proposed approaches  Very few with multi-strategies 104
  • 92. Looking ahead  We need to build good SEV Models to  guide researchers in proposing new SEV approaches  both from the SE and the InfoVis perspectives  guide developers in building SEV tools  guide system analysts in using such tools  guide experimentalists in evaluating such tools 105
  • 93. SoftVis group – http://softvis.dcc.ufba.br 106
  • 94. Software Design and Evolution Group http://aside.dcc.ufba.br 107
  • 95. Software Evolution Visualization Status, Challenges, and Possible Research Directions Prof. Manoel Mendonça http://fpc.dcc.ufba.br http://les.dcc.ufba.br 108 +55 (71) 3283-6311 manoel.mendonca@ufba.br