Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
Cargando en…3
×
1 de 129

Too Long; Didn’t Watch! Extracting Relevant Fragments from Software Development Video Tutorials

3

Compartir

Too Long; Didn’t Watch! Extracting Relevant Fragments from Software Development Video Tutorials @ ICSE 2016, Austin, TX, USA

Audiolibros relacionados

Gratis con una prueba de 30 días de Scribd

Ver todo

Too Long; Didn’t Watch! Extracting Relevant Fragments from Software Development Video Tutorials

  1. 1. Luca Ponzanelli Andrea Mocci Michele Lanza Sonia Haiduc Mir Hasan Gabriele Bavota Barbara Russo Max Di Penta Rocco Oliveto Florida State University University of Molise University of Sannio Free University of Bozen-Bolzano Università della Svizzera italiana Too Long; Didn't Watch! Extracting Relevant Fragments from Software Development Video Tutorials
  2. 2. L. MacLeod, M. A. Storey and A. Bergen
 Code, Camera, Action: How Software Developers Document and Share Program Knowledge Using YouTube In Proceedings of ICPC 2015 (23rd International Conference on Program Comprehension) YouTube and Video Tutorials
  3. 3. L. MacLeod, M. A. Storey and A. Bergen
 Code, Camera, Action: How Software Developers Document and Share Program Knowledge Using YouTube In Proceedings of ICPC 2015 (23rd International Conference on Program Comprehension) Sharing Customization Knowledge YouTube and Video Tutorials
  4. 4. L. MacLeod, M. A. Storey and A. Bergen
 Code, Camera, Action: How Software Developers Document and Share Program Knowledge Using YouTube In Proceedings of ICPC 2015 (23rd International Conference on Program Comprehension) Sharing Customization Knowledge Sharing Development Exercise YouTube and Video Tutorials
  5. 5. L. MacLeod, M. A. Storey and A. Bergen
 Code, Camera, Action: How Software Developers Document and Share Program Knowledge Using YouTube In Proceedings of ICPC 2015 (23rd International Conference on Program Comprehension) Sharing Customization Knowledge Sharing Development Exercise Sharing Implementation Approaches YouTube and Video Tutorials
  6. 6. L. MacLeod, M. A. Storey and A. Bergen
 Code, Camera, Action: How Software Developers Document and Share Program Knowledge Using YouTube In Proceedings of ICPC 2015 (23rd International Conference on Program Comprehension) Sharing Customization Knowledge Sharing Development Exercise Sharing Implementation Approaches Demonstrating the Application of Design Patterns YouTube and Video Tutorials
  7. 7. L. MacLeod, M. A. Storey and A. Bergen
 Code, Camera, Action: How Software Developers Document and Share Program Knowledge Using YouTube In Proceedings of ICPC 2015 (23rd International Conference on Program Comprehension) Sharing Customization Knowledge Sharing Development Exercise Sharing Implementation Approaches Demonstrating the Application of Design Patterns Explaining Data Structures YouTube and Video Tutorials
  8. 8. YouTube and Video Tutorials Information within a video is not indexed
  9. 9. YouTube and Video Tutorials Information within a video is not indexed Video contents are not searchable
  10. 10. TOOL DEMO SESSION Friday May 20, 2:20 PM CodeTube: Extracting Relevant Fragments from Software Development Video Tutorials L. Ponzanelli, G. Bavota, A. Mocci, M. Di Penta, R. Oliveto, B. Russo, S. Haiduc, M. Lanza
  11. 11. F1 F2 F3 F4
  12. 12. F1 F2 F3 F4
  13. 13. Frames Extraction English Terms Extraction Code Frames Identification Video Fragments Identification Video Fragments Indexing
  14. 14. Frames Extraction English Terms Extraction
  15. 15. Frames Extraction
  16. 16. diff Frames Extraction
  17. 17. diff Frames Extraction
  18. 18. diff discarded if diff < 10% Frames Extraction
  19. 19. Frames Extraction
  20. 20. Frames Extraction
  21. 21. Frames Extraction English Terms Extraction
  22. 22. Frames Extraction English Terms Extraction Code Frames Identificatio n
  23. 23. English Terms Extraction
  24. 24. Frame English Terms Extraction
  25. 25. https://github.com/tesseract-ocr Tesseract OCRFrame English Terms Extraction
  26. 26. https://github.com/tesseract-ocr Tesseract OCR English Terms Extraction
  27. 27. https://github.com/tesseract-ocr Tesseract OCR Text From OCR English Terms Extraction
  28. 28. Text From OCR English Terms Extraction // Bulld the "set clmer" lhcenh Intent timerlntent : new Intent[AlarmClock.ACTION_SET_TIMER) .putExtxa(AlarmClock.EXTRA7MESSAGE, message) .putEXtra(AlarmClocklEXTRAiLENGTH, seconds) lputExtra(AlarmC10cklEXTRA_SKIP_UI, true);
  29. 29. Text From OCR English Terms Extraction // Bulld the "set clmer" lhcenh Intent timerlntent : new Intent[AlarmClock.ACTION_SET_TIMER) .putExtxa(AlarmClock.EXTRA7MESSAGE, message) .putEXtra(AlarmClocklEXTRAiLENGTH, seconds) lputExtra(AlarmC10cklEXTRA_SKIP_UI, true);
  30. 30. English Dictionary Splitting & Stemming Text From OCR English Terms Extraction
  31. 31. C English Dictionary Splitting & Stemming English Terms Extraction
  32. 32. English Dictionary Splitting & Stemming Cleaned Text From OCR English Terms Extraction
  33. 33. English Dictionary Splitting & Stemming Cleaned Text From OCR English Terms Extraction
  34. 34. Frames Extraction English Terms Extraction Code Frames Identificatio n
  35. 35. English Terms Extraction Code Frames Identification Video Fragments Identification
  36. 36. Code Frames Identification
  37. 37. Code Frames Identification
  38. 38. http://boofcv.org/ Code Frames Identification
  39. 39. http://boofcv.org/ Code Frames Identification
  40. 40. Code Frames Identification
  41. 41. Code Frames Identification
  42. 42. Code Frames Identification
  43. 43. Code Frames Identification
  44. 44. Text From OCR Island Parser StORMeD http://stormed.inf.usi.ch Code Frames Identification
  45. 45. Island Parser StORMeD http://stormed.inf.usi.ch Code Frames Identification
  46. 46. Island Parser StORMeD http://stormed.inf.usi.ch H-AST Model Code Frames Identification
  47. 47. H-AST Model A code frame must contain a complete or incomplete Java construct Code Frames Identification
  48. 48. H-AST Model A code frame must contain a complete or incomplete Java construct Code Frames Identification
  49. 49. English Terms Extraction Code Frames Identification Video Fragments Identification
  50. 50. Code Frames Identification Video Fragments Identification Video Fragments Indexing
  51. 51. Video Fragments Identification
  52. 52. Video Fragments Identification
  53. 53. If they share code they belong to the same fragment Video Fragments Identification
  54. 54. If they share code they belong to the same fragment Video Fragments Identification
  55. 55. Ø Video Fragments Identification
  56. 56. Longest Common Substring (LCS) Video Fragments Identification
  57. 57. Longest Common Substring (LCS) 8 bit grayscale Video Fragments Identification
  58. 58. Longest Common Substring (LCS) 8 bit grayscale Video Fragments Identification
  59. 59. Longest Common Substring (LCS) hfn5V77As1xgHY9nrqsGlcddsIzju5 XAIGtY2MMgaP3XK3jRX4xgHY9nrqsG Video Fragments Identification
  60. 60. Longest Common Substring (LCS) hfn5V77As1xgHY9nrqsGlcddsIzju5 XAIGtY2MMgaP3XK3jRX4xgHY9nrqsG If LCS > 5% both frame belong to the same sequence Video Fragments Identification
  61. 61. Code Sequence Video Fragments Identification
  62. 62. Code Sequence Video Fragments Identification
  63. 63. Code Sequence Video Fragments Identification
  64. 64. Code Sequence Video Fragments Identification
  65. 65. Transcript Code Sequence Video Fragments Identification
  66. 66. Transcript Code Sequence Fragment Video Fragments Identification
  67. 67. Transcript Code Sequence Fragment Video Fragments Identification
  68. 68. Transcript Code Sequence Fragment if textual similarity > 15% merge two consecutive fragments Video Fragments Identification
  69. 69. Transcript Code Sequence if textual similarity > 15% merge two consecutive fragments Fragment Video Fragments Identification
  70. 70. Transcript Code Sequence if fragment length < 50s merge with next fragment Fragment Video Fragments Identification
  71. 71. Fragment Transcript Code Sequence if fragment length < 50s merge with next fragment Video Fragments Identification
  72. 72. Code Frames Identification Video Fragments Identification Video Fragments Indexing
  73. 73. Video Fragments Identification Video Fragments Indexing
  74. 74. Video Fragments Indexing F1 F2 F3 F4
  75. 75. F1 F2 F3 F4 Fragments Index StackOverflow Index Video Fragments Indexing
  76. 76. Fragments Index StackOverflow Index Query Query from Fragment F F Fragment + Discussions CodeTube Video Fragments Indexing
  77. 77. Frames Extraction English Terms Extraction Code Frames Identification Video Fragments Identification Video Fragments Indexing
  78. 78. CodeTube http://codetube.inf.usi.ch
  79. 79. CodeTube http://codetube.inf.usi.ch 4,747 Videos
  80. 80. CodeTube http://codetube.inf.usi.ch 4,747 Videos 38,783 Fragments
  81. 81. CodeTube http://codetube.inf.usi.ch 4,747 Videos 38,783 Fragments
  82. 82. Approach Evaluation Study IIStudy I Online Survey Interview with Practitioners
  83. 83. Approach Evaluation
  84. 84. 40 participants 70.6% Professional Developers 17.6% Master Students 11.8% PhD Students Approach Evaluation
  85. 85. RQ2 To what extent are the extracted video tutorial fragments cohesive and self-contained? Study I Online Survey
  86. 86. Study I Online Survey RQ2 To what extent are the extracted video tutorial fragments cohesive and self-contained?
  87. 87. Study I Online Survey RQ2 To what extent are the extracted video tutorial fragments cohesive and self-contained?
  88. 88. Study I Online Survey RQ2 To what extent are the extracted video tutorial fragments cohesive and self-contained?
  89. 89. Cohesion 0% 25% 50% 75% 100% 1 1.5 2 2.5 3 Study I Online Survey RQ2 To what extent are the extracted video tutorial fragments cohesive and self-contained?
  90. 90. Cohesion 0% 25% 50% 75% 100% 1 1.5 2 2.5 3 71% Study I Online Survey RQ2 To what extent are the extracted video tutorial fragments cohesive and self-contained?
  91. 91. Cohesion 0% 25% 50% 75% 100% 1 1.5 2 2.5 3 Self-Containment 0% 25% 50% 75% 100% 1 1.5 2 2.5 3 71% Study I Online Survey RQ2 To what extent are the extracted video tutorial fragments cohesive and self-contained?
  92. 92. Cohesion 0% 25% 50% 75% 100% 1 1.5 2 2.5 3 Self-Containment 0% 25% 50% 75% 100% 1 1.5 2 2.5 3 71% 47%31% Study I Online Survey RQ2 To what extent are the extracted video tutorial fragments cohesive and self-contained?
  93. 93. Approach Evaluation Study IIStudy I Online Survey Interview with Practitioners
  94. 94. Study II Practitioners Semi-Structured Interviews 3 Project Managers RQ5 Would CodeTube be useful for practitioners?
  95. 95. “I have just used CodeTube this morning. I was looking for something related to Android WebSocket. I found all I needed. Awesome!” Luciano Cutone, Project Manager @ IdeaSoftware Study II Practitioners RQ5 Would CodeTube be useful for practitioners?
  96. 96. “I think that the tool is nice. You are trying to solve an important and challenging problem, that is merging accurately different sources of information.” Giuseppe Socci, Project Manager @ Genialapp Study II Practitioners RQ5 Would CodeTube be useful for practitioners?
  97. 97. “I am not 100% sure that extracting shorter fragments makes you more productive. It depends on the scenario where the video tutorial is used“ Nicola Novello, Project Manager @ Next Study II Practitioners RQ5 Would CodeTube be useful for practitioners?
  98. 98. “I strongly believe that the tool has an enormous potential” Nicola Novello, Project Manager @ Next Study II Practitioners RQ5 Would CodeTube be useful for practitioners?
  99. 99. Open Challenges ✓
  100. 100. Open Challenges ✓ Videos get canceled
  101. 101. Open Challenges ✓ Videos get canceled Video clones
  102. 102. Open Challenges ✓ Videos get canceled Video clones More scalable approach
  103. 103. Open Challenges ✓ Videos get canceled Video clones More scalable approach More robust approach
  104. 104. Too Long; Didn't Watch!
  105. 105. Luca Ponzanelli Andrea Mocci Michele Lanza Sonia Haiduc Mir Hasan Gabriele Bavota Barbara Russo Max Di Penta Rocco Oliveto Florida State University University of Molise University of Sannio Free University of Bozen-Bolzano Università della Svizzera italiana CodeTube Extracting Relevant Fragments from Software Development Video Tutorials http://codetube.inf.usi.ch
  106. 106. Parameters Tuning Manual Tagging 10 Videos Tagged Fragments
  107. 107. Parameters Tuning Tagged Fragments CodeTube Fragments α β γ CodeTube Configuration MoJoFM Comparison
  108. 108. Parameters Tuning LCS percentageα β γ Textual Similarity Fragment Length
  109. 109. Parameters Tuning Parameter Min Max Delta Selected LCS percentage (α) 5% 50% 5% 5% Textual Similarity (β) 10% 80% 5% 15% Fragment Length (γ) 10s 120s 10s 50s
  110. 110. Approach Evaluation
  111. 111. 40 participants 70.6% Professional Developers 17.6% Master Students 11.8% PhD Students Approach Evaluation
  112. 112. 40 participants 70.6% Professional Developers 17.6% Master Students 11.8% PhD Students 38.5% less than 1 year 23.5% more than 3 years 20.5% between 2 and 3 years Android Experience 17.6% between 1 and 2 years Approach Evaluation
  113. 113. Video Tutorial Usage 38.2% - several times a week 35.3% - few times a month 23.5% - less than once a month 3.0% - daily Approach Evaluation
  114. 114. RQ1 What are the perceived benefits and obstacles of using video tutorials? Study I Online Survey
  115. 115. “video tutorials describe a complete process step-by-step” + RQ1 What are the perceived benefits and obstacles of using video tutorials? Study I Online Survey
  116. 116. “browsing is not easy, unless the video has an index to navigate through the concepts/sections in the video“ Study I Online Survey RQ1 What are the perceived benefits and obstacles of using video tutorials? “video tutorials describe a complete process step-by-step” +
  117. 117. RQ3 To what extent are the Stack Overflow discussions identified by CodeTube relevant and complementary to the linked video fragments? Study I Online Survey
  118. 118. RQ3 To what extent are the Stack Overflow discussions identified by CodeTube relevant and complementary to the linked video fragments? Relevance 0% 25% 50% 75% 100% 1 1.5 2 2.5 3 Study I Online Survey
  119. 119. RQ3 To what extent are the Stack Overflow discussions identified by CodeTube relevant and complementary to the linked video fragments? Relevance 0% 25% 50% 75% 100% 1 1.5 2 2.5 3 38%32% Study I Online Survey
  120. 120. RQ3 To what extent are the Stack Overflow discussions identified by CodeTube relevant and complementary to the linked video fragments? Relevance 0% 25% 50% 75% 100% 1 1.5 2 2.5 3 Complementariness 0% 25% 50% 75% 100% 1 1.5 2 2.5 3 38%32% Study I Online Survey
  121. 121. RQ3 To what extent are the Stack Overflow discussions identified by CodeTube relevant and complementary to the linked video fragments? Relevance 0% 25% 50% 75% 100% 1 1.5 2 2.5 3 Complementariness 0% 25% 50% 75% 100% 1 1.5 2 2.5 3 38%32% 82% Study I Online Survey
  122. 122. RQ4 To what extent is CodeTube able to return results relevant to a textual query? CodeTube Results YouTube Results Query (Q) NDCGCT(Q,3) = 0.67 NDCGYT(Q,3) = 0.63 Normalized Cumulative Discounted Gain (NDCG) Study I Online Survey
  123. 123. RQ4 To what extent is CodeTube able to return results relevant to a textual query? NDCGCT(Q,3) = 0.67 NDCGYT(Q,3) = 0.63 No statistically significant difference Normalized Cumulative Discounted Gain (NDCG) Study I Online Survey

×