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.
Próximo SlideShare
What to Upload to SlideShare
What to Upload to SlideShare
Cargando en…3
×
1 de 80

Supporting Software Developers with a Holistic Recommender System

0

Compartir

Descargar para leer sin conexión

Supporting Software Developers with a Holistic Recommender System @ ICSE 2017, Buenos Aires, Argentina

Audiolibros relacionados

Gratis con una prueba de 30 días de Scribd

Ver todo

Supporting Software Developers with a Holistic Recommender System

  1. 1. SUPPORTING SOFTWARE DEVELOPERS WITH A HOLISTIC RECOMMENDER SYSTEM R AE E LV Luca Ponzanelli Michele Lanza Gabriele Bavota Andrea Mocci Università della Svizzera italiana Rocco Oliveto Simone Scalabrino University of Molise Massimiliano Di Penta University of Sannio
  2. 2. Stack Overflow Video Tutorials API Documentation Bug Reports Development Emails Code Samples
  3. 3. Stack Overflow Video Tutorials API Documentation Bug Reports Development Emails Code Samples
  4. 4. Stack Overflow Video Tutorials API Documentation Bug Reports Development Emails Code Samples
  5. 5. Developer’s knowledge context is not considered
  6. 6. IDE
  7. 7. Web Browser IDE
  8. 8. LIBRAhttp://libra.inf.usi.ch
  9. 9. Web Browser IDE
  10. 10. IDE Web Browser
  11. 11. IDE
  12. 12. {…} {…} {…}
  13. 13. Context Graph {…} {…} {…} {…}
  14. 14. Artifact Similarity {…} ~
  15. 15. Holistic Similarity {…}
  16. 16. {…} {…} {…} Island Parser StORMeD http://stormed.inf.usi.ch
  17. 17. {…} {…} {…} Heterogeneous Abstract Syntax Tree
  18. 18. Heterogeneous Abstract Syntax Tree </> {;} JSON Text StackTraceJavaXML
  19. 19. Heterogeneous Abstract Syntax Tree </> {;}
  20. 20. Meta-Information Model {…} Term
 Frequencies Method Declarations Types XML Elements Identifiers Variables
 Declarations JSON
 Members Method
 Invocations
  21. 21. Types Term
 Frequencies Term
 Frequencies Method Declarations Types{…} Variable
 Declarations Meta-Information Model
  22. 22. Meta-Information Model Types Term
 Frequencies Term
 Frequencies Method Declarations Types{…} Variable
 Declarations
  23. 23. Holistic Similarity Vx,y =⟨NL Similarity, Type Similarity⟩ fsim(Rx, Ry) = Vx,y
  24. 24. Holistic Context Graph {…} {…} {…} {…}
  25. 25. {…} {…} {…} HoliRank Holistic PageRank {…}
  26. 26. {…} {…} {…} HoliRank Artifact Centrality {…}
  27. 27. ContextComplementarity Result Prominence 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 Search Results
  28. 28. {…} {…} {…} {…} Context Complementarity
  29. 29. {…} {…} {…} {…} Context Complementarity
  30. 30. {…} {…} {…} {…} 1.0 0.6 0.6 0.3 0.2 0.2 0.1 0.2 0.4 HoliRank(Result) Context Complementarity
  31. 31. {…} {…} {…} {…} 0.0 0.4 0.4 0.7 0.8 0.8 0.9 0.8 0.6 1 - HoliRank(Result) Context Complementarity
  32. 32. Search Results ContextComplementarity 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 Result Prominence
  33. 33. Result Prominence
  34. 34. Result Prominence 1.0 0.6 0.10.4 0.3 0.5 HoliRank(Result)
  35. 35. Search Results ContextComplementarity Result Prominence 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
  36. 36. Term
 Frequencies Method Declarations Types XML Elements Identifiers Variables
 Declarations JSON
 Members Method
 Invocations
  37. 37. Term
 Frequencies Method Declarations Types XML Elements Identifiers Variables
 Declarations JSON
 Members Method
 Invocations Σ
  38. 38. Search Results ContextComplementarity Result Prominence 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
  39. 39. Search Results ContextComplementarity Result Prominence 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
  40. 40. Search Results ContextComplementarity Result Prominence 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 domain1.com domain2.com domain3.com
  41. 41. Does Libra help developers?
  42. 42. Controlled Experiment Industrial
 Applicability Study I Study II
  43. 43. Enhancement Tasks Bug Fixing Tasks 16 Developers Study I Setup
  44. 44. Enhancement Task Bug Fixing Task 75’ Study I Setup
  45. 45. Enhancement Task Bug Fixing Task 75’ Study I Setup
  46. 46. Task Completion Study I Setup Developers’ Agreement
  47. 47. Study I Agreement ContextComplementarity Result Prominence 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 Developers’ Agreement
  48. 48. Study I Agreement 0% 12.5% 25% 37.5% 50% Abs. No No Maybe Yes Abs. Yes Do you agree with Prominence? 73%
agreement
  49. 49. Study I Agreement 0% 12.5% 25% 37.5% 50% Abs. No No Maybe Yes Abs. Yes Do you agree with Complementarity? 83%
agreement
  50. 50. Study I Completion Task Completion 90% 75% 25% 50%
  51. 51. +25%
completeness Treatment Completenessofthetasks 100 Without
 Libra 80 60 40 0 With
 Libra 20 Study I Completion Bug Fixing
  52. 52. 100 Without
 Libra Treatment 80 60 40 0 With
 Libra Completenessofthetasks +37%
completeness 20 Study I Completion Enhancement
  53. 53. 100 Without
 Libra Treatment 80 60 40 0 With
 Libra Completenessofthetasks +52%
completeness 20 Study I Completion Overall
  54. 54. Controlled Experiment Industrial
 Applicability Study I Study II
  55. 55. Study II Setup … 5 Developers Semi-Structured
 Interviews
  56. 56. Study II Results Is Libra useful?
  57. 57. Study II Results 0% 15% 30% 45% 60% Abs. No No Maybe Yes Abs. Yes Is Libra useful? 60%
found Libra useful
  58. 58. Study II Results Would you use Libra?
  59. 59. Study II Results 0% 15% 30% 45% 60% Abs. No No Maybe Yes Abs. Yes Would you use Libra? 100%
would use Libra
  60. 60. Study II Results “I noticed that Libra allowed me to find the most appropriate web page quicker.”
  61. 61. Study II Results “Libra flowlessly integrates into the classical developer's workflow, without adding complexity.” “I noticed that Libra allowed me to find the most appropriate web page quicker.”
  62. 62. Study II Results “Libra flowlessly integrates into the classical developer's workflow, without adding complexity.” “I noticed that Libra allowed me to find the most appropriate web page quicker.” “I particularly like the idea of adding information to the Google ranking.”
  63. 63. Study II Results “The graph-based interface provides too many details.”
  64. 64. Study II Results “You could think of a single metric that provides an indication of both complementarity and prominence.” “The graph-based interface provides too many details.”
  65. 65. Controlled Experiment Industrial
 Applicability Study I Study II
  66. 66. A holistic analysis of the information context can offer better support to information navigation and retrieval
  67. 67. SUPPORTING SOFTWARE DEVELOPERS WITH A HOLISTIC RECOMMENDER SYSTEM R AE E LV Luca Ponzanelli Michele Lanza Gabriele Bavota Andrea Mocci Università della Svizzera italiana Rocco Oliveto Simone Scalabrino University of Molise Massimiliano Di Penta University of Sannio http://libra.inf.usi.ch

×