rtfm (read the factual mails) --augmenting program comprehension with remail

162
Augmenting Program Comprehension with REmail Alberto Bacchelli, Michele Lanza, Vitezslav Humpa REVEAL @ Faculty of Informatics University of Lugano, Switzerland

Upload: alberto-bacchelli

Post on 11-Nov-2014

413 views

Category:

Technology


0 download

DESCRIPTION

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

TRANSCRIPT

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

Augmenting Program Comprehension with REmail

Alberto Bacchelli, Michele Lanza, Vitezslav HumpaREVEAL @ Faculty of InformaticsUniversity of Lugano, Switzerland

Page 2: RTFM (Read The Factual Mails) --Augmenting Program Comprehension with REmail
Page 3: RTFM (Read The Factual Mails) --Augmenting Program Comprehension with REmail
Page 4: RTFM (Read The Factual Mails) --Augmenting Program Comprehension with REmail
Page 5: RTFM (Read The Factual Mails) --Augmenting Program Comprehension with REmail

Software maintenance impacts between 85% and 90% of the global cost of a system.Leveraging legacy system dollars for e-businessErlikh [IT Professional, 2(3), 2000]

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

Software maintenance impacts between 85% and 90% of the global cost of a system.Leveraging legacy system dollars for e-businessErlikh [IT Professional, 2(3), 2000]

Program comprehension takes up to 50%-60% of maintenance time.Program Understanding: Challenge for the 1990’sCorbi [IBM System Journal, 28(2), 1989]

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

Software maintenance impacts between 85% and 90% of the global cost of a system.Leveraging legacy system dollars for e-businessErlikh [IT Professional, 2(3), 2000]

Program comprehension takes up to 50%-60% of maintenance time.Program Understanding: Challenge for the 1990’sCorbi [IBM System Journal, 28(2), 1989]

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

Software maintenance impacts between 85% and 90% of the global cost of a system.Leveraging legacy system dollars for e-businessErlikh [IT Professional, 2(3), 2000]

Program comprehension takes up to 50%-60% of maintenance time.Program Understanding: Challenge for the 1990’sCorbi [IBM System Journal, 28(2), 1989]

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

Maintaining mental models: a study of developer work habitsLaToza, Venolia, DeLine [ICSE 2006]

Developers who need to understand code, and cannot find appropriate documentation, simply query other programmers.cannot find appropriate documentation

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

Why theyfor program comprehension?

cannot find appropriate documentation

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

Why theyfor program comprehension?

Superficial: Does not provide real context.

cannot find appropriate documentation

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

Why theyfor program comprehension?

Superficial: Does not provide real context.

Simplistic: Does not cover difficult cases.

cannot find appropriate documentation

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

Why theyfor program comprehension?

Superficial: Does not provide real context.

Simplistic: Does not cover difficult cases.

Narrow: Not all cases can be predicted.

cannot find appropriate documentation

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

Why theyfor 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.

cannot find appropriate documentation

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

Why theyfor 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:

cannot find appropriate documentation

Page 16: RTFM (Read The Factual Mails) --Augmenting Program Comprehension with REmail
Page 17: RTFM (Read The Factual Mails) --Augmenting Program Comprehension with REmail

Emails

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

Number of emails

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

Number of emails

Emails

0!

2000!

4000!

6000!

8000!

10000!

12000!

14000!

16000!

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!

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

Number of emails

13,657 Emails

0!

2000!

4000!

6000!

8000!

10000!

12000!

14000!

16000!

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!

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

Number of emails

13,657emails

Emails

emails

0!

2000!

4000!

6000!

8000!

10000!

12000!

14000!

16000!

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!

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

Number of emails

13,657emailsin one (1)

Emails

emails

0!

2000!

4000!

6000!

8000!

10000!

12000!

14000!

16000!

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!

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

Number of emails

13,657emailsin one (1)month.

Emails

emails

0!

2000!

4000!

6000!

8000!

10000!

12000!

14000!

16000!

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!

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

0!

2000!

4000!

6000!

8000!

10000!

12000!

14000!

16000!

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 are the“bread and butter ofproject communication.”—Karl Fogel, creator of Subversion

emailsEmails

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

0

1

2

3

4

5

6

0% 5% 10% 15% 20% 25% 30%

EmailsPlannedMeetings

UnplannedMeetings

Internal DocumentsBug Database

ExternalDocuments

Phone

Web

IM

Other

Effectiveness

Frequency of usage

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

EmailsPlannedMeetings

UnplannedMeetings

Internal DocumentsBug Database

ExternalDocuments

Phone

Web

IM

Other

Effectiveness

Frequency of usage

Emails are widely usedand highly effective

0

1

2

3

4

5

6

0% 5% 10% 15% 20% 25% 30%

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

Augmenting Program Comprehension with Emails

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

Drawbacks in using emails for program comprehension

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

Drawbacks in using emails for program comprehension

Information overload

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

Drawbacks in using emails for program comprehension

Information overload

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

Drawbacks in using emails for program comprehension

Information overload Separation fromactual development

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

Drawbacks in using emails for program comprehension

Information overload Separation fromactual development

Page 33: RTFM (Read The Factual Mails) --Augmenting Program Comprehension with REmail
Page 34: RTFM (Read The Factual Mails) --Augmenting Program Comprehension with REmail

0!

2000!

4000!

6000!

8000!

10000!

12000!

14000!

16000!

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!

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

0

2

4

6

0% 10% 20% 30%

Communicating about codeUnplanned Meetings

EmailsPlanned Meetings

Internal docsBug Database

Web External Docs

IM

OtherPhone

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

0

2

4

6

0% 10% 20% 30%

Communicating about code Designing new featuresUnplanned Meetings

EmailsPlanned Meetings

Internal docsBug Database

Web External Docs

IM

OtherPhone

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

0

2

4

6

0% 10% 20% 30%

Communicating about code Designing new features

Understanding code - Tools

Unplanned Meetings

EmailsPlanned Meetings

Internal docsBug Database

Web External Docs

IM

OtherPhone

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

0

2

4

6

0% 10% 20% 30%

Communicating about code Designing new features

Understanding code - Tools Understanding code - Techniques

Unplanned Meetings

EmailsPlanned Meetings

Internal docsBug Database

Web External Docs

IM

OtherPhone

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

0

2

4

6

0% 10% 20% 30%

Communicating about code

0

2

4

6

0% 13% 27% 40%

Designing new features

Understanding code - Tools Understanding code - Techniques

Unplanned Meetings

EmailsPlanned Meetings

Internal docsBug Database

Web External Docs

IM

OtherPhone

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

0

2

4

6

0% 10% 20% 30%

Communicating about code

0

2

4

6

0% 13% 27% 40%

Designing new features

Understanding code - Tools Understanding code - Techniques

Unplanned Meetings

EmailsPlanned Meetings

Internal docsBug Database

Web External Docs

IM

OtherPhone

Code editor

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

0

2

4

6

0% 10% 20% 30%

Communicating about code

0

2

4

6

0% 13% 27% 40%

Designing new features

Understanding code - Tools Understanding code - Techniques

Unplanned Meetings

EmailsPlanned Meetings

Internal docsBug Database

Web External Docs

IM

OtherPhone

Code editor

WhiteboardPaper

Word processorVisio

Other

VisualDesigns

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

0

2

4

6

0% 15% 30%

0

2

4

6

0% 10% 20% 30%

Communicating about code

0

2

4

6

0% 13% 27% 40%

Designing new features

Understanding code - Tools Understanding code - Techniques

Unplanned Meetings

EmailsPlanned Meetings

Internal docsBug Database

Web External Docs

IM

OtherPhone

Code editor

WhiteboardPaper

Word processorVisio

Other

VisualDesigns

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

0

2

4

6

0% 15% 30%

0

2

4

6

0% 10% 20% 30%

Communicating about code

0

2

4

6

0% 13% 27% 40%

Designing new features

Understanding code - Tools Understanding code - Techniques

Unplanned Meetings

EmailsPlanned Meetings

Internal docsBug Database

Web External Docs

IM

OtherPhone

Code editor

WhiteboardPaper

Word processorVisio

Other

VisualDesigns

Debugger

Visual Studio Editor

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

0

2

4

6

0% 15% 30%

0

2

4

6

0% 10% 20% 30%

Communicating about code

0

2

4

6

0% 13% 27% 40%

Designing new features

Understanding code - Tools Understanding code - Techniques

Unplanned Meetings

EmailsPlanned Meetings

Internal docsBug Database

Web External Docs

IM

OtherPhone

Code editor

WhiteboardPaper

Word processorVisio

Other

VisualDesigns

Debugger

Visual Studio Editor

SourceInsight

DiffOther

VI

ProfilerSQL

EmacsNotepad

SlickEdit

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

0

2

4

6

0% 15% 30%

0

2

4

6

0% 10% 20% 30%

Communicating about code

0

2

4

6

0% 13% 27% 40%

Designing new features

Understanding code - Tools

0

2

4

6

0% 15% 30% 45%

Understanding code - Techniques

Unplanned Meetings

EmailsPlanned Meetings

Internal docsBug Database

Web External Docs

IM

OtherPhone

Code editor

WhiteboardPaper

Word processorVisio

Other

VisualDesigns

Debugger

Visual Studio Editor

SourceInsight

DiffOther

VI

ProfilerSQL

EmacsNotepad

SlickEdit

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

0

2

4

6

0% 15% 30%

0

2

4

6

0% 10% 20% 30%

Communicating about code

0

2

4

6

0% 13% 27% 40%

Designing new features

Understanding code - Tools

0

2

4

6

0% 15% 30% 45%

Understanding code - Techniques

Unplanned Meetings

EmailsPlanned Meetings

Internal docsBug Database

Web External Docs

IM

OtherPhone

Code editor

WhiteboardPaper

Word processorVisio

Other

VisualDesigns

Debugger

Visual Studio Editor

SourceInsight

DiffOther

VI

ProfilerSQL

EmacsNotepad

SlickEdit

Readingcode

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

0

2

4

6

0% 15% 30%

0

2

4

6

0% 10% 20% 30%

Communicating about code

0

2

4

6

0% 13% 27% 40%

Designing new features

Understanding code - Tools

0

2

4

6

0% 15% 30% 45%

Understanding code - Techniques

Unplanned Meetings

EmailsPlanned Meetings

Internal docsBug Database

Web External Docs

IM

OtherPhone

Code editor

WhiteboardPaper

Word processorVisio

Other

VisualDesigns

Debugger

Visual Studio Editor

SourceInsight

DiffOther

VI

ProfilerSQL

EmacsNotepad

SlickEdit

Readingcode

Debugging

Checkin messages

Tracestatements

Runningcode

Other

Views

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

0

2

4

6

0% 10% 20% 30%

Communicating about codeUnplanned Meetings

EmailsPlanned Meetings

Internal docsBug Database

Web External Docs

IM

OtherPhone

0

2

4

6

0% 13% 27% 40%

Designing new features

Code editor

WhiteboardPaper

Word processorVisio

Other

VisualDesigns

0

2

4

6

0% 15% 30%

Understanding code - Tools

Debugger

Visual Studio Editor

SourceInsight

DiffOther

VI

ProfilerSQL

EmacsNotepad

SlickEdit

0

2

4

6

0% 15% 30% 45%

Understanding code - Techniques

Readingcode

Debugging

Checkin messages

Tracestatements

Runningcode

Other

Views

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

0

2

4

6

0% 10% 20% 30%

Communicating about codeUnplanned Meetings

EmailsPlanned Meetings

Internal docsBug Database

Web External Docs

IM

OtherPhone

0

2

4

6

0% 13% 27% 40%

Designing new features

Code editor

WhiteboardPaper

Word processorVisio

Other

VisualDesigns

0

2

4

6

0% 15% 30%

Understanding code - Tools

Debugger

Visual Studio Editor

SourceInsight

DiffOther

VI

ProfilerSQL

EmacsNotepad

SlickEdit

0

2

4

6

0% 15% 30% 45%

Understanding code - Techniques

Readingcode

Debugging

Checkin messages

Tracestatements

Runningcode

Other

Views

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

0

2

4

6

0% 10% 20% 30%

Communicating about codeUnplanned Meetings

EmailsPlanned Meetings

Internal docsBug Database

Web External Docs

IM

OtherPhone

0

2

4

6

0% 13% 27% 40%

Designing new features

Code editor

WhiteboardPaper

Word processorVisio

Other

VisualDesigns

0

2

4

6

0% 15% 30%

Understanding code - Tools

Debugger

Visual Studio Editor

SourceInsight

DiffOther

VI

ProfilerSQL

EmacsNotepad

SlickEdit

0

2

4

6

0% 15% 30% 45%

Understanding code - Techniques

Readingcode

Debugging

Checkin messages

Tracestatements

Runningcode

Other

Views

IDE

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

0

2

4

6

0% 10% 20% 30%

Communicating about codeUnplanned Meetings

EmailsPlanned Meetings

Internal docsBug Database

Web External Docs

IM

OtherPhone

Designing new features

0

2

4

6

0% 15% 30%

Understanding code - Tools

Debugger

Visual Studio Editor

SourceInsight

DiffOther

VI

ProfilerSQL

EmacsNotepad

SlickEdit

0

2

4

6

0% 15% 30% 45%

Understanding code - Techniques

Readingcode

Debugging

Checkin messages

Tracestatements

Runningcode

Other

Views

IDE

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

0

2

4

6

0% 10% 20% 30%

Communicating about codeUnplanned Meetings

EmailsPlanned Meetings

Internal docsBug Database

Web External Docs

IM

OtherPhone

Designing new features

0

2

4

6

0% 15% 30%

Understanding code - Tools

Debugger

Visual Studio Editor

SourceInsight

DiffOther

VI

ProfilerSQL

EmacsNotepad

SlickEdit

Understanding code - Techniques

IDE

IDE

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

0

2

4

6

0% 10% 20% 30%

Communicating about codeUnplanned Meetings

EmailsPlanned Meetings

Internal docsBug Database

Web External Docs

IM

OtherPhone

Designing new features

Understanding code - Tools Understanding code - Techniques

IDE

IDEIDE

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

Drawbacks in using emails for program comprehension

Information overload Separation fromactual development

Page 55: RTFM (Read The Factual Mails) --Augmenting Program Comprehension with REmail
Page 56: RTFM (Read The Factual Mails) --Augmenting Program Comprehension with REmail

Recommendation systems for software engineeringRobillard, Walker, Zimmermann [IEEE Software, 27(4), 2010]

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

Recommendation systems for software engineeringRobillard, Walker, Zimmermann [IEEE Software, 27(4), 2010]

I. A data-collection mechanism to store data and model artifacts.data-collection mechanism

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

Recommendation systems for software engineeringRobillard, Walker, Zimmermann [IEEE Software, 27(4), 2010]

I. A data-collection mechanism to store data and model artifacts.

II. A recommendation engine to analyze the data and give output.

data-collection mechanism

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

Recommendation systems for software engineeringRobillard, Walker, Zimmermann [IEEE Software, 27(4), 2010]

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.

data-collection mechanism

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

data-collection mechanism

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

data-collection mechanism

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

Email data

data-collection mechanism

MBox

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

Email data

data-collection mechanism

MBox

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

Email data

data-collection mechanism

MBox

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

Email data

data-collection mechanism

MBox

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

Email data

data-collection mechanism

MBox

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

Email data

data-collection mechanism

MBox

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

Email data

data-collection mechanism

MBox

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

Recommendation systems for software engineeringRobillard, Walker, Zimmermann [IEEE Software, 27(4), 2010]

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 engine

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

recommendation engine

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

recommendation engine

MBox

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

recommendation engine

Linking E-Mails and Source Code ArtifactsBacchelli, Lanza, Robbes [ICSE 2010]

MBox

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

recommendation engine

Linking E-Mails and Source Code ArtifactsBacchelli, Lanza, Robbes [ICSE 2010]

MBox

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

recommendation engine

Linking E-Mails and Source Code ArtifactsBacchelli, Lanza, Robbes [ICSE 2010]

MBox

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

recommendation engine

Linking E-Mails and Source Code ArtifactsBacchelli, Lanza, Robbes [ICSE 2010]

MBox

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

Recommendation systems for software engineeringRobillard, Walker, Zimmermann [IEEE Software, 27(4), 2010]

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.user interface

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

user interface

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

user interface

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

user interface

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

user interface

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

user interface

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

user interface

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

user interface

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

user interface

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

user interface

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

user interface

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

user interface

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

user interface

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

user interface

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

Augmenting Program Comprehension with REmail

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

on program comprehension

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

on program comprehension

I. Finding Entry Points in a software system.Entry Points

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

on program comprehension

I. Finding Entry Points in a software system.

II. Conducting Software Evolution Analysis.

Entry Points

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

on program comprehension

I. Finding Entry Points in a software system.

II. Conducting Software Evolution Analysis.

III. Improving Expert Finding techniques.

Entry Points

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

on program comprehension

I. 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.

Entry Points

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

Mailing List

Classes

Emails

org.freenetproject.devl org.apache.mina.dev

22,859 21,079

1,424 408

on program comprehension

The Freenet Project

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

I. 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.

Entry Points

on program comprehension

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

on Entry Points

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

on Entry Points

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

on Entry Points

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

on Entry PointsThe Freenet Project

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

on Entry PointsThe Freenet Project

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

on Entry PointsThe Freenet Project

Node (74 emails).

PacketSender (61 emails).

PeerNode (67 emails).

RequestClient (98 emails).

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

on Entry PointsThe Freenet Project

Node (74 emails).

PacketSender (61 emails).

PeerNode (67 emails).

RequestClient (98 emails).

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

on Entry PointsThe Freenet Project

Node (74 emails).

PacketSender (61 emails).

PeerNode (67 emails).

RequestClient (98 emails).

“Are you interested in implementing message priorities? MessageItem and PacketSender are the most relevant classes.”

—Matthew Toseland, Main Freenet Developer, Jan 2008

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

on Entry Points

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

on Entry Points

MinaArchitecture

IO FilterChain

IO ServiceIO Filter

IO Handler

Remote PeerIO Session

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

MinaArchitecture

IO FilterChain

IO ServiceIO Filter

IO Handler

Remote PeerIO Session

on Entry Points

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

MinaArchitecture

IO FilterChain

IO ServiceIO Filter

IO Handler

Remote PeerIO Session

on Entry Points

Emails

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

MinaArchitecture

IO FilterChain

IO ServiceIO Filter

IO Handler

Remote PeerIO Session

on Entry Points

1,139Emails

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

MinaArchitecture

IO FilterChain

IO ServiceIO Filter

IO Handler

Remote PeerIO Session

on Entry Points

1,139 2,255Emails 416 487 341

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

MinaArchitecture

IO FilterChain

IO ServiceIO Filter

IO Handler

Remote PeerIO Session

on Entry Points

1,139 2,255Emails 416 487 341

IOBuffer (541 emails)

IOConnector (347 emails)

ProtocolCodecFilter (1,010 emails)

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

I. 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.

on program comprehension

Software Evolution Analysis

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

on Software Evolution Analysis

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

on Software Evolution Analysis

SCM Data

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

on Software Evolution Analysis

SCM Data Email Data

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

on Software Evolution

AvailablePortFinder

Base64

CircularQueue

ConcurrentHashSet

CopyOnWriteMap

DefaultExceptionMonitor

ExceptionMonitor

ExpirationListener

ExpiringMap

IdentityHashSet

LazyInitializedCacheMap

2006 2007 2008 2009 2010

Related email thread Class additionRelevant change Trivial change

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

on Software Evolution

AvailablePortFinder

Base64

CircularQueue

ConcurrentHashSet

CopyOnWriteMap

DefaultExceptionMonitor

ExceptionMonitor

ExpirationListener

ExpiringMap

IdentityHashSet

LazyInitializedCacheMap

2006 2007 2008 2009 2010

Related email thread Class additionRelevant change Trivial change

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

on Software Evolution

LazyInitializer

Log4jXmlFormatter

MapBackedSet

NamePreservingRunnable

SynchronizedQueue

Transform

2006 2007 2008 2009 2010

Related email thread Class additionRelevant change Trivial change

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

on Software Evolution

LazyInitializer

Log4jXmlFormatter

MapBackedSet

NamePreservingRunnable

SynchronizedQueue

Transform

2006 2007 2008 2009 2010

Related email thread Class additionRelevant change Trivial change

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

on Software Evolution

AvailablePortFinder

Base64

CircularQueue

ConcurrentHashSet

CopyOnWriteMap

DefaultExceptionMonitor

ExceptionMonitor

ExpirationListener

ExpiringMap

IdentityHashSet

LazyInitializedCacheMap

2006 2007 2008 2009 2010

Related email thread Class additionRelevant change Trivial change

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

on Software Evolution

AvailablePortFinder

Base64

CircularQueue

ConcurrentHashSet

CopyOnWriteMap

DefaultExceptionMonitor

ExceptionMonitor

ExpirationListener

ExpiringMap

IdentityHashSet

LazyInitializedCacheMap

2006 2007 2008 2009 2010

Related email thread Class additionRelevant change Trivial change

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

I. 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.

on program comprehension

Expert Finding

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

on Expert Finding

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

on

SCM Data

Expert Finding

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

on

SCM Data Email Data

Expert Finding

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

on Expert Finding

ExceptionMonitor

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

on

SCM Data

Expert Finding

ExceptionMonitor

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

Revision Date Author995,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

576,217 Sep 2007 trustin

565,669 Aug 2007 trustin

555,855 Jul 2007 trustin

497,314 Jan 2007 trustin

on

SCM Data

Expert Finding

ExceptionMonitor

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

on

SCM Data

Expert Finding

Revision Date Author995,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

576,217 Sep 2007 trustin

565,669 Aug 2007 trustin

555,855 Jul 2007 trustin

497,314 Jan 2007 trustin

ExceptionMonitor

elecharny

mwebb

jvermillard

trustin

Experts:

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

on

SCM Data

Expert Finding

Revision Date Author995,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

576,217 Sep 2007 trustin

565,669 Aug 2007 trustin

555,855 Jul 2007 trustin

497,314 Jan 2007 trustin

ExceptionMonitor

elecharny mwebb jvermillard trustinExperts:

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

on Expert Finding

ExceptionMonitor

Experts: elecharny mwebb jvermillard trustin

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

on Expert Finding

ExceptionMonitor

Experts: elecharny mwebb jvermillard trustin

Email Data

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

on Expert Finding

ExceptionMonitor

Experts: elecharny mwebb jvermillard trustin

Email Data

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

on Expert Finding

ExceptionMonitor

Experts: elecharny mwebb jvermillard trustin

Email Data

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

on Expert Finding

ExceptionMonitor

Experts: elecharny mwebb jvermillard trustin

Email Data

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

on Expert Finding

ExceptionMonitor

Experts: elecharny mwebb jvermillard trustin

Email Data

karasul

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

on Expert Finding

ExceptionMonitor

Experts: elecharny mwebb jvermillard trustin

Email Data

karasul

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

on Expert Finding

ExceptionMonitor

Experts: elecharny mwebb jvermillard trustin

Email Data

karasul

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

on Expert Finding

ExceptionMonitor

Experts: elecharny mwebb jvermillard trustin

Email Data

karasul

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

on Expert Finding

ExceptionMonitor

Experts: elecharny mwebb jvermillard trustin

Email Data

karasul

irving

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

on Expert Finding

ExceptionMonitor

Experts: elecharny mwebb jvermillard trustin

Email Data

karasul irving

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

I. 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.

on program comprehension

Additional Documentation

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

on Additional Documentation

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

on Additional Documentation

CircularQueue

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

on Additional Documentation

CircularQueue

“unbounded circular queue based on array.”

—CircularQueue, code comment

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

on Additional Documentation

CircularQueue

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

on Additional Documentation

CircularQueue

“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

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

I. 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.

on program comprehension

Additional Documentation

Page 150: RTFM (Read The Factual Mails) --Augmenting Program Comprehension with REmail
Page 151: RTFM (Read The Factual Mails) --Augmenting Program Comprehension with REmail
Page 152: RTFM (Read The Factual Mails) --Augmenting Program Comprehension with REmail
Page 153: RTFM (Read The Factual Mails) --Augmenting Program Comprehension with REmail
Page 154: RTFM (Read The Factual Mails) --Augmenting Program Comprehension with REmail
Page 155: RTFM (Read The Factual Mails) --Augmenting Program Comprehension with REmail
Page 156: RTFM (Read The Factual Mails) --Augmenting Program Comprehension with REmail
Page 157: RTFM (Read The Factual Mails) --Augmenting Program Comprehension with REmail
Page 158: RTFM (Read The Factual Mails) --Augmenting Program Comprehension with REmail
Page 159: RTFM (Read The Factual Mails) --Augmenting Program Comprehension with REmail
Page 160: RTFM (Read The Factual Mails) --Augmenting Program Comprehension with REmail

RTFM!

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

RTFM!(Read The Factual Mails)

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

RTFM!(Read The Factual Mails)

http://code.google.com/p/r-email/