Software Evolution Visualization

1,454 views

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,454
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Software Evolution Visualization

  1. 1. Software Evolution Visualization Status, Challenges, and Possible Research Directions Prof. Manoel Mendonçahttp://fpc.dcc.ufba.br http://les.dcc.ufba.br+55 (71) 3283-6311 manoel.mendonca@ufba.br
  2. 2. Outline Introduction Information and Software Visualization Software Evolution Visualization (SEV) A Critical View of the Area SEV@UFBA Conclusion2
  3. 3. Outline Introduction Information and Software Visualization Software Evolution Visualization (SEV) A Critical View of the Area SEV@UFBA Conclusion3
  4. 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. 5. Software is Abstract Software is inherently:  “invisible”  intangible  has no physical format 5
  6. 6. Representing Software Software can be represented in many ways  The most common way is the textual format, especially its source code 6
  7. 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. 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. 9. Visualization in a Modern IDEs pretty printing hierarchical structure iconographic representation syntax based coloring9
  10. 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. 11. Outline Introduction Information and Software Visualization Software Evolution Visualization (SEV) A Critical View of the Area SEV@UFBA Conclusion14
  12. 12. SoftVis is InfoVis15
  13. 13. Information Visualization (InfoVis) “InfoVis is the study of (interactive) visual representations of abstract data to reinforce human cognition.” .16
  14. 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. 15. A Data Pattern in Tabular FormatY 0 0.259 0.5 0.707 0.866 0.966 1 0.966 0.866 0.707X 12 13 14 15 16 17 18 19 20 21Y 0.5 0.259 0 -0.259 -0.5 -0.707 -0.866 -0.966 -1 -0.966X 22 23 24 25 26 27 28 29 30 31Y -0.866 -0.707 -0.5 -0.259 0 .0259 0.5 0.707 0.866 0.966X 32 33 34 35 36 37 38 39 40 41 Requires Perception and Reasoning20
  16. 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 Perception21
  17. 17. InfoVis requires Interaction  Computer-based InfoVis requires human computer interaction.  There is no InfoVis without good interaction mechanisms.26
  18. 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. 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. 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 attributes29
  21. 21. Effective Mapping (2) Due to its complexity software cannot be described byjust one viewMultiple views are need to assemble an analysisperspective  These views must be consistent and integrated among themselves and with the rest of the IDE30
  22. 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. 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 functionalityto support Shneiderman’s mantra32
  24. 24. There is a lot to be done here33
  25. 25. Easy to Explore and Undertsnad Good interaction mechanisms  Easy to use widgets and interaction controlsComprehensive data exploration functionality to supportShneiderman’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. 26. SourceMiner (www.sourceminer.org)35
  27. 27. (A) (E) (C) (D) (B)36
  28. 28. There is much still to be visualized in the large37
  29. 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 architectures38
  30. 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. 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. 32. Outline Introduction Information and Software Visualization Software Evolution Visualization (SEV) A Critical View of the Area SEV@UFBA Conclusion41
  33. 33. Software systems must be continually adapted or they becomeprogressively less satisfactory (LEHMAN, 1978)(LEHMAN, 1980) 42
  34. 34. Evolution (Lehman, 78)Complexity Comprehension (Jay et al., 2009) Costs (Erlikh, 2000) 43
  35. 35. For some systems, the cost devoted to evolution andmaintenance now accounts for more than 90% of totalsoftware costs (ERLIKH, 2000) Software maintainers spend approximately 50% of their time in the process of understanding the code (FJELDSTA e HAMLEN, 1983) 44
  36. 36. So, what can we do to facilitate softwarecomprehension “in the large”?45
  37. 37. Software evolution visualizationSoftware evolution analysis Software visualization requires can summarize the data lots of data in meaningful contexts 46
  38. 38. Software evolution visualization SEV is around since the 90’s There is a sizeable body of work in the literature 47
  39. 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  Topics48
  40. 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 projects49
  41. 41. Strategies of Analysis Defines the strategy for the visual presentation of software artifacts.  Temporal Overview  Temporal Snapshot  Temporal Cumulative  Differential Relative  Differential Absolute50
  42. 42. A visualization for software projectExample 1 awareness and evolution, VISSOFT 2007 RM Ripley, A Sarma, A van der Hoekof What: Developer activity over the codefor What: contribution analysis and change comprehension51
  43. 43. Example 2 of What: logical coupling between modules Animated visualization of software history using evolution storyboards, WCRE 2006 D Beyer, AE Hassanfor What: change prediction, reverse engineering, identification ofanomalies52
  44. 44. Example 3 Exploring software evolution using spectrographs, WCRE 2004of What: files by version J Wu, RC Holt, AE Hassanby recent changesfor What: change prediction (and contribution analysis)53
  45. 45. Temporal Strategies Temporal Overview Temporal Snapshot Temporal Cumulative54
  46. 46. Outline Introduction Information and Software Visualization Software Evolution Visualization (SEV) A Critical View of the Area SEV@UFBA Conclusion55
  47. 47. Mapping Study Search String ("software" OR "system") AND ("visualization" OR "visual" OR "Visualisation") AND ("evolution" OR "evolving")56
  48. 48. SEV Data Sources Type Data sourcesSource Code CVS SubVersion GITManagementBug Tracking Mantis BugZilla Trac System Models Requirements FeaturesOther Types mapping Trace Forums mapping57
  49. 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 058
  50. 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 Coupling59
  51. 51. Most used perspectives 54,79% of the studies use more than one perspective60
  52. 52. Most used strategies Only 23.97% use combination of strategies61
  53. 53. Goals62
  54. 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 063
  55. 55. Outline Introduction Information and Software Visualization Software Evolution Visualization (SEV) A Critical View of the Area SEV@UFBA Conclusion64
  56. 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 view65
  57. 57. Our Approach66
  58. 58. 67
  59. 59. EXAMPLE 1 Differential Strategies with SourceMiner Evolution68
  60. 60. Differential Strategies  Differencial Absolute  Differencial Relative69
  61. 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 acolour scale that ranges from bright green (decreased a lot)to bright red (increased a lot) 70
  62. 62. Adapting SourceMiner’s Views and Perspectivas71
  63. 63. Differential Strategies  Differencial Absolute  Differencial Relative72
  64. 64. Implementing and evaluating the RelativeDifferential 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. 65. 74
  66. 66. Demo SourceMiner Evolution75
  67. 67. Differential Strategies  Differencial Absolute  Differencial Relative76
  68. 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
  69. 69. Colour Represent Concerns80
  70. 70. Colour Represent the Evolution of Concerns81
  71. 71. EXAMPLE 2 Cumulative Temporal Evolution & Augmented Reality with SkyscrapAR84
  72. 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. 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 Lanza86
  74. 74. Problems with 3D Visualization  Oclusion X Interaction  Navigation in a 3D world with a 2D mouse87
  75. 75. Augmented Reality: A Cheap Solution88
  76. 76. How it Works89
  77. 77. SkyscrapAR Code-city metaphor Using a temporal cumulative strategy to analyze code evolution In augmented reality90
  78. 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 history91
  79. 79. SkyscrapAR Code-city Metaphor92
  80. 80. 93 93
  81. 81. 94 94
  82. 82. 95 95
  83. 83. 96 96
  84. 84. 97 97
  85. 85. SkyscrapAR - Other info98
  86. 86. SkyscrapAR - Cumulative Temporal Snapshot Accumulated Code Churn Animated transitions ΔLOC Vn Vn-199
  87. 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. 88. Demo SkyscrapAR101
  89. 89. Outline Introduction Information and Software Visualization Software Evolution Visualization (SEV) A Critical View of the Area SEV@UFBA Conclusion102
  90. 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. 91. Summarizing the mapping results The actual adoption of SEV in industrial environmentsis very low There is very little evaluation of the proposed approaches Very few with multi-strategies104
  92. 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 tools105
  93. 93. SoftVis group – http://softvis.dcc.ufba.br106
  94. 94. Software Design and Evolution Grouphttp://aside.dcc.ufba.br107
  95. 95. Software Evolution Visualization Status, Challenges, and Possible Research Directions Prof. Manoel Mendonça http://fpc.dcc.ufba.br http://les.dcc.ufba.br108 +55 (71) 3283-6311 manoel.mendonca@ufba.br

×