Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
Prochain SlideShare
Measuring Navigation Efficiency in the IDE
Suivant
Télécharger pour lire hors ligne et voir en mode plein écran

0

Partager

Télécharger pour lire hors ligne

Visualizing Developer Interactions [VISSOFT2014]

Télécharger pour lire hors ligne

Integrated Development Environments (IDEs) have become the de facto standard vehicle to develop software systems. The user interface (UI) of an IDE offers a staggering amount of facilities to manipulate source code, such as inspectors, debuggers, recommenders, alternative viewers, etc.
It is unclear how developers use the UI of an IDE and whether such UIs actually give appropriate support to the developers.
We present a visual approach to understand and characterize development sessions from the UI perspective. The tool supporting our approach mines and processes the finest-grained UI-level events making up development sessions and presents them visually. We have collected, visualized, and analyzed hundreds of development sessions and report on our findings.

Livres associés

Gratuit avec un essai de 30 jours de Scribd

Tout voir
  • Soyez le premier à aimer ceci

Visualizing Developer Interactions [VISSOFT2014]

  1. 1. Title Sub-title Visualizing Developer Interactions Roberto Minelli, Andrea Mocci, Michele Lanza and Lorenzo Baracchi REVEAL @ Faculty of Informatics - University of Lugano, Switzerland @robertominelli
  2. 2. IDEs
  3. 3. IDEs Eclipse Idea NetBeansXCode Visual Studio
  4. 4. IDEs Collections of tools and facilities to ease the manipulation of source code. Eclipse Idea NetBeansXCode Visual Studio
  5. 5. Eclipse
  6. 6. How do developers use the UI of an IDE ?
  7. 7. Interaction data IDE
  8. 8. Navigate Browse classes or methods Search code artifacts IDE
  9. 9. Navigate Browse classes or methods Search code artifacts Edit Add/edit classes or methods IDE
  10. 10. Navigate Browse classes or methods Search code artifacts Edit Add/edit classes or methods Inspect Debug a problem Observe the state of objects IDE
  11. 11. Navigate Browse classes or methods Search code artifacts Edit Add/edit classes or methods Inspect Debug a problem Observe the state of objects UI Open/close windows Resize/move windows IDE
  12. 12. Interaction data IDE
  13. 13. Interaction data IDE Visualization +
  14. 14. DFlow A non-intrusive interaction profiler for the Pharo IDE IDEInteraction data Step 1
  15. 15. DFlow A non-intrusive interaction profiler for the Pharo IDE IDEInteraction data Step 1
  16. 16. DFlow A non-intrusive interaction profiler for the Pharo IDE IDEInteraction data Record Step 1
  17. 17. DFlow A non-intrusive interaction profiler for the Pharo IDE IDEInteraction data Record Store Step 1
  18. 18. Step 1 # Sessions 177 # Sub-sessions 496 # Developers 7 Avg. Duration 1h 16m 11s # Navigation 94,558 # Inspect 6,635 # Edit 10,083 # Windows 15,695 # UI Events 87,732 DFlow A non-intrusive interaction profiler for the Pharo IDE
  19. 19. Step 2 DFlow A non-intrusive interaction profiler for the Pharo IDE IDEInteraction data
  20. 20. Pre-processing Step 2 DFlow A non-intrusive interaction profiler for the Pharo IDE IDEInteraction data
  21. 21. Pre-processing Step 2 DFlow A non-intrusive interaction profiler for the Pharo IDE IDEInteraction data Detection Idle Time Cleanup Events Estimation Duration
  22. 22. Pre-processing Step 2 DFlow A non-intrusive interaction profiler for the Pharo IDE IDEInteraction data Understanding
  23. 23. Pre-processing Step 2 DFlow A non-intrusive interaction profiler for the Pharo IDE IDEInteraction data Understanding How do developers use the UI of the IDE?
  24. 24. Color Legend UI View Open Activate Minimize / ExpandResize / Move Close Minimized backbone Activity Timeline Navigation Inspection Edit Understanding Vertical Lines Explicit pause (sub-session) Implicit pause (idle) Commit 10:20 20:12 3:00 6:00 18:35 21:00 23:00 45:43 48:00 51:00 54:00 56:33 Session Start Duration of pause between two sub-sessions [d.hh:mm:ss] Explicit pause (sub-sessions) Implicit pause (idle time) Minimization Commit Session End UI View Activity Timeline
  25. 25. Color Legend UI View Open Activate Minimize / ExpandResize / Move Close Minimized backbone Activity Timeline Navigation Inspection Edit Understanding Vertical Lines Explicit pause (sub-session) Implicit pause (idle) Commit 10:20 20:12 3:00 6:00 18:35 21:00 23:00 45:43 48:00 51:00 54:00 56:33 Tracks
  26. 26. Color Legend UI View Open Activate Minimize / ExpandResize / Move Close Minimized backbone Activity Timeline Navigation Inspection Edit Understanding Vertical Lines Explicit pause (sub-session) Implicit pause (idle) Commit 10:20 20:12 3:00 6:00 18:35 21:00 23:00 45:43 48:00 51:00 54:00 56:33 Track 2 (container)
  27. 27. Color Legend UI View Open Activate Minimize / ExpandResize / Move Close Minimized backbone Activity Timeline Navigation Inspection Edit Understanding Vertical Lines Explicit pause (sub-session) Implicit pause (idle) Commit 10:20 20:12 3:00 6:00 18:35 21:00 23:00 45:43 48:00 51:00 54:00 56:33 Track 2 (container) Main
  28. 28. Color Legend UI View Open Activate Minimize / ExpandResize / Move Close Minimized backbone Activity Timeline Navigation Inspection Edit Understanding Vertical Lines Explicit pause (sub-session) Implicit pause (idle) Commit 10:20 20:12 3:00 6:00 18:35 21:00 23:00 45:43 48:00 51:00 54:00 56:33 Track 2 (container) Main Short
  29. 29. Color Legend UI View Open Activate Minimize / ExpandResize / Move Close Minimized backbone Activity Timeline Navigation Inspection Edit Understanding Vertical Lines Explicit pause (sub-session) Implicit pause (idle) Commit 10:20 20:12 3:00 6:00 18:35 21:00 23:00 45:43 48:00 51:00 54:00 56:33 Track 2 (container) Main ShortWindow Interactions Minimized
  30. 30. Color Legend UI View Open Activate Minimize / ExpandResize / Move Close Minimized backbone Activity Timeline Navigation Inspection Edit Understanding Vertical Lines Explicit pause (sub-session) Implicit pause (idle) Commit 10:20 20:12 3:00 6:00 18:35 21:00 23:00 45:43 48:00 51:00 54:00 56:33 Track 2 (container) Main ShortWindow Interactions Edit Minimized
  31. 31. Color Legend UI View Open Activate Minimize / ExpandResize / Move Close Minimized backbone Activity Timeline Navigation Inspection Edit Understanding Vertical Lines Explicit pause (sub-session) Implicit pause (idle) Commit 10:20 20:12 3:00 6:00 18:35 21:00 23:00 45:43 48:00 51:00 54:00 56:33 Development Activities
  32. 32. Telling Development Stories
  33. 33. Home Sweet Home
  34. 34. Home Sweet Home
  35. 35. Home Sweet Home
  36. 36. Curing the Window Plague
  37. 37. Curing the Window Plague “Autumn Leaves: Curing the window plague in IDEs” D. Röthlisberger, O. Nierstrasz, S. Ducasse
  38. 38. Curing the Window Plague
  39. 39. The Inspection Valley
  40. 40. The Inspection Valley
  41. 41. The Inspection Valley
  42. 42. Categorizing Development Sessions
  43. 43. Dominant Tracks A track with a privileged role in the development. i.e., with predominant focus time and concentration of edit events.
  44. 44. Dominant Tracks A track with a privileged role in the development. i.e., with predominant focus time and concentration of edit events. - Single Track - Multi Track - Fragmented Track
  45. 45. Dominant Tracks A track with a privileged role in the development. i.e., with predominant focus time and concentration of edit events. - Single Track - Multi Track - Fragmented Track
  46. 46. Dominant Tracks A track with a privileged role in the development. i.e., with predominant focus time and concentration of edit events. - Single Track - Multi Track - Fragmented Track
  47. 47. Dominant Tracks Track Flow A track with a privileged role in the development. i.e., with predominant focus time and concentration of edit events. Describes the way the developer alternates from different window track - Single Track - Multi Track - Fragmented Track
  48. 48. Dominant Tracks Track Flow A track with a privileged role in the development. i.e., with predominant focus time and concentration of edit events. Describes the way the developer alternates from different window track - Single Track - Multi Track - Fragmented Track - Sequential Flow - Ping-Pong
  49. 49. Dominant Tracks Track Flow A track with a privileged role in the development. i.e., with predominant focus time and concentration of edit events. Describes the way the developer alternates from different window track - Sequential Flow - Ping-Pong - Single Track - Multi Track - Fragmented Track
  50. 50. Dominant Tracks Track Flow NC 7% Fragmented 40% Single-Track 39% Multi-Track 14%
  51. 51. Dominant Tracks Track Flow NC 7% Fragmented 40% Single-Track 39% Multi-Track 14% NC 7% Ping-Pong 16% Sequential 76%
  52. 52. Dominant Tracks Track Flow >50% sessions are Single-Track >65% sessions are Fragmented
  53. 53. Dominant Tracks Track Flow >50% sessions are Single-Track >65% sessions are Fragmented All prefer Sequential flow Has 43% Ping- Pong sessions
  54. 54. Title Sub-title Visualizing Developer Interactions Roberto Minelli, Andrea Mocci, Michele Lanza and Lorenzo Baracchi REVEAL @ Faculty of Informatics - University of Lugano, Switzerland
  55. 55. Title Sub-title Visualizing Developer Interactions Roberto Minelli, Andrea Mocci, Michele Lanza and Lorenzo Baracchi REVEAL @ Faculty of Informatics - University of Lugano, Switzerland DFlow A non-intrusive interaction profiler for the Pharo IDE IDEInteraction data Record Store Step 1
  56. 56. Title Sub-title Visualizing Developer Interactions Roberto Minelli, Andrea Mocci, Michele Lanza and Lorenzo Baracchi REVEAL @ Faculty of Informatics - University of Lugano, Switzerland DFlow A non-intrusive interaction profiler for the Pharo IDE IDEInteraction data Record Store Step 1 Color Legend UI View Open Activate Minimize / ExpandResize / Move Close Minimized backbone Activity Timeline Navigation Inspection Edit Understanding Vertical Lines Explicit pause (sub-session) Implicit pause (idle) Commit 10:20 20:12 3:00 6:00 18:35 21:00 23:00 45:43 48:00 51:00 54:00 56:33 Session Start Duration of pause between two sub-sessions [d.hh:mm:ss] Explicit pause (sub-sessions) Implicit pause (idle time) Minimization Commit Session End UI View Activity Timeline
  57. 57. Title Sub-title Visualizing Developer Interactions Roberto Minelli, Andrea Mocci, Michele Lanza and Lorenzo Baracchi REVEAL @ Faculty of Informatics - University of Lugano, Switzerland How do developers use the UI of an IDE ? DFlow A non-intrusive interaction profiler for the Pharo IDE IDEInteraction data Record Store Step 1 Color Legend UI View Open Activate Minimize / ExpandResize / Move Close Minimized backbone Activity Timeline Navigation Inspection Edit Understanding Vertical Lines Explicit pause (sub-session) Implicit pause (idle) Commit 10:20 20:12 3:00 6:00 18:35 21:00 23:00 45:43 48:00 51:00 54:00 56:33 Session Start Duration of pause between two sub-sessions [d.hh:mm:ss] Explicit pause (sub-sessions) Implicit pause (idle time) Minimization Commit Session End UI View Activity Timeline
  58. 58. Title Sub-title Visualizing Developer Interactions Roberto Minelli, Andrea Mocci, Michele Lanza and Lorenzo Baracchi REVEAL @ Faculty of Informatics - University of Lugano, Switzerland How do developers use the UI of an IDE ? DFlow A non-intrusive interaction profiler for the Pharo IDE IDEInteraction data Record Store Step 1 Color Legend UI View Open Activate Minimize / ExpandResize / Move Close Minimized backbone Activity Timeline Navigation Inspection Edit Understanding Vertical Lines Explicit pause (sub-session) Implicit pause (idle) Commit 10:20 20:12 3:00 6:00 18:35 21:00 23:00 45:43 48:00 51:00 54:00 56:33 Session Start Duration of pause between two sub-sessions [d.hh:mm:ss] Explicit pause (sub-sessions) Implicit pause (idle time) Minimization Commit Session End UI View Activity Timeline Telling Development Stories
  59. 59. Title Sub-title Visualizing Developer Interactions Roberto Minelli, Andrea Mocci, Michele Lanza and Lorenzo Baracchi REVEAL @ Faculty of Informatics - University of Lugano, Switzerland How do developers use the UI of an IDE ? DFlow A non-intrusive interaction profiler for the Pharo IDE IDEInteraction data Record Store Step 1 Color Legend UI View Open Activate Minimize / ExpandResize / Move Close Minimized backbone Activity Timeline Navigation Inspection Edit Understanding Vertical Lines Explicit pause (sub-session) Implicit pause (idle) Commit 10:20 20:12 3:00 6:00 18:35 21:00 23:00 45:43 48:00 51:00 54:00 56:33 Session Start Duration of pause between two sub-sessions [d.hh:mm:ss] Explicit pause (sub-sessions) Implicit pause (idle time) Minimization Commit Session End UI View Activity Timeline Telling Development Stories Categorizing Development Sessions @robertominelli

Integrated Development Environments (IDEs) have become the de facto standard vehicle to develop software systems. The user interface (UI) of an IDE offers a staggering amount of facilities to manipulate source code, such as inspectors, debuggers, recommenders, alternative viewers, etc. It is unclear how developers use the UI of an IDE and whether such UIs actually give appropriate support to the developers. We present a visual approach to understand and characterize development sessions from the UI perspective. The tool supporting our approach mines and processes the finest-grained UI-level events making up development sessions and presents them visually. We have collected, visualized, and analyzed hundreds of development sessions and report on our findings.

Vues

Nombre de vues

437

Sur Slideshare

0

À partir des intégrations

0

Nombre d'intégrations

3

Actions

Téléchargements

3

Partages

0

Commentaires

0

Mentions J'aime

0

×