What if Clippy Would Criticize Your Code? (benevol2015)

What if Clippy Would Criticize Your Code? (benevol2015)

Comparison study between intrusive and on-demand recommendation systems for software development based on static analysis.

9847702de1f7f19db8c3e158325baa8e?s=128

Yuriy Tymchuk

December 04, 2015
Tweet

Transcript

  1. What if Clippy Would Criticize Your Code? Yuriy Tymchuk R

    A E E L V
  2. @yuriy_tymchuk What if Clippy Would Criticize Your Code? R A

    E E L V Sometimes I just popup for no reason at all. Like now.
  3. @yuriy_tymchuk What if Clippy Would Criticize Your Code? R A

    E E L V Criticize Your Code?
  4. Code Quality

  5. Code Quality How easy it is to understand modify test

    the software ISO/IEC, ISO/IEC 9126. Software Engineering – Product quality 6.5. ISO/IEC, 2001 (maintainability)
  6. Code Review A. Bacchelli, C. Bird. Expectations, outcomes, and challenges

    of modern code review. In Proceedings of ICSE’13, pp. 712–721, IEEE, 2013
  7. Static Analyzer

  8. Static Analyzer

  9. Quality Rules Static Analyzer

  10. Quality Rules Source Code Static Analyzer

  11. Quality Rules Critics Static Analyzer

  12. Find Bugs

  13. Visual Design Inspection Y. Tymchuk, A. Mocci, and M. Lanza.

    Code Review: Veni, ViDI, Vici. In Proceedings of SANER’15, pp. 151-160, IEEE, 2015
  14. Y. Tymchuk, A. Mocci, and M. Lanza. Code Review: Veni,

    ViDI, Vici. In Proceedings of SANER’15, pp. 151-160, IEEE, 2015 Y. Tymchuk, A. Mocci, and M. Lanza. Vidi: The Visual Design Inspector. In Proceedings of ICSE’15, to be published, IEEE, 2015 ViDI
  15. None
  16. packages 400 classes 5.5k methods 90k

  17. Pharo 4: patches / months ≈ patches/day 1726 12 5

    Pharo 5: patches / months ≈ patches/day 1560 7.5 7 packages 400 classes 5.5k methods 90k
  18. ViDI is …

  19. Disconnected from Development

  20. Yes, I will help you
 to write code!

  21. Static Analyzer Interface FindBugs IntelliJ Code Analysis

  22. Static Analyzer Interface FindBugs IntelliJ Code Analysis standalone/on demand embedded/intrusive

  23. Static Analyzer Interface Critics Browser standalone/on demand embedded/intrusive in Pharo

  24. Critics Browser

  25. Critics Browser Survey 46 participants

  26. Critics Browser Survey

  27. Critics Browser Survey

  28. QualityAssistant

  29. QualityAssistant in Code Browser

  30. QualityAssistant in Code Browser

  31. QualityAssistant in Inspector

  32. QualityAssistant in Spotter

  33. Pharo 4: patches / months ≈ patches/day 1726 12 5

    Pharo 5: patches / months ≈ patches/day 1560 7.5 7 packages 400 classes 5.5k methods 90k
  34. Pharo 4: patches / months ≈ patches/day 1726 12 5

    Pharo 5: patches / months ≈ patches/day 1560 7.5 7 packages 400 classes 5.5k methods 90k
  35. QualityAssistant Survey 29 participants

  36. QualityAssistant Survey

  37. Browser Inspector Spotter QualityAssistant Survey

  38. QualityAssistant Survey

  39. Critics Browser QualityAssistant

  40. Critics Browser QualityAssistant

  41. Critics Browser QualityAssistant

  42. Critics Browser QualityAssistant

  43. Critics Browser QualityAssistant

  44. Critics Browser QualityAssistant auto"x ban
 ignore ban
 ignore rationale highlight

    diff auto"x ban ban in
 scope
  45. None
  46. 31% 10% 31% 7% 3% 17% 48% 14% 21% 17%

    Don’t know QA Negative Slightly Negative Neutral Slightly Positive Positive removal of “Missing yourself” addition of “notNilDo: -> notNil:” QualityAssistant-In!uenced Changes
  47. Developers Like QualityAssistant

  48. Developers Like QualityAssistant 38% 24% 14% 3% 3% 17% “!nd

    QualityAssistant very useful”
  49. 38% 24% 14% 3% 3% 17% 48% 14% 21% 17%

    “!nd QualityAssistant very useful” “!nd introduction of a new rule in"uenced by QualityAssistant to be positive” Developers Like QualityAssistant
  50. 38% 24% 14% 3% 3% 17% 48% 14% 21% 17%

    “!nd QualityAssistant very useful” “!nd introduction of a new rule in"uenced by QualityAssistant to be positive” Developers Like QualityAssistant
  51. @yuriy_tymchuk 38% 24% 14% 3% 3% 17% 48% 14% 21%

    17% “!nd QualityAssistant very useful” “!nd introduction of a new rule in"uenced by QualityAssistant to be positive” Developers Like QualityAssistant