RTFM (Read The Factual Mails) --Augmenting Program Comprehension with REmail

510 views

Published on

Slides of the presentation given at CSMR 2011, about our paper "RTFM (Read The Factual Mails) --Augmenting Program Comprehension with REmail"

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
510
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

RTFM (Read The Factual Mails) --Augmenting Program Comprehension with REmail

  1. 1. Augmenting Program Comprehension with REmailAlberto Bacchelli, Michele Lanza, Vitezslav HumpaREVEAL @ Faculty of InformaticsUniversity of Lugano, Switzerland
  2. 2. Software maintenance impacts between85% and 90% of the global cost of a system.Leveraging legacy system dollars for e-businessErlikh [IT Professional, 2(3), 2000]
  3. 3. Software maintenance impacts between85% and 90% of the global cost of a system.Leveraging legacy system dollars for e-businessErlikh [IT Professional, 2(3), 2000]Program comprehension takes upto 50%-60% of maintenance time.Program Understanding: Challenge for the 1990’sCorbi [IBM System Journal, 28(2), 1989]
  4. 4. Software maintenance impacts between85% and 90% of the global cost of a system.Leveraging legacy system dollars for e-businessErlikh [IT Professional, 2(3), 2000]Program comprehension takes upto 50%-60% of maintenance time.Program Understanding: Challenge for the 1990’sCorbi [IBM System Journal, 28(2), 1989]
  5. 5. Software maintenance impacts between85% and 90% of the global cost of a system.Leveraging legacy system dollars for e-businessErlikh [IT Professional, 2(3), 2000]Program comprehension takes upto 50%-60% of maintenance time.Program Understanding: Challenge for the 1990’sCorbi [IBM System Journal, 28(2), 1989]
  6. 6. Developers who need to understand code, andcannot find appropriate documentation, simply documentationquery other programmers. Maintaining mental models: a study of developer work habits LaToza, Venolia, DeLine [ICSE 2006]
  7. 7. Why they cannot find appropriate documentationfor program comprehension?
  8. 8. Why they cannot find appropriate documentationfor program comprehension?Superficial: Does not provide real context.
  9. 9. Why they cannot find appropriate documentationfor program comprehension?Superficial: Does not provide real context.Simplistic: Does not cover difficult cases.
  10. 10. Why they cannot find appropriate documentationfor program comprehension?Superficial: Does not provide real context.Simplistic: Does not cover difficult cases.Narrow: Not all cases can be predicted.
  11. 11. Why they cannot find appropriate documentationfor program comprehension?Superficial: Does not provide real context.Simplistic: Does not cover difficult cases.Narrow: Not all cases can be predicted.Outdated: Code and documentation drift apart.
  12. 12. Why they cannot find appropriate documentationfor program comprehension?Superficial: Does not provide real context.Simplistic: Does not cover difficult cases.Narrow: Not all cases can be predicted.Outdated: Code and documentation drift apart.Missing:
  13. 13. Emails
  14. 14. Number of emails
  15. 15. Jun-95!Sep-95!Dec-95!Mar-96!Jun-96!Sep-96!Dec-96!Mar-97!Jun-97!Sep-97!Dec-97!Mar-98!Jun-98!Sep-98!Dec-98!Mar-99!Jun-99!Sep-99!Dec-99!Mar-00!Jun-00!Sep-00!Dec-00!Mar-01!Jun-01!Sep-01!Dec-01!Mar-02!Jun-02!Sep-02!Dec-02!Mar-03!Jun-03!Sep-03!Dec-03!Mar-04!Jun-04!Sep-04!Dec-04!Mar-05!Jun-05!Sep-05!Dec-05!Mar-06!Jun-06!Sep-06!Dec-06!Mar-07!Jun-07!Sep-07!Dec-07!Mar-08!Jun-08!Sep-08!Dec-08!Mar-09!Jun-09!Sep-09!Dec-09!Mar-10! Emails 0! Number of emails 2000! 4000! 6000! 8000! 10000! 12000! 14000! 16000!
  16. 16. Jun-95!Sep-95!Dec-95!Mar-96!Jun-96!Sep-96!Dec-96!Mar-97!Jun-97!Sep-97!Dec-97!Mar-98!Jun-98! 13,657Sep-98!Dec-98!Mar-99!Jun-99!Sep-99!Dec-99!Mar-00!Jun-00!Sep-00!Dec-00!Mar-01!Jun-01!Sep-01!Dec-01!Mar-02!Jun-02!Sep-02!Dec-02!Mar-03!Jun-03!Sep-03!Dec-03!Mar-04!Jun-04!Sep-04!Dec-04!Mar-05!Jun-05!Sep-05!Dec-05!Mar-06!Jun-06!Sep-06!Dec-06!Mar-07!Jun-07!Sep-07!Dec-07!Mar-08!Jun-08!Sep-08!Dec-08!Mar-09!Jun-09!Sep-09!Dec-09!Mar-10! Emails 0! Number of emails 2000! 4000! 6000! 8000! 10000! 12000! 14000! 16000!
  17. 17. Jun-95!Sep-95!Dec-95!Mar-96!Jun-96!Sep-96!Dec-96!Mar-97!Jun-97!Sep-97!Dec-97!Mar-98!Jun-98! emails 13,657Sep-98!Dec-98!Mar-99!Jun-99!Sep-99!Dec-99!Mar-00!Jun-00!Sep-00!Dec-00!Mar-01!Jun-01!Sep-01!Dec-01!Mar-02!Jun-02!Sep-02!Dec-02!Mar-03!Jun-03!Sep-03!Dec-03!Mar-04!Jun-04!Sep-04!Dec-04!Mar-05!Jun-05!Sep-05!Dec-05!Mar-06!Jun-06!Sep-06!Dec-06!Mar-07!Jun-07!Sep-07!Dec-07!Mar-08!Jun-08!Sep-08!Dec-08!Mar-09!Jun-09!Sep-09!Dec-09!Mar-10! Emails 0! Number of emails 2000! 4000! 6000! 8000! 10000! 12000! 14000! 16000!
  18. 18. Jun-95!Sep-95!Dec-95!Mar-96!Jun-96!Sep-96!Dec-96!Mar-97!Jun-97!Sep-97!Dec-97!Mar-98!Jun-98! emails 13,657Sep-98!Dec-98!Mar-99!Jun-99!Sep-99! in one (1)Dec-99!Mar-00!Jun-00!Sep-00!Dec-00!Mar-01!Jun-01!Sep-01!Dec-01!Mar-02!Jun-02!Sep-02!Dec-02!Mar-03!Jun-03!Sep-03!Dec-03!Mar-04!Jun-04!Sep-04!Dec-04!Mar-05!Jun-05!Sep-05!Dec-05!Mar-06!Jun-06!Sep-06!Dec-06!Mar-07!Jun-07!Sep-07!Dec-07!Mar-08!Jun-08!Sep-08!Dec-08!Mar-09!Jun-09!Sep-09!Dec-09!Mar-10! Emails 0! Number of emails 2000! 4000! 6000! 8000! 10000! 12000! 14000! 16000!
  19. 19. Jun-95!Sep-95!Dec-95!Mar-96!Jun-96!Sep-96!Dec-96!Mar-97!Jun-97!Sep-97!Dec-97!Mar-98!Jun-98! emails 13,657Sep-98! month.Dec-98!Mar-99!Jun-99!Sep-99! in one (1)Dec-99!Mar-00!Jun-00!Sep-00!Dec-00!Mar-01!Jun-01!Sep-01!Dec-01!Mar-02!Jun-02!Sep-02!Dec-02!Mar-03!Jun-03!Sep-03!Dec-03!Mar-04!Jun-04!Sep-04!Dec-04!Mar-05!Jun-05!Sep-05!Dec-05!Mar-06!Jun-06!Sep-06!Dec-06!Mar-07!Jun-07!Sep-07!Dec-07!Mar-08!Jun-08!Sep-08!Dec-08!Mar-09!Jun-09!Sep-09!Dec-09!Mar-10! Emails 0! Number of emails 2000! 4000! 6000! 8000! 10000! 12000! 14000! 16000!
  20. 20. Jun-95!Sep-95!Dec-95!Mar-96!Jun-96!Sep-96!Dec-96!Mar-97!Jun-97!Sep-97!Dec-97!Mar-98!Jun-98!Sep-98!Dec-98!Mar-99!Jun-99!Sep-99!Dec-99!Mar-00!Jun-00!Sep-00!Dec-00!Mar-01! —Karl Fogel, creator of SubversionJun-01! emails are theSep-01!Dec-01!Mar-02!Jun-02!Sep-02!Dec-02!Mar-03!Jun-03!Sep-03!Dec-03! “bread and butter ofMar-04!Jun-04!Sep-04!Dec-04!Mar-05!Jun-05!Sep-05! project communication.”Dec-05!Mar-06!Jun-06!Sep-06!Dec-06!Mar-07!Jun-07!Sep-07!Dec-07!Mar-08!Jun-08!Sep-08!Dec-08!Mar-09!Jun-09!Sep-09!Dec-09!Mar-10! Emails 0! 2000! 4000! 6000! 8000! 10000! 12000! 14000! 16000!
  21. 21. Effectiveness 6 Unplanned 5 Meetings External Planned Emails Documents Meetings Web 4 Internal Documents IM Bug Database Phone 3 Other 2 1 0 0% 5% 10% 15% 20% 25% 30% Frequency of usage
  22. 22. Effectiveness 6 Unplanned 5 Meetings External Planned Emails Documents Meetings Web 4 Internal Documents IM Bug Database Phone 3 Emails are widely used Other 2 and highly effective 1 0 0% 5% 10% 15% 20% 25% 30% Frequency of usage
  23. 23. Augmenting Program Comprehension with Emails
  24. 24. Drawbacks in using emails for program comprehension
  25. 25. Drawbacks in using emails for program comprehensionInformation overload
  26. 26. Drawbacks in using emails for program comprehensionInformation overload
  27. 27. Drawbacks in using emails for program comprehension Separation fromInformation overload actual development
  28. 28. Drawbacks in using emails for program comprehension Separation fromInformation overload actual development
  29. 29. Jun-95!Sep-95!Dec-95!Mar-96!Jun-96!Sep-96!Dec-96!Mar-97!Jun-97!Sep-97!Dec-97!Mar-98!Jun-98!Sep-98!Dec-98!Mar-99!Jun-99!Sep-99!Dec-99!Mar-00!Jun-00!Sep-00!Dec-00!Mar-01!Jun-01!Sep-01!Dec-01!Mar-02!Jun-02!Sep-02!Dec-02!Mar-03!Jun-03!Sep-03!Dec-03!Mar-04!Jun-04!Sep-04!Dec-04!Mar-05!Jun-05!Sep-05!Dec-05!Mar-06!Jun-06!Sep-06!Dec-06!Mar-07!Jun-07!Sep-07!Dec-07!Mar-08!Jun-08!Sep-08!Dec-08!Mar-09!Jun-09!Sep-09!Dec-09!Mar-10! 0! 2000! 4000! 6000! 8000! 10000! 12000! 14000! 16000!
  30. 30. Communicating about code6 Unplanned Meetings Planned Meetings External Docs Web Emails4 Internal docs IM Phone Bug Database Other20 0% 10% 20% 30%
  31. 31. Communicating about code Designing new features6 Unplanned Meetings Planned Meetings External Docs Web Emails4 Internal docs IM Phone Bug Database Other20 0% 10% 20% 30%
  32. 32. Communicating about code Designing new features6 Unplanned Meetings Planned Meetings External Docs Web Emails4 Internal docs IM Phone Bug Database Other20 0% 10% 20% 30%Understanding code - Tools
  33. 33. Communicating about code Designing new features6 Unplanned Meetings Planned Meetings External Docs Web Emails4 Internal docs IM Phone Bug Database Other20 0% 10% 20% 30%Understanding code - Tools Understanding code - Techniques
  34. 34. Communicating about code Designing new features6 6 Unplanned Meetings Planned Meetings External Docs Web Emails4 Internal docs 4 IM Phone Bug Database Other2 20 0 0% 10% 20% 30% 0% 13% 27% 40%Understanding code - Tools Understanding code - Techniques
  35. 35. Communicating about code Designing new features6 6 Unplanned Meetings Planned Meetings External Docs Web Emails4 Internal docs 4 Code editor IM Phone Bug Database Other2 20 0 0% 10% 20% 30% 0% 13% 27% 40%Understanding code - Tools Understanding code - Techniques
  36. 36. Communicating about code Designing new features6 6 Unplanned Meetings Paper Whiteboard Planned Meetings External Docs Other Web Emails4 Internal docs 4 Visio Code editor IM Word processor Phone Bug Database Visual Other Designs2 20 0 0% 10% 20% 30% 0% 13% 27% 40%Understanding code - Tools Understanding code - Techniques
  37. 37. Communicating about code Designing new features6 6 Unplanned Meetings Paper Whiteboard Planned Meetings External Docs Other Web Emails4 Internal docs 4 Visio Code editor IM Word processor Phone Bug Database Visual Other Designs2 20 0 0% 10% 20% 30% 0% 13% 27% 40%Understanding code - Tools Understanding code - Techniques6420 0% 15% 30%
  38. 38. Communicating about code Designing new features6 6 Unplanned Meetings Paper Whiteboard Planned Meetings External Docs Other Web Emails4 Internal docs 4 Visio Code editor IM Word processor Phone Bug Database Visual Other Designs2 20 0 0% 10% 20% 30% 0% 13% 27% 40%Understanding code - Tools Understanding code - Techniques6 Visual Studio Editor Debugger420 0% 15% 30%
  39. 39. Communicating about code Designing new features6 6 Unplanned Meetings Paper Whiteboard Planned Meetings External Docs Other Web Emails4 Internal docs 4 Visio Code editor IM Word processor Phone Bug Database Visual Other Designs2 20 0 0% 10% 20% 30% 0% 13% 27% 40%Understanding code - Tools Understanding code - Techniques6 Other Diff Visual Studio Editor Profiler Source Debugger4 SQL Insight Emacs VI Notepad SlickEdit20 0% 15% 30%
  40. 40. Communicating about code Designing new features6 6 Unplanned Meetings Paper Whiteboard Planned Meetings External Docs Other Web Emails4 Internal docs 4 Visio Code editor IM Word processor Phone Bug Database Visual Other Designs2 20 0 0% 10% 20% 30% 0% 13% 27% 40%Understanding code - Tools Understanding code - Techniques6 6 Other Diff Visual Studio Editor Profiler Source Debugger4 SQL Insight 4 Emacs VI Notepad SlickEdit2 20 0 0% 15% 30% 0% 15% 30% 45%
  41. 41. Communicating about code Designing new features6 6 Unplanned Meetings Paper Whiteboard Planned Meetings External Docs Other Web Emails4 Internal docs 4 Visio Code editor IM Word processor Phone Bug Database Visual Other Designs2 20 0 0% 10% 20% 30% 0% 13% 27% 40%Understanding code - Tools Understanding code - Techniques6 6 Other Diff Visual Studio Editor Profiler Reading Source Debugger code4 SQL Insight 4 Emacs VI Notepad SlickEdit2 20 0 0% 15% 30% 0% 15% 30% 45%
  42. 42. Communicating about code Designing new features6 6 Unplanned Meetings Paper Whiteboard Planned Meetings External Docs Other Web Emails4 Internal docs 4 Visio Code editor IM Word processor Phone Bug Database Visual Other Designs2 20 0 0% 10% 20% 30% 0% 13% 27% 40%Understanding code - Tools Understanding code - Techniques6 6 Trace Debugging Other Diff Visual Studio Editor statements Profiler Views Checkin messages Reading Source Debugger code4 SQL Insight 4 Running Emacs VI code Notepad Other SlickEdit2 20 0 0% 15% 30% 0% 15% 30% 45%
  43. 43. Communicating about code Designing new features6 6 Unplanned Meetings Paper Whiteboard Planned Meetings External Docs Other Web Emails4 Internal docs 4 Visio Code editor IM Word processor Phone Bug Database Visual Other Designs2 20 0 0% 10% 20% 30% 0% 13% 27% 40%Understanding code - Tools Understanding code - Techniques6 6 Trace Debugging Other Diff Visual Studio Editor statements Profiler Views Checkin messages Reading Source Debugger code4 SQL Insight 4 Running Emacs VI code Notepad Other SlickEdit2 20 0 0% 15% 30% 0% 15% 30% 45%
  44. 44. Communicating about code Designing new features6 6 Unplanned Meetings Paper Whiteboard Planned Meetings External Docs Other Web Emails4 Internal docs 4 Visio Code editor IM Word processor Phone Bug Database Visual Other Designs2 20 0 0% 10% 20% 30% 0% 13% 27% 40%Understanding code - Tools Understanding code - Techniques6 6 Trace Debugging Other Diff Visual Studio Editor statements Profiler Views Checkin messages Reading Source Debugger code4 SQL Insight 4 Running Emacs VI code Notepad Other SlickEdit2 20 0 0% 15% 30% 0% 15% 30% 45%
  45. 45. Communicating about code Designing new features6 6 Unplanned Meetings Paper Whiteboard Planned Meetings External Docs Other Web Emails4 Internal docs 4 Visio Code editor IM Word processor Phone Bug Database Visual Other Designs2 20 0% 10% 20% 30% IDE 0 0% 13% 27% 40%Understanding code - Tools Understanding code - Techniques6 6 Trace Debugging Other Diff Visual Studio Editor statements Profiler Views Checkin messages Reading Source Debugger code4 SQL Insight 4 Running Emacs VI code Notepad Other SlickEdit2 20 0 0% 15% 30% 0% 15% 30% 45%
  46. 46. Communicating about code Designing new features6 Unplanned Meetings Planned Meetings External Docs Web Emails4 IM Internal docs IDE Phone Bug Database Other20 0% 10% 20% 30%Understanding code - Tools Understanding code - Techniques6 6 Trace Debugging Other Diff Visual Studio Editor statements Profiler Views Checkin messages Reading Source Debugger code4 SQL Insight 4 Running Emacs VI code Notepad Other SlickEdit2 20 0 0% 15% 30% 0% 15% 30% 45%
  47. 47. Communicating about code Designing new features6 Unplanned Meetings Planned Meetings External Docs Web Emails4 IM Internal docs IDE Phone Bug Database Other20 0% 10% 20% 30%Understanding code - Tools Understanding code - Techniques6 Other Diff Visual Studio Editor Profiler Source Debugger4 SQL Insight IDE Emacs VI Notepad SlickEdit20 0% 15% 30%
  48. 48. Communicating about code Designing new features6 Unplanned Meetings Planned Meetings External Docs Web Emails4 IM Internal docs IDE Phone Bug Database Other20 0% 10% 20% 30%Understanding code - Tools Understanding code - Techniques IDE IDE
  49. 49. Drawbacks in using emails for program comprehension Separation fromInformation overload actual development
  50. 50. Recommendation systems for software engineering Robillard, Walker, Zimmermann [IEEE Software, 27(4), 2010]
  51. 51. I. A data-collection mechanism to store data and model artifacts. Recommendation systems for software engineering Robillard, Walker, Zimmermann [IEEE Software, 27(4), 2010]
  52. 52. I. A data-collection mechanism to store data and model artifacts.II. A recommendation engine to analyze the data and give output. Recommendation systems for software engineering Robillard, Walker, Zimmermann [IEEE Software, 27(4), 2010]
  53. 53. I. A data-collection mechanism to store data and model artifacts.II. A recommendation engine to analyze the data and give output.III. A user interface to trigger recommendations and show the results. Recommendation systems for software engineering Robillard, Walker, Zimmermann [IEEE Software, 27(4), 2010]
  54. 54. data-collection mechanism
  55. 55. data-collection mechanism
  56. 56. data-collection mechanism Email dataMBox
  57. 57. data-collection mechanism Email dataMBox
  58. 58. data-collection mechanism Email dataMBox
  59. 59. data-collection mechanism Email dataMBox
  60. 60. data-collection mechanism Email dataMBox
  61. 61. data-collection mechanism Email dataMBox
  62. 62. data-collection mechanism Email dataMBox
  63. 63. I. A data-collection mechanism to store data and model artifacts.II. A recommendation engine to analyze the data and give output.III. A user interface to trigger recommendations and show the results. Recommendation systems for software engineering Robillard, Walker, Zimmermann [IEEE Software, 27(4), 2010]
  64. 64. recommendation engine
  65. 65. recommendation engineMBox
  66. 66. recommendation engineMBox Linking E-Mails and Source Code Artifacts Bacchelli, Lanza, Robbes [ICSE 2010]
  67. 67. recommendation engineMBox Linking E-Mails and Source Code Artifacts Bacchelli, Lanza, Robbes [ICSE 2010]
  68. 68. recommendation engineMBox Linking E-Mails and Source Code Artifacts Bacchelli, Lanza, Robbes [ICSE 2010]
  69. 69. recommendation engineMBox Linking E-Mails and Source Code Artifacts Bacchelli, Lanza, Robbes [ICSE 2010]
  70. 70. I. A data-collection mechanism to store data and model artifacts.II. A recommendation engine to analyze the data and give output.III. A user interface to trigger recommendations and show the results. Recommendation systems for software engineering Robillard, Walker, Zimmermann [IEEE Software, 27(4), 2010]
  71. 71. user interface
  72. 72. user interface
  73. 73. user interface
  74. 74. user interface
  75. 75. user interface
  76. 76. user interface
  77. 77. user interface
  78. 78. user interface
  79. 79. user interface
  80. 80. user interface
  81. 81. user interface
  82. 82. user interface
  83. 83. user interface
  84. 84. Augmenting Program Comprehension with REmail
  85. 85. on program comprehension
  86. 86. on program comprehensionI. Finding Entry Points in a software system.
  87. 87. on program comprehensionI. Finding Entry Points in a software system.II. Conducting Software Evolution Analysis.
  88. 88. on program comprehensionI. Finding Entry Points in a software system.II. Conducting Software Evolution Analysis.III. Improving Expert Finding techniques.
  89. 89. on program comprehensionI. Finding Entry Points in a software system.II. Conducting Software Evolution Analysis.III. Improving Expert Finding techniques.IV. Recovering Additional Documentation about system’s entities.
  90. 90. on program comprehension The Freenet ProjectMailing List org.freenetproject.devl org.apache.mina.devEmails 22,859 21,079Classes 1,424 408
  91. 91. on program comprehensionI. Finding Entry Points in a software system.II. Conducting Software Evolution Analysis.III. Improving Expert Finding techniques.IV. Recovering Additional Documentation about system’s entities.
  92. 92. on Entry Points
  93. 93. on Entry Points
  94. 94. on Entry Points
  95. 95. on Entry Points The Freenet Project
  96. 96. on Entry Points The Freenet Project
  97. 97. on Entry Points The Freenet ProjectNode (74 emails).PacketSender (61 emails).PeerNode (67 emails).RequestClient (98 emails).
  98. 98. on Entry Points The Freenet ProjectNode (74 emails).PacketSender (61 emails).PeerNode (67 emails).RequestClient (98 emails).
  99. 99. on Entry Points The Freenet ProjectNode (74 emails). “Are you interested in implementing message priorities? MessageItemPacketSender (61 emails). and PacketSender are the most relevant classes.”PeerNode (67 emails). —Matthew Toseland, Main Freenet Developer, Jan 2008RequestClient (98 emails).
  100. 100. on Entry Points
  101. 101. on Entry Points IO Handler IO FilterChainMina IO Service Remote Peer IO FilterArchitecture IO Session
  102. 102. on Entry Points IO Handler IO FilterChainMina IO Service Remote Peer IO FilterArchitecture IO Session
  103. 103. on Entry Points IO Handler IO FilterChainMina IO Service Remote Peer IO FilterArchitecture IO SessionEmails
  104. 104. on Entry Points IO Handler IO FilterChainMina IO Service Remote Peer IO FilterArchitecture IO SessionEmails 1,139
  105. 105. on Entry Points IO Handler IO FilterChainMina IO Service Remote Peer IO FilterArchitecture IO SessionEmails 1,139 2,255 416 487 341
  106. 106. on Entry Points IO Handler IO FilterChainMina IO Service Remote Peer IO FilterArchitecture IO SessionEmails 1,139 2,255 416 487 341IOBuffer (541 emails)IOConnector (347 emails)ProtocolCodecFilter (1,010 emails)
  107. 107. on program comprehensionI. Finding Entry Points in a software system.II. Conducting Software Evolution Analysis.III. Improving Expert Finding techniques.IV. Recovering Additional Documentation about system’s entities.
  108. 108. on Software Evolution Analysis
  109. 109. on Software Evolution AnalysisSCM Data
  110. 110. on Software Evolution AnalysisSCM Data Email Data
  111. 111. on Software Evolution 2006 2007 2008 2009 2010 AvailablePortFinder Base64 CircularQueue ConcurrentHashSet CopyOnWriteMapDefaultExceptionMonitor ExceptionMonitor ExpirationListener ExpiringMap IdentityHashSetLazyInitializedCacheMap Related email thread Relevant change Trivial change Class addition
  112. 112. on Software Evolution 2006 2007 2008 2009 2010 AvailablePortFinder Base64 CircularQueue ConcurrentHashSet CopyOnWriteMapDefaultExceptionMonitor ExceptionMonitor ExpirationListener ExpiringMap IdentityHashSetLazyInitializedCacheMap Related email thread Relevant change Trivial change Class addition
  113. 113. on Software Evolution 2006 2007 2008 2009 2010 LazyInitializer Log4jXmlFormatter MapBackedSetNamePreservingRunnable SynchronizedQueue Transform Related email thread Relevant change Trivial change Class addition
  114. 114. on Software Evolution 2006 2007 2008 2009 2010 LazyInitializer Log4jXmlFormatter MapBackedSetNamePreservingRunnable SynchronizedQueue Transform Related email thread Relevant change Trivial change Class addition
  115. 115. on Software Evolution 2006 2007 2008 2009 2010 AvailablePortFinder Base64 CircularQueue ConcurrentHashSet CopyOnWriteMapDefaultExceptionMonitor ExceptionMonitor ExpirationListener ExpiringMap IdentityHashSetLazyInitializedCacheMap Related email thread Relevant change Trivial change Class addition
  116. 116. on Software Evolution 2006 2007 2008 2009 2010 AvailablePortFinder Base64 CircularQueue ConcurrentHashSet CopyOnWriteMapDefaultExceptionMonitor ExceptionMonitor ExpirationListener ExpiringMap IdentityHashSetLazyInitializedCacheMap Related email thread Relevant change Trivial change Class addition
  117. 117. on program comprehensionI. Finding Entry Points in a software system.II. Conducting Software Evolution Analysis.III. Improving Expert Finding techniques.IV. Recovering Additional Documentation about system’s entities.
  118. 118. on Expert Finding
  119. 119. on Expert FindingSCM Data
  120. 120. on Expert FindingSCM Data Email Data
  121. 121. on Expert FindingExceptionMonitor
  122. 122. on Expert FindingExceptionMonitor SCM Data
  123. 123. on Expert FindingExceptionMonitor Revision Date Author 995,776 Oct 2010 elecharny 900,040 Jan 2010 elecharny 783,334 Jan 2009 elecharny 774,593 May 2009 elecharny 678,335 Jul 2008 mwebb 671,827 Jun 2008 jvermillard SCM Data 576,217 Sep 2007 trustin 565,669 Aug 2007 trustin 555,855 Jul 2007 trustin 497,314 Jan 2007 trustin
  124. 124. on Expert FindingExceptionMonitor Revision Date Author 995,776 Oct 2010 elecharny 900,040 Jan 2010 elecharny 783,334 Jan 2009 elecharny 774,593 May 2009 elecharny 678,335 Jul 2008 mwebb 671,827 Jun 2008 jvermillard SCM Data 576,217 Sep 2007 trustin 565,669 Aug 2007 trustin 555,855 Jul 2007 trustin 497,314 Jan 2007 trustinExperts:
  125. 125. on Expert FindingExceptionMonitor Revision Date Author 995,776 Oct 2010 elecharny 900,040 Jan 2010 elecharny 783,334 Jan 2009 elecharny 774,593 May 2009 elecharny 678,335 Jul 2008 mwebb 671,827 Jun 2008 jvermillard SCM Data 576,217 Sep 2007 trustin 565,669 Aug 2007 trustin 555,855 Jul 2007 trustin 497,314 Jan 2007 trustinExperts: elecharny mwebb jvermillard trustin
  126. 126. on Expert FindingExceptionMonitorExperts: elecharny mwebb jvermillard trustin
  127. 127. on Expert FindingExceptionMonitor Email DataExperts: elecharny mwebb jvermillard trustin
  128. 128. on Expert FindingExceptionMonitor Email DataExperts: elecharny mwebb jvermillard trustin
  129. 129. on Expert FindingExceptionMonitor Email DataExperts: elecharny mwebb jvermillard trustin
  130. 130. on Expert FindingExceptionMonitor Email DataExperts: elecharny mwebb jvermillard trustin
  131. 131. on Expert FindingExceptionMonitor karasul Email DataExperts: elecharny mwebb jvermillard trustin
  132. 132. on Expert FindingExceptionMonitor Email DataExperts: elecharny mwebb jvermillard trustin karasul
  133. 133. on Expert FindingExceptionMonitor Email DataExperts: elecharny mwebb jvermillard trustin karasul
  134. 134. on Expert FindingExceptionMonitor Email DataExperts: elecharny mwebb jvermillard trustin karasul
  135. 135. on Expert FindingExceptionMonitor Email Data irvingExperts: elecharny mwebb jvermillard trustin karasul
  136. 136. on Expert FindingExceptionMonitor Email DataExperts: elecharny mwebb jvermillard trustin karasul irving
  137. 137. on program comprehensionI. Finding Entry Points in a software system.II. Conducting Software Evolution Analysis.III. Improving Expert Finding techniques.IV. Recovering Additional Documentation about system’s entities.
  138. 138. on Additional Documentation
  139. 139. on Additional DocumentationCircularQueue
  140. 140. on Additional DocumentationCircularQueue “unbounded circular queue based on array.” —CircularQueue, code comment
  141. 141. on Additional DocumentationCircularQueue
  142. 142. on Additional DocumentationCircularQueue “Even though ConcurrentLinkedQueue performs bad comparing to synchronized CircularQueue, the former is not only a comparable data structure, but it’s also thread safe, and tested. [We should] remove the CircularQueue from the code base.” — About CircularQueue, email thread
  143. 143. on program comprehensionI. Finding Entry Points in a software system.II. Conducting Software Evolution Analysis.III. Improving Expert Finding techniques.IV. Recovering Additional Documentation about system’s entities.
  144. 144. RTFM!
  145. 145. RTFM!(Read The Factual Mails)
  146. 146. RTFM! (Read The Factual Mails)http://code.google.com/p/r-email/

×