Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Code Review: Veni, ViDI, Vici (saner2015)

Code Review: Veni, ViDI, Vici (saner2015)

!!! For the demo purposes of ViDI there was a set of videos in the presentation. You can see the full demo video here: http://youtu.be/EtdkcNBJAec

Modern software development sees code review as a crucial part of the process, because not only does it facilitate the sharing of knowledge about the system at hand, but it may also lead to the early detection of defects, ultimately improving the quality of the produced software. Although supported by numerous approaches and tools, code review is still in its infancy, and indeed researchers have pointed out a number of shortcomings in the state of the art. We present a critical analysis of the state of the art of code review tools and techniques, extracting a set of desired features that code review tools should possess. We then present our vision and initial implementation of a novel code review approach named Visual Design Inspection (ViDI), illustrated through a set of usage scenarios. ViDI is based on a combination of visualization techniques, design heuristics, and static code analysis techniques.

9847702de1f7f19db8c3e158325baa8e?s=128

Yuriy Tymchuk

March 04, 2015
Tweet

Transcript

  1. Code Review: Veni, ViDI, Vici Yuriy Tymchuk, Andrea Mocci and

    Michele Lanza
 REVEAL @ Faculty of Informatics – University of Lugano, Switzerland
  2. None
  3. Code review of future Code Review of Future

  4. What do reviewers expect? What do tools provide?

  5. What do reviewers expect? What do reviewers expect?

  6. What do reviewers expect?

  7. What do reviewers expect? Find defects

  8. What do reviewers expect? Find defects Improve code

  9. What do reviewers expect? Find defects Improve code Find alternative

    solutions
  10. What do reviewers have problems with?

  11. What do reviewers have problems with?

  12. What do reviewers do when they don’t understand?

  13. What do reviewers do when they don’t understand?

  14. What do tools provide?

  15. What do tools provide? CODEFLOW COLLABORATOR CRUCIBLE PHABRICATOR GERRIT GITHUB

    REVIEW BOARD UPSOURCE
  16. What do tools provide for diff view?

  17. What do tools provide for code commenting?

  18. What do tools provide for automated quality analysis?

  19. What do tools provide for reviewer selection?

  20. What do tools provide for code navigation?

  21. What do tools provide?

  22. What do tools provide?

  23. None
  24. None
  25. None
  26. None
  27. None
  28. None
  29. Visual Design Inspection

  30. None
  31. Package Class Method

  32. Package Class Method Less Violations

  33. Package Class Method More Violations Less Violations

  34. None
  35. SmallLint Violations

  36. SmallLint Violations 115 Rules

  37. SmallLint Violations 115 Rules 7 Groups

  38. None
  39. Static Analysis Rules

  40. Main View & System Summary

  41. Selected Entity Critics & Source Code

  42. Filtering

  43. Fixing

  44. Auto-Fixing

  45. Dedicated Fixing UI

  46. Comments on Entities

  47. Code Review

  48. Code Review Review (Code Review)

  49. Review (Code Review)

  50. v3: issues / months ≈ issues/day 2390 13 6 v4:

    issues / months ≈ issues/day 1200 9 4.5 ViDI
  51. v3: issues / months ≈ issues/day 2390 13 6 v4:

    issues / months ≈ issues/day 1200 9 4.5 ViDI immersive visual inspector augmented with critics edit system in-place automated "xes dedicated "xing tools annotate entities review of the review session
  52. v3: issues / months ≈ issues/day 2390 13 6 v4:

    issues / months ≈ issues/day 1200 9 4.5 ViDI immersive visual inspector augmented with critics edit system in-place
  53. v3: issues / months ≈ issues/day 2390 13 6 v4:

    issues / months ≈ issues/day 1200 9 4.5 ViDI immersive visual inspector augmented with critics edit system in-place automated "xes dedicated "xing tools annotate entities review of the review session
  54. v3: issues / months ≈ issues/day 2390 13 6 v4:

    issues / months ≈ issues/day 1200 9 4.5 ViDI immersive visual inspector augmented with critics edit system in-place automated "xes dedicated "xing tools annotate entities review of the review session
  55. self -"xing custom "x tools

  56. self -"xing custom "x tools gradual

  57. self -"xing custom "x tools gradual adjustable

  58. self -"xing custom "x tools gradual adjustable composite

  59. self -"xing custom "x tools gradual adjustable composite much more

    • • •
  60. ViDI Yuriy Tymchuk, Andrea Mocci and Michele Lanza
 REVEAL @

    Faculty of Informatics – University of Lugano, Switzerland Veni Vici Code Review: , ,
  61. Yuriy Tymchuk, Andrea Mocci and Michele Lanza
 REVEAL @ Faculty

    of Informatics – University of Lugano, Switzerland ViDI Veni Vici Code Review:
  62. Yuriy Tymchuk, Andrea Mocci and Michele Lanza
 REVEAL @ Faculty

    of Informatics – University of Lugano, Switzerland ViDI Veni Vici Code Review: