how much do we know
play

How Much Do We Know? Wednesday, November 16, 2011 Wednesday, - PowerPoint PPT Presentation

Software Naturalism Embracing the Real Behind the Ideal Michael Feathers Groupon Wednesday, November 16, 2011 How Much Do We Know? Wednesday, November 16, 2011 Wednesday, November 16, 2011 Wednesday, November 16, 2011 Fault Prediction


  1. Software Naturalism Embracing the Real Behind the Ideal Michael Feathers Groupon Wednesday, November 16, 2011

  2. How Much Do We Know? Wednesday, November 16, 2011

  3. Wednesday, November 16, 2011

  4. Wednesday, November 16, 2011

  5. Fault Prediction System - Elaine J. Weyuker, Thomas J. Ostrand Wednesday, November 16, 2011

  6. Models for Project Managers, to help them decide where to apply effort. Wednesday, November 16, 2011

  7. Research used 6 large projects built or contracted by AT&T • 300-500 KSLOC • 2 yrs to 10 yrs • 4-50 langs per system • 3 month release cycle Wednesday, November 16, 2011

  8. Validated the hypothesis that distribution of faults across files is Pareto: > 80% faults are in < 20% of files Wednesday, November 16, 2011

  9. Wednesday, November 16, 2011

  10. Inputs to Prediction Model (per file): • LOC • New file (y/n)? • number of changes in release N-1 • number of changes in release N-2 • number of faults in release N-1 • programming language Wednesday, November 16, 2011

  11. Experimented with (per file): • Cumulative # of developers • Recent # of developers (Release N-1) • Number of new developers Wednesday, November 16, 2011

  12. Experimented with (per file): • Cumulative # of developers • Recent # of developers (Release N-1) • Number of new developers Dev-based Inputs did not improve the model much Wednesday, November 16, 2011

  13. How Effective Is Modularization? - Neil Thomas and Gail Murphy Wednesday, November 16, 2011

  14. Wednesday, November 16, 2011

  15. Wednesday, November 16, 2011

  16. Wednesday, November 16, 2011

  17. Wednesday, November 16, 2011

  18. Wednesday, November 16, 2011

  19. Wednesday, November 16, 2011

  20. The Open/Closed Principle " software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification " - Bertrand Meyer Wednesday, November 16, 2011

  21. Wednesday, November 16, 2011

  22. Clojure 400 300 # of commits 200 100 0 files Wednesday, November 16, 2011

  23. Fitnesse 300 225 # of commits 150 75 0 files Wednesday, November 16, 2011

  24. JUnit 70.0 52.5 # of commits 35.0 17.5 0 files Wednesday, November 16, 2011

  25. Wednesday, November 16, 2011

  26. Wednesday, November 16, 2011

  27. Wednesday, November 16, 2011

  28. Wednesday, November 16, 2011

  29. Wednesday, November 16, 2011

  30. A Method Lifeline 30.0 22.5 15.0 7.5 0 time Wednesday, November 16, 2011

  31. Frequency of Inter-commit Intervals Wednesday, November 16, 2011

  32. Frequency of Inter-commit Intervals Wednesday, November 16, 2011

  33. Frequency of Inter-commit Intervals Rhythm Wednesday, November 16, 2011

  34. Frequency of Inter-commit Intervals Wednesday, November 16, 2011

  35. Average Lines of Code Per Commit By Week Wednesday, November 16, 2011

  36. Complexity Tolerance (Developer A) Wednesday, November 16, 2011

  37. Complexity Tolerance (Developer B) Wednesday, November 16, 2011

  38. Ownership Effect (all methods) Wednesday, November 16, 2011

  39. Methods Ascending (5) Wednesday, November 16, 2011

  40. Trending Methods Wednesday, November 16, 2011

  41. Classes By Closure Date Wednesday, November 16, 2011

  42. Temporal Correlation of Class Changes Wednesday, November 16, 2011

  43. Behavioral Economics Wednesday, November 16, 2011

  44. Wednesday, November 16, 2011

  45. Wednesday, November 16, 2011

  46. Is it easier to add code to an existing method or to add a new method? Wednesday, November 16, 2011

  47. Is it easier to add a method to an existing class or to add it a new class? Wednesday, November 16, 2011

  48. We should not be surprised by what we see. Wednesday, November 16, 2011

  49. Commits By Hour chart(['hour','commits'],method_events(events).freq_by {|e| e.date.hour }) Wednesday, November 16, 2011

  50. Commits By Minute chart(['hour','commits'],method_events(events).freq_by {|e| e.date.min }) Wednesday, November 16, 2011

  51. Method and Spec Changes Per Hour of Day Wednesday, November 16, 2011

  52. Another Method 4 3 2 1 0 time Wednesday, November 16, 2011

  53. Wednesday, November 16, 2011

  54. Code Blindness Wednesday, November 16, 2011

  55. Walking Out of Code Blindness Wednesday, November 16, 2011

  56. Walking Out of Code Blindness Total Ignorance Wednesday, November 16, 2011

  57. Walking Out of Code Blindness Total Ignorance Metrics Targeted Wednesday, November 16, 2011

  58. Wednesday, November 16, 2011

  59. There is nothing more abstract than 4 (except maybe 5). Wednesday, November 16, 2011

  60. Walking Out of Code Blindness Total Ignorance Metrics Targeted Qualitatively Assessing Wednesday, November 16, 2011

  61. Wednesday, November 16, 2011

  62. Wednesday, November 16, 2011

  63. Wednesday, November 16, 2011

  64. Walking Out of Code Blindness Total Ignorance Metrics Targeted Qualitatively Assessing Lifecycle Managing Wednesday, November 16, 2011

  65. Wednesday, November 16, 2011

  66. Walking Out of Code Blindness Total Ignorance Metrics Targeted Qualitatively Assessing Lifecycle Managing Integrated Knowing Wednesday, November 16, 2011

  67. Conway’s Law Any organization that designs a system will inevitably produce a design whose structure is a copy of the organization's communication structure . Wednesday, November 16, 2011

  68. Org Team Code Wednesday, November 16, 2011

  69. Wednesday, November 16, 2011

  70. Wednesday, November 16, 2011

  71. Wednesday, November 16, 2011

  72. Peter Provost - The Bufferfly Effect Wednesday, November 16, 2011

  73. Wednesday, November 16, 2011

  74. Wednesday, November 16, 2011

Recommend


More recommend