SlideShare a Scribd company logo
1 of 51
Download to read offline
Quantifying
Program Comprehension
with Interaction Data
Roberto Minelli, Andrea Mocci & Michele Lanza
REVEAL @ Faculty of Informatics
University of Lugano, Switzerland
@robertominelli
Takashi Kobayashi
Department of Computer Science
Tokyo Institute of Technology, Japan
IDEs
IDEs
Read
IDEs
Read
Write
IDEs
Read
Understand
Write
s
Understand
one of the
most challenging tasks
absorbs the
50% of the time
Read
Write
s
developer spend more time
reading than writing
navigation
occupies a significant amount of time
vs.
s
How much time is effectively
spent on comprehension?
s
?How much time is effectively
spent on comprehension
50%
80%
60%
s
?How much time is effectively
spent on comprehension
50%
80%
60%
s
?How much time is effectively
spent on comprehension
50%
80%
60%
Interaction
data
Interaction
data
IDEIDE
Interaction
data
IDEIDE
Navigation
Interaction
data
IDEIDE
Navigation
Edit
Interaction
data
IDE
Profiler
IDE
ProfilerNavigation
InspectionEdit
IDE
Profiler
IDE
Profiler
Java
PLOG
Eclipse
SmallTalk
DFLOW
Pharo
Java SmallTalk
15 sessions
15 developers
4,000 events
All enhancement sessions
175 sessions
7 developers
110,000+ events
Various types of session
N N E N I N
t1 t2 t3 t4 t5 t6
NR
t1 t2 t3 t4 t5 t6
NR NW NR NR NW
Java SmallTalk
15 sessions
15 developers
4,000 events
All enhancement sessions
175 sessions
7 developers
110,000+ events
Various types of session
N N E N I N
t1 t2 t3 t4 t5 t6
N N E N I N
t1 t2 t3 t4 t5 t6
NR
t1 t2 t3 t4 t5 t6
NR NW NR NR NWNR
t1 t2 t3 t4 t5 t6
NR NW NR NR NWE E
Java SmallTalk
15 sessions
15 developers
4,000 events
All enhancement sessions
175 sessions
7 developers
110,000+ events
Various types of session
N N E N I N
t1 t2 t3 t4 t5 t6
N N E N I N
t1 t2 t3 t4 t5 t6
NR
t1 t2 t3 t4 t5 t6
NR NW NR NR NWNR
t1 t2 t3 t4 t5 t6
NR NW NR NR NWE E
Estimation Model for
Java Interactions
Estimation Model for
Smalltalk Interactions
Estimation Model for
Java Interactions
NR
t1 t2 t3 t4 t5 t6
NR NW NR NR NW
Raw Interaction History
Estimation Model for
Java Interactions
NR
t1 t2 t3 t4 t5 t6
NR NW NR NR NW
N
t1 t2 t3 t4 t5 t6
N NW N N NW
Raw Interaction History
Step 1: Navigation ∆N
Estimation Model for
Java Interactions
NR
t1 t2 t3 t4 t5 t6
NR NW NR NR NW
N
t1 t2 t3 t4 t5 t6
N NW N N NW
N
t1 t2 t3 t4 t5 t6
N N N N NE E
Raw Interaction History
Step 1: Navigation
Step 2: Edit
∆N
PE
Estimation Model for
Java Interactions
NR
t1 t2 t3 t4 t5 t6
NR NW NR NR NW
N
t1 t2 t3 t4 t5 t6
N NW N N NW
N
t1 t2 t3 t4 t5 t6
N N N N NE E
N
t1 t2 t3 t4 t5 t6
N N N N NE E
Raw Interaction History
Step 1: Navigation
Step 2: Edit
Step 3: Understanding
∆N
PE
Estimation Model for
Smalltalk Interactions Raw Interaction History
N N E N I N
t1 t2 t3 t4 t5 t6
Raw Interaction History
Step 1: Navigation
N N E N I N
t1 t2 t3 t4 t5 t6
N N E N I N
t1 t2 t3 t4 t5 t6
∆N
Estimation Model for
Smalltalk Interactions
Raw Interaction History
Step 1: Navigation
Step 2: Edit
N N E N I N
t1 t2 t3 t4 t5 t6
N N E N I N
t1 t2 t3 t4 t5 t6
N N E N I N
t1 t2 t3 t4 t5 t6
∆N
PE
Estimation Model for
Smalltalk Interactions
Raw Interaction History
Step 1: Navigation
Step 2: Edit
Step 3: Inspection
N N E N I N
t1 t2 t3 t4 t5 t6
N N E N I N
t1 t2 t3 t4 t5 t6
N N E N I N
t1 t2 t3 t4 t5 t6
N N E N I N
t1 t2 t3 t4 t5 t6
∆N
PE
PI
Estimation Model for
Smalltalk Interactions
Raw Interaction History
Step 1: Navigation
Step 2: Edit
Step 3: Inspection
N N E N I N
t1 t2 t3 t4 t5 t6
N N E N I N
t1 t2 t3 t4 t5 t6
N N E N I N
t1 t2 t3 t4 t5 t6
N N E N I N
t1 t2 t3 t4 t5 t6
N N E N I N
t1 t2 t3 t4 t5 t6
Step 4: Understanding
∆N
PE
PI
Estimation Model for
Smalltalk Interactions
Degrees of Freedom and Understanding
Estimation Model for
Java Interactions
Estimation Model for
Smalltalk Interactions
∆N, PE ∆N, PE, PI
Degrees of Freedom and Understanding
Estimation Model for
Java Interactions
Estimation Model for
Smalltalk Interactions
∆N, PE ∆N, PE, PI
∆N = 1 second
Degrees of Freedom and Understanding
Estimation Model for
Java Interactions
Estimation Model for
Smalltalk Interactions
The most pessimistic estimate is shown in the bottom right
cell of the table, and corresponds to PE = PI = 90%. In
this case understanding amounts to 54% of time, which is
slightly above the upper-bound of previous estimates [3], [6],
[24]. The most optimistic estimate is on the top-left cell of
the table, corresponding to PE = PI = 10%: In this case,
understanding consumes around 88% of the time of developers,
which is significantly above previous estimates. Obviously,
more accurate estimates lay between these two quite unrealistic
extremes, and they are shown in the other cells of the table.
It appears very likely that actual time spent by developers in
program understanding has been underestimated by previous
research by at least 10-20%.
Table VI shows similar results in the case of Java develop-
ment sessions recorded by PLOG. In this case, since the tool
did not record inspection events, the only parameter to vary is
PE. Pessimistic and optimistic estimates for program under-
standing are similar to the case of DFLOW, suggesting similar
considerations about the time spent in program understanding.
TABLE VI: Amount of Understanding in Java Sessions
Varying the Estimate of PE
PE 0.10 0.25 0.50 0.75 0.90
94.33% 87.13% 75.12% 63.11% 55.91%
V. RESULTS
Tables VII, VIII, and IX summarize the distribution of
development activities for all the recorded sessions in the
case of DFLOW and PLOG. For each development activity,
we calculate the average of the percentage of time spent by
developers in each activity.
As we pointed out in the previous section, program under-
standing is a dominant activity, as it accounts, on average, from
54 to 94% of the total development time in each session. The
values are similar despite the profound difference in the way
developers produce Java and Smalltalk code. This suggests that
NAV EDI INS UND
%
10%
20%
30%
40%
Fig. 14: Development Activities for All Sessions.
Note: inspect (INS) applies only to Smalltalk sessions.
Role of session types. While in interaction histories
collected by DFLOW and PLOG program understanding is
dominant in both cases, there is difference ranging from
2% to 6% depending on the estimates of parameters, as
shown in Table VII. On all the Smalltalk sessions, program
understanding ranges from 54 to 88% while on Java sessions
these bounds range from 56 to 94%. A possible interpretation
of this difference can be found in the fact that PLOG sessions
were all enhancement sessions, while the sessions we collected
with DFLOW are of different type and include, for example,
bug-fixing and refactoring sessions.
Table VII shows the different distribution of the duration of
development activities per session type in the case of Smalltalk
sessions collected by DFLOW.
The role of understanding is still dominant in all session
types: However, there is some significant difference in the
distribution of editing and navigation activities. Refactoring
sessions, for example, have a high understanding compo-
nent and make minimal use of inspection activities (0.2-
1.7%). While program understanding does not appear to be
significantly different between session types, there are some
differences on the distribution of other activities. Enhancement
and Bug Fixing sessions spend significant time on inspection
(around 10%), while Enhancement and Refactoring sessions
spend more time on editing.
Understanding
56% to 94%
discuss how the results of our quantification model change by
varying these parameters, obtaining possible lower and upper
bounds to the amount of time spent in program understanding.
Table V shows how the amount of program understanding
changes by varying PE and PI in the case of Smalltalk
development sessions collected by DFLOW.
TABLE V: Amount of Understanding in Smalltalk Sessions
Varying the Estimates of PE and PI
PI
PE
0.10 0.25 0.50 0.75 0.90
0.10 88.44% 83.74% 75.87% 67.94% 63.16%
0.25 86.17% 81.63% 73.97% 66.20% 61.46%
0.50 82.34% 78.02% 70.71% 63.24% 58.62%
0.75 78.46% 74.28% 67.28% 60.16% 55.73%
0.90 76.10% 71.97% 65.09% 58.16% 53.93%
The most pessimistic estimate is shown in the bottom right
cell of the table, and corresponds to PE = PI = 90%. In
this case understanding amounts to 54% of time, which is
slightly above the upper-bound of previous estimates [3], [6],
[24]. The most optimistic estimate is on the top-left cell of
the table, corresponding to PE = PI = 10%: In this case,
understanding consumes around 88% of the time of developers,
which is significantly above previous estimates. Obviously,
more accurate estimates lay between these two quite unrealistic
unde
deve
likel
F
the a
diffe
emer
activ
%oftimespent
Degrees of Freedom and Understanding
Understanding
54% to 88%
Estimation Model for
Java Interactions
Estimation Model for
Smalltalk Interactions
The most pessimistic estimate is shown in the bottom right
cell of the table, and corresponds to PE = PI = 90%. In
this case understanding amounts to 54% of time, which is
slightly above the upper-bound of previous estimates [3], [6],
[24]. The most optimistic estimate is on the top-left cell of
the table, corresponding to PE = PI = 10%: In this case,
understanding consumes around 88% of the time of developers,
which is significantly above previous estimates. Obviously,
more accurate estimates lay between these two quite unrealistic
extremes, and they are shown in the other cells of the table.
It appears very likely that actual time spent by developers in
program understanding has been underestimated by previous
research by at least 10-20%.
Table VI shows similar results in the case of Java develop-
ment sessions recorded by PLOG. In this case, since the tool
did not record inspection events, the only parameter to vary is
PE. Pessimistic and optimistic estimates for program under-
standing are similar to the case of DFLOW, suggesting similar
considerations about the time spent in program understanding.
TABLE VI: Amount of Understanding in Java Sessions
Varying the Estimate of PE
PE 0.10 0.25 0.50 0.75 0.90
94.33% 87.13% 75.12% 63.11% 55.91%
V. RESULTS
Tables VII, VIII, and IX summarize the distribution of
development activities for all the recorded sessions in the
case of DFLOW and PLOG. For each development activity,
we calculate the average of the percentage of time spent by
developers in each activity.
As we pointed out in the previous section, program under-
standing is a dominant activity, as it accounts, on average, from
54 to 94% of the total development time in each session. The
values are similar despite the profound difference in the way
developers produce Java and Smalltalk code. This suggests that
NAV EDI INS UND
%
10%
20%
30%
40%
Fig. 14: Development Activities for All Sessions.
Note: inspect (INS) applies only to Smalltalk sessions.
Role of session types. While in interaction histories
collected by DFLOW and PLOG program understanding is
dominant in both cases, there is difference ranging from
2% to 6% depending on the estimates of parameters, as
shown in Table VII. On all the Smalltalk sessions, program
understanding ranges from 54 to 88% while on Java sessions
these bounds range from 56 to 94%. A possible interpretation
of this difference can be found in the fact that PLOG sessions
were all enhancement sessions, while the sessions we collected
with DFLOW are of different type and include, for example,
bug-fixing and refactoring sessions.
Table VII shows the different distribution of the duration of
development activities per session type in the case of Smalltalk
sessions collected by DFLOW.
The role of understanding is still dominant in all session
types: However, there is some significant difference in the
distribution of editing and navigation activities. Refactoring
sessions, for example, have a high understanding compo-
nent and make minimal use of inspection activities (0.2-
1.7%). While program understanding does not appear to be
significantly different between session types, there are some
differences on the distribution of other activities. Enhancement
and Bug Fixing sessions spend significant time on inspection
(around 10%), while Enhancement and Refactoring sessions
spend more time on editing.
Understanding
56% to 94%
Role of Session Types
TABLE VII: Development Activities per Session Type.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1
Type N (%) E (%) I (%) U (%)
Min Med Max Min Med Max Min Med Max
DFLOW: Smalltalk
Enhancement 7.8% 30.6% 17.4% 3.6% 13.4% 7.8% 1.7% 48.2% 67.0% 86.9%
Refactoring 9.1% 30.4% 16.9% 3.4% 1.7% 0.9% 0.2% 58.9% 73.1% 87.3%
General 6.2% 21.3% 12.1% 2.5% 9.5% 5.5% 1.2% 63.0% 76.2% 90.1%
Bug Fixing 4.6% 25.5% 14.5% 3.0% 17.4% 10.0% 2.1% 52.6% 70.9% 90.3%
All 6.8% 26.9% 15.3% 3.2% 12.3% 7.2% 1.6% 54.0% 70.7% 88.4%
PLOG: Java
All 0.9% 43.2% 24.0% 4.8% – – – 55.9% 75.1% 94.3%
TABLE VIII: Smalltalk Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1
Developer N (%) E (%) I (%) U (%)
Min Med Max Min Med Max Min Med Max
SD1 5.1% 30.9% 17.6% 3.6% 13.7% 8.0% 1.7% 50.3% 69.4% 89.5%
SD2 8.9% 21.6% 12.1% 2.4% 20.3% 11.3% 2.3% 49.2% 67.7% 86.4%
SD3 8.0% 30.2% 17.0% 3.5% 5.6% 3.3% 0.7% 56.2% 71.8% 87.9%
SD4 8.5% 26.5% 15.1% 3.1% 12.8% 7.4% 1.6% 52.2% 69.0% 86.8%
SD5 4.6% 16.8% 9.7% 2.1% 9.3% 5.6% 1.3% 69.4% 80.1% 92.1%
SD6 8.4% 10.5% 6.0% 1.2% 10.5% 6.0% 1.2% 70.6% 79.6% 89.1%
SD7 5.7% 22.3% 12.6% 2.6% 10.5% 6.1% 1.3% 61.5% 75.6% 90.4%
Role of Session TypesTABLE VII: Development Activities per Session Type.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1
Type N (%) E (%) I (%) U (%)
Min Med Max Min Med Max Min Med Max
DFLOW: Smalltalk
Enhancement 7.8% 30.6% 17.4% 3.6% 13.4% 7.8% 1.7% 48.2% 67.0% 86.9%
Refactoring 9.1% 30.4% 16.9% 3.4% 1.7% 0.9% 0.2% 58.9% 73.1% 87.3%
General 6.2% 21.3% 12.1% 2.5% 9.5% 5.5% 1.2% 63.0% 76.2% 90.1%
Bug Fixing 4.6% 25.5% 14.5% 3.0% 17.4% 10.0% 2.1% 52.6% 70.9% 90.3%
All 6.8% 26.9% 15.3% 3.2% 12.3% 7.2% 1.6% 54.0% 70.7% 88.4%
PLOG: Java
All 0.9% 43.2% 24.0% 4.8% – – – 55.9% 75.1% 94.3%
TABLE VIII: Smalltalk Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1
Developer N (%) E (%) I (%) U (%)
Min Med Max Min Med Max Min Med Max
SD1 5.1% 30.9% 17.6% 3.6% 13.7% 8.0% 1.7% 50.3% 69.4% 89.5%
SD2 8.9% 21.6% 12.1% 2.4% 20.3% 11.3% 2.3% 49.2% 67.7% 86.4%
SD3 8.0% 30.2% 17.0% 3.5% 5.6% 3.3% 0.7% 56.2% 71.8% 87.9%
SD4 8.5% 26.5% 15.1% 3.1% 12.8% 7.4% 1.6% 52.2% 69.0% 86.8%
SD5 4.6% 16.8% 9.7% 2.1% 9.3% 5.6% 1.3% 69.4% 80.1% 92.1%
SD6 8.4% 10.5% 6.0% 1.2% 10.5% 6.0% 1.2% 70.6% 79.6% 89.1%
SD7 5.7% 22.3% 12.6% 2.6% 10.5% 6.1% 1.3% 61.5% 75.6% 90.4%
deduce diverse “profiles”: SD3 has a tendency towards more
navigation and editing, and less understanding. In essence he
could be characterized as more “aggressive” towards the code
base. Similarly, SD2 spends almost the same amount of time on
navigation, but distributes almost equally the remaining time
between editing and inspection, being thus more “cautious”
and she probably frequently verifies the implemented changes.
SD5 and SD6 are even more cautious, denoted by their high
understanding values. In essence they reflect more on the code
before they change it. SD3 however is making very little use of
TABLE IX: Java Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5,
and Max: PE = 0.1 and PI = 0.1
Dev. N (%) E (%) U (%)
Min Med Max Min Med Max
JD1 0.5% 60.2% 33.4% 6.68% 39.3% 66.0% 92.78%
JD2 0.8% 20.3% 11.3% 2.25% 78.8% 87.9% 96.90%
JD3 0.8% 52.5% 29.1% 5.83% 46.8% 70.1% 93.41%
JD4 1.3% 32.0% 17.8% 3.56% 66.6% 80.9% 95.12%
JD5 0.7% 68.7% 38.2% 7.63% 30.6% 61.1% 91.64%
Program understanding
does not appear to be significantly different
between session types
Role of Session TypesTABLE VII: Development Activities per Session Type.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1
Type N (%) E (%) I (%) U (%)
Min Med Max Min Med Max Min Med Max
DFLOW: Smalltalk
Enhancement 7.8% 30.6% 17.4% 3.6% 13.4% 7.8% 1.7% 48.2% 67.0% 86.9%
Refactoring 9.1% 30.4% 16.9% 3.4% 1.7% 0.9% 0.2% 58.9% 73.1% 87.3%
General 6.2% 21.3% 12.1% 2.5% 9.5% 5.5% 1.2% 63.0% 76.2% 90.1%
Bug Fixing 4.6% 25.5% 14.5% 3.0% 17.4% 10.0% 2.1% 52.6% 70.9% 90.3%
All 6.8% 26.9% 15.3% 3.2% 12.3% 7.2% 1.6% 54.0% 70.7% 88.4%
PLOG: Java
All 0.9% 43.2% 24.0% 4.8% – – – 55.9% 75.1% 94.3%
TABLE VIII: Smalltalk Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1
Developer N (%) E (%) I (%) U (%)
Min Med Max Min Med Max Min Med Max
SD1 5.1% 30.9% 17.6% 3.6% 13.7% 8.0% 1.7% 50.3% 69.4% 89.5%
SD2 8.9% 21.6% 12.1% 2.4% 20.3% 11.3% 2.3% 49.2% 67.7% 86.4%
SD3 8.0% 30.2% 17.0% 3.5% 5.6% 3.3% 0.7% 56.2% 71.8% 87.9%
SD4 8.5% 26.5% 15.1% 3.1% 12.8% 7.4% 1.6% 52.2% 69.0% 86.8%
SD5 4.6% 16.8% 9.7% 2.1% 9.3% 5.6% 1.3% 69.4% 80.1% 92.1%
SD6 8.4% 10.5% 6.0% 1.2% 10.5% 6.0% 1.2% 70.6% 79.6% 89.1%
SD7 5.7% 22.3% 12.6% 2.6% 10.5% 6.1% 1.3% 61.5% 75.6% 90.4%
deduce diverse “profiles”: SD3 has a tendency towards more
navigation and editing, and less understanding. In essence he
could be characterized as more “aggressive” towards the code
base. Similarly, SD2 spends almost the same amount of time on
navigation, but distributes almost equally the remaining time
between editing and inspection, being thus more “cautious”
and she probably frequently verifies the implemented changes.
SD5 and SD6 are even more cautious, denoted by their high
understanding values. In essence they reflect more on the code
before they change it. SD3 however is making very little use of
TABLE IX: Java Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5,
and Max: PE = 0.1 and PI = 0.1
Dev. N (%) E (%) U (%)
Min Med Max Min Med Max
JD1 0.5% 60.2% 33.4% 6.68% 39.3% 66.0% 92.78%
JD2 0.8% 20.3% 11.3% 2.25% 78.8% 87.9% 96.90%
JD3 0.8% 52.5% 29.1% 5.83% 46.8% 70.1% 93.41%
JD4 1.3% 32.0% 17.8% 3.56% 66.6% 80.9% 95.12%
JD5 0.7% 68.7% 38.2% 7.63% 30.6% 61.1% 91.64%
Refactoringsessions
make minimaluse of
inspection activities
Role of Session TypesTABLE VII: Development Activities per Session Type.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1
Type N (%) E (%) I (%) U (%)
Min Med Max Min Med Max Min Med Max
DFLOW: Smalltalk
Enhancement 7.8% 30.6% 17.4% 3.6% 13.4% 7.8% 1.7% 48.2% 67.0% 86.9%
Refactoring 9.1% 30.4% 16.9% 3.4% 1.7% 0.9% 0.2% 58.9% 73.1% 87.3%
General 6.2% 21.3% 12.1% 2.5% 9.5% 5.5% 1.2% 63.0% 76.2% 90.1%
Bug Fixing 4.6% 25.5% 14.5% 3.0% 17.4% 10.0% 2.1% 52.6% 70.9% 90.3%
All 6.8% 26.9% 15.3% 3.2% 12.3% 7.2% 1.6% 54.0% 70.7% 88.4%
PLOG: Java
All 0.9% 43.2% 24.0% 4.8% – – – 55.9% 75.1% 94.3%
TABLE VIII: Smalltalk Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1
Developer N (%) E (%) I (%) U (%)
Min Med Max Min Med Max Min Med Max
SD1 5.1% 30.9% 17.6% 3.6% 13.7% 8.0% 1.7% 50.3% 69.4% 89.5%
SD2 8.9% 21.6% 12.1% 2.4% 20.3% 11.3% 2.3% 49.2% 67.7% 86.4%
SD3 8.0% 30.2% 17.0% 3.5% 5.6% 3.3% 0.7% 56.2% 71.8% 87.9%
SD4 8.5% 26.5% 15.1% 3.1% 12.8% 7.4% 1.6% 52.2% 69.0% 86.8%
SD5 4.6% 16.8% 9.7% 2.1% 9.3% 5.6% 1.3% 69.4% 80.1% 92.1%
SD6 8.4% 10.5% 6.0% 1.2% 10.5% 6.0% 1.2% 70.6% 79.6% 89.1%
SD7 5.7% 22.3% 12.6% 2.6% 10.5% 6.1% 1.3% 61.5% 75.6% 90.4%
deduce diverse “profiles”: SD3 has a tendency towards more
navigation and editing, and less understanding. In essence he
could be characterized as more “aggressive” towards the code
base. Similarly, SD2 spends almost the same amount of time on
navigation, but distributes almost equally the remaining time
between editing and inspection, being thus more “cautious”
and she probably frequently verifies the implemented changes.
SD5 and SD6 are even more cautious, denoted by their high
understanding values. In essence they reflect more on the code
before they change it. SD3 however is making very little use of
TABLE IX: Java Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5,
and Max: PE = 0.1 and PI = 0.1
Dev. N (%) E (%) U (%)
Min Med Max Min Med Max
JD1 0.5% 60.2% 33.4% 6.68% 39.3% 66.0% 92.78%
JD2 0.8% 20.3% 11.3% 2.25% 78.8% 87.9% 96.90%
JD3 0.8% 52.5% 29.1% 5.83% 46.8% 70.1% 93.41%
JD4 1.3% 32.0% 17.8% 3.56% 66.6% 80.9% 95.12%
JD5 0.7% 68.7% 38.2% 7.63% 30.6% 61.1% 91.64%
Enhancementand Bug-Fixing
make more use of
inspection activities
Role of Session TypesTABLE VII: Development Activities per Session Type.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1
Type N (%) E (%) I (%) U (%)
Min Med Max Min Med Max Min Med Max
DFLOW: Smalltalk
Enhancement 7.8% 30.6% 17.4% 3.6% 13.4% 7.8% 1.7% 48.2% 67.0% 86.9%
Refactoring 9.1% 30.4% 16.9% 3.4% 1.7% 0.9% 0.2% 58.9% 73.1% 87.3%
General 6.2% 21.3% 12.1% 2.5% 9.5% 5.5% 1.2% 63.0% 76.2% 90.1%
Bug Fixing 4.6% 25.5% 14.5% 3.0% 17.4% 10.0% 2.1% 52.6% 70.9% 90.3%
All 6.8% 26.9% 15.3% 3.2% 12.3% 7.2% 1.6% 54.0% 70.7% 88.4%
PLOG: Java
All 0.9% 43.2% 24.0% 4.8% – – – 55.9% 75.1% 94.3%
TABLE VIII: Smalltalk Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1
Developer N (%) E (%) I (%) U (%)
Min Med Max Min Med Max Min Med Max
SD1 5.1% 30.9% 17.6% 3.6% 13.7% 8.0% 1.7% 50.3% 69.4% 89.5%
SD2 8.9% 21.6% 12.1% 2.4% 20.3% 11.3% 2.3% 49.2% 67.7% 86.4%
SD3 8.0% 30.2% 17.0% 3.5% 5.6% 3.3% 0.7% 56.2% 71.8% 87.9%
SD4 8.5% 26.5% 15.1% 3.1% 12.8% 7.4% 1.6% 52.2% 69.0% 86.8%
SD5 4.6% 16.8% 9.7% 2.1% 9.3% 5.6% 1.3% 69.4% 80.1% 92.1%
SD6 8.4% 10.5% 6.0% 1.2% 10.5% 6.0% 1.2% 70.6% 79.6% 89.1%
SD7 5.7% 22.3% 12.6% 2.6% 10.5% 6.1% 1.3% 61.5% 75.6% 90.4%
deduce diverse “profiles”: SD3 has a tendency towards more
navigation and editing, and less understanding. In essence he
could be characterized as more “aggressive” towards the code
base. Similarly, SD2 spends almost the same amount of time on
navigation, but distributes almost equally the remaining time
between editing and inspection, being thus more “cautious”
and she probably frequently verifies the implemented changes.
SD5 and SD6 are even more cautious, denoted by their high
understanding values. In essence they reflect more on the code
before they change it. SD3 however is making very little use of
TABLE IX: Java Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5,
and Max: PE = 0.1 and PI = 0.1
Dev. N (%) E (%) U (%)
Min Med Max Min Med Max
JD1 0.5% 60.2% 33.4% 6.68% 39.3% 66.0% 92.78%
JD2 0.8% 20.3% 11.3% 2.25% 78.8% 87.9% 96.90%
JD3 0.8% 52.5% 29.1% 5.83% 46.8% 70.1% 93.41%
JD4 1.3% 32.0% 17.8% 3.56% 66.6% 80.9% 95.12%
JD5 0.7% 68.7% 38.2% 7.63% 30.6% 61.1% 91.64%
Enhancementand Refactoring
spend more time in
editing activities
Developer Diversity
Enhancement 7.8% 30.6% 17.4% 3.6% 13.4% 7.8% 1.7% 48.2% 67.0% 86.9%
Refactoring 9.1% 30.4% 16.9% 3.4% 1.7% 0.9% 0.2% 58.9% 73.1% 87.3%
General 6.2% 21.3% 12.1% 2.5% 9.5% 5.5% 1.2% 63.0% 76.2% 90.1%
Bug Fixing 4.6% 25.5% 14.5% 3.0% 17.4% 10.0% 2.1% 52.6% 70.9% 90.3%
All 6.8% 26.9% 15.3% 3.2% 12.3% 7.2% 1.6% 54.0% 70.7% 88.4%
PLOG: Java
All 0.9% 43.2% 24.0% 4.8% – – – 55.9% 75.1% 94.3%
TABLE VIII: Smalltalk Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1
Developer N (%) E (%) I (%) U (%)
Min Med Max Min Med Max Min Med Max
SD1 5.1% 30.9% 17.6% 3.6% 13.7% 8.0% 1.7% 50.3% 69.4% 89.5%
SD2 8.9% 21.6% 12.1% 2.4% 20.3% 11.3% 2.3% 49.2% 67.7% 86.4%
SD3 8.0% 30.2% 17.0% 3.5% 5.6% 3.3% 0.7% 56.2% 71.8% 87.9%
SD4 8.5% 26.5% 15.1% 3.1% 12.8% 7.4% 1.6% 52.2% 69.0% 86.8%
SD5 4.6% 16.8% 9.7% 2.1% 9.3% 5.6% 1.3% 69.4% 80.1% 92.1%
SD6 8.4% 10.5% 6.0% 1.2% 10.5% 6.0% 1.2% 70.6% 79.6% 89.1%
SD7 5.7% 22.3% 12.6% 2.6% 10.5% 6.1% 1.3% 61.5% 75.6% 90.4%
deduce diverse “profiles”: SD3 has a tendency towards more
navigation and editing, and less understanding. In essence he
could be characterized as more “aggressive” towards the code
base. Similarly, SD2 spends almost the same amount of time on
navigation, but distributes almost equally the remaining time
between editing and inspection, being thus more “cautious”
and she probably frequently verifies the implemented changes.
SD5 and SD6 are even more cautious, denoted by their high
understanding values. In essence they reflect more on the code
before they change it. SD3 however is making very little use of
inspecting, which is a preferred activity of skilled developers.
SD1 and SD3 have the highest editing and the among the
lowest understanding values. In essence, they seem to be at
ease with the code base and confidently change it without the
need to rely on extensive navigation.
Table IX lists the relative importance of the activities
for each Java developer. Again we can infer some developer
“profiles”. For example JD8 took a short time to implement the
changes, but has high understanding and low editing (refer to
Table IV for durations). JD2 and JD14 have a similar behavior
but they took more time to implement the task. We can say that
JD8 is someone who thinks deeply about what to do, and then
TABLE IX: Java Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5,
and Max: PE = 0.1 and PI = 0.1
Dev. N (%) E (%) U (%)
Min Med Max Min Med Max
JD1 0.5% 60.2% 33.4% 6.68% 39.3% 66.0% 92.78%
JD2 0.8% 20.3% 11.3% 2.25% 78.8% 87.9% 96.90%
JD3 0.8% 52.5% 29.1% 5.83% 46.8% 70.1% 93.41%
JD4 1.3% 32.0% 17.8% 3.56% 66.6% 80.9% 95.12%
JD5 0.7% 68.7% 38.2% 7.63% 30.6% 61.1% 91.64%
JD6 1.0% 40.7% 22.6% 4.52% 58.3% 76.4% 94.46%
JD7 0.9% 62.1% 34.5% 6.90% 37.0% 64.6% 92.22%
JD8 1.1% 24.9% 13.8% 2.76% 74.0% 85.1% 96.19%
JD9 0.7% 28.3% 15.7% 3.14% 71.0% 83.5% 96.13%
JD10 0.9% 34.1% 18.9% 3.79% 65.0% 80.2% 95.32%
JD11 0.9% 27.6% 15.4% 3.07% 71.5% 83.8% 96.05%
JD12 0.8% 49.1% 27.3% 5.46% 50.0% 71.9% 93.71%
JD13 0.7% 75.2% 41.8% 8.35% 24.2% 57.6% 90.98%
JD14 1.2% 22.4% 12.4% 2.48% 76.4% 86.4% 96.32%
JD15 0.7% 50.1% 27.9% 5.57% 49.1% 71.4% 93.72%
A. Threats to Validity
TABLE VIII: Smalltalk Development Activities per Developer.
9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1
E (%) I (%) U (%)
Min Med Max Min Med Max Min Med Max
30.9% 17.6% 3.6% 13.7% 8.0% 1.7% 50.3% 69.4% 89.5%
21.6% 12.1% 2.4% 20.3% 11.3% 2.3% 49.2% 67.7% 86.4%
30.2% 17.0% 3.5% 5.6% 3.3% 0.7% 56.2% 71.8% 87.9%
26.5% 15.1% 3.1% 12.8% 7.4% 1.6% 52.2% 69.0% 86.8%
16.8% 9.7% 2.1% 9.3% 5.6% 1.3% 69.4% 80.1% 92.1%
10.5% 6.0% 1.2% 10.5% 6.0% 1.2% 70.6% 79.6% 89.1%
22.3% 12.6% 2.6% 10.5% 6.1% 1.3% 61.5% 75.6% 90.4%
3 has a tendency towards more
ss understanding. In essence he
e “aggressive” towards the code
most the same amount of time on
most equally the remaining time
on, being thus more “cautious”
erifies the implemented changes.
cautious, denoted by their high
ce they reflect more on the code
wever is making very little use of
ed activity of skilled developers.
est editing and the among the
In essence, they seem to be at
onfidently change it without the
igation.
ve importance of the activities
n we can infer some developer
ok a short time to implement the
anding and low editing (refer to
nd JD14 have a similar behavior
plement the task. We can say that
TABLE IX: Java Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5,
and Max: PE = 0.1 and PI = 0.1
Dev. N (%) E (%) U (%)
Min Med Max Min Med Max
JD1 0.5% 60.2% 33.4% 6.68% 39.3% 66.0% 92.78%
JD2 0.8% 20.3% 11.3% 2.25% 78.8% 87.9% 96.90%
JD3 0.8% 52.5% 29.1% 5.83% 46.8% 70.1% 93.41%
JD4 1.3% 32.0% 17.8% 3.56% 66.6% 80.9% 95.12%
JD5 0.7% 68.7% 38.2% 7.63% 30.6% 61.1% 91.64%
JD6 1.0% 40.7% 22.6% 4.52% 58.3% 76.4% 94.46%
JD7 0.9% 62.1% 34.5% 6.90% 37.0% 64.6% 92.22%
JD8 1.1% 24.9% 13.8% 2.76% 74.0% 85.1% 96.19%
JD9 0.7% 28.3% 15.7% 3.14% 71.0% 83.5% 96.13%
JD10 0.9% 34.1% 18.9% 3.79% 65.0% 80.2% 95.32%
JD11 0.9% 27.6% 15.4% 3.07% 71.5% 83.8% 96.05%
JD12 0.8% 49.1% 27.3% 5.46% 50.0% 71.9% 93.71%
JD13 0.7% 75.2% 41.8% 8.35% 24.2% 57.6% 90.98%
JD14 1.2% 22.4% 12.4% 2.48% 76.4% 86.4% 96.32%
JD15 0.7% 50.1% 27.9% 5.57% 49.1% 71.4% 93.72%
Developer Diversity
PLOG: Java
All 0.9% 43.2% 24.0% 4.8% – – – 55.9% 75.1% 94.3%
TABLE VIII: Smalltalk Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1
Developer N (%) E (%) I (%) U (%)
Min Med Max Min Med Max Min Med Max
SD1 5.1% 30.9% 17.6% 3.6% 13.7% 8.0% 1.7% 50.3% 69.4% 89.5%
SD2 8.9% 21.6% 12.1% 2.4% 20.3% 11.3% 2.3% 49.2% 67.7% 86.4%
SD3 8.0% 30.2% 17.0% 3.5% 5.6% 3.3% 0.7% 56.2% 71.8% 87.9%
SD4 8.5% 26.5% 15.1% 3.1% 12.8% 7.4% 1.6% 52.2% 69.0% 86.8%
SD5 4.6% 16.8% 9.7% 2.1% 9.3% 5.6% 1.3% 69.4% 80.1% 92.1%
SD6 8.4% 10.5% 6.0% 1.2% 10.5% 6.0% 1.2% 70.6% 79.6% 89.1%
SD7 5.7% 22.3% 12.6% 2.6% 10.5% 6.1% 1.3% 61.5% 75.6% 90.4%
deduce diverse “profiles”: SD3 has a tendency towards more
navigation and editing, and less understanding. In essence he
could be characterized as more “aggressive” towards the code
base. Similarly, SD2 spends almost the same amount of time on
navigation, but distributes almost equally the remaining time
between editing and inspection, being thus more “cautious”
and she probably frequently verifies the implemented changes.
SD5 and SD6 are even more cautious, denoted by their high
understanding values. In essence they reflect more on the code
before they change it. SD3 however is making very little use of
inspecting, which is a preferred activity of skilled developers.
SD1 and SD3 have the highest editing and the among the
lowest understanding values. In essence, they seem to be at
ease with the code base and confidently change it without the
need to rely on extensive navigation.
Table IX lists the relative importance of the activities
for each Java developer. Again we can infer some developer
“profiles”. For example JD8 took a short time to implement the
changes, but has high understanding and low editing (refer to
Table IV for durations). JD2 and JD14 have a similar behavior
but they took more time to implement the task. We can say that
JD8 is someone who thinks deeply about what to do, and then
TABLE IX: Java Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5,
and Max: PE = 0.1 and PI = 0.1
Dev. N (%) E (%) U (%)
Min Med Max Min Med Max
JD1 0.5% 60.2% 33.4% 6.68% 39.3% 66.0% 92.78%
JD2 0.8% 20.3% 11.3% 2.25% 78.8% 87.9% 96.90%
JD3 0.8% 52.5% 29.1% 5.83% 46.8% 70.1% 93.41%
JD4 1.3% 32.0% 17.8% 3.56% 66.6% 80.9% 95.12%
JD5 0.7% 68.7% 38.2% 7.63% 30.6% 61.1% 91.64%
JD6 1.0% 40.7% 22.6% 4.52% 58.3% 76.4% 94.46%
JD7 0.9% 62.1% 34.5% 6.90% 37.0% 64.6% 92.22%
JD8 1.1% 24.9% 13.8% 2.76% 74.0% 85.1% 96.19%
JD9 0.7% 28.3% 15.7% 3.14% 71.0% 83.5% 96.13%
JD10 0.9% 34.1% 18.9% 3.79% 65.0% 80.2% 95.32%
JD11 0.9% 27.6% 15.4% 3.07% 71.5% 83.8% 96.05%
JD12 0.8% 49.1% 27.3% 5.46% 50.0% 71.9% 93.71%
JD13 0.7% 75.2% 41.8% 8.35% 24.2% 57.6% 90.98%
JD14 1.2% 22.4% 12.4% 2.48% 76.4% 86.4% 96.32%
JD15 0.7% 50.1% 27.9% 5.57% 49.1% 71.4% 93.72%
A. Threats to Validity
SD3 is aggressive
prefers to navigate and edit than understand
Developer Diversity
PLOG: Java
All 0.9% 43.2% 24.0% 4.8% – – – 55.9% 75.1% 94.3%
TABLE VIII: Smalltalk Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1
Developer N (%) E (%) I (%) U (%)
Min Med Max Min Med Max Min Med Max
SD1 5.1% 30.9% 17.6% 3.6% 13.7% 8.0% 1.7% 50.3% 69.4% 89.5%
SD2 8.9% 21.6% 12.1% 2.4% 20.3% 11.3% 2.3% 49.2% 67.7% 86.4%
SD3 8.0% 30.2% 17.0% 3.5% 5.6% 3.3% 0.7% 56.2% 71.8% 87.9%
SD4 8.5% 26.5% 15.1% 3.1% 12.8% 7.4% 1.6% 52.2% 69.0% 86.8%
SD5 4.6% 16.8% 9.7% 2.1% 9.3% 5.6% 1.3% 69.4% 80.1% 92.1%
SD6 8.4% 10.5% 6.0% 1.2% 10.5% 6.0% 1.2% 70.6% 79.6% 89.1%
SD7 5.7% 22.3% 12.6% 2.6% 10.5% 6.1% 1.3% 61.5% 75.6% 90.4%
deduce diverse “profiles”: SD3 has a tendency towards more
navigation and editing, and less understanding. In essence he
could be characterized as more “aggressive” towards the code
base. Similarly, SD2 spends almost the same amount of time on
navigation, but distributes almost equally the remaining time
between editing and inspection, being thus more “cautious”
and she probably frequently verifies the implemented changes.
SD5 and SD6 are even more cautious, denoted by their high
understanding values. In essence they reflect more on the code
before they change it. SD3 however is making very little use of
inspecting, which is a preferred activity of skilled developers.
SD1 and SD3 have the highest editing and the among the
lowest understanding values. In essence, they seem to be at
ease with the code base and confidently change it without the
need to rely on extensive navigation.
Table IX lists the relative importance of the activities
for each Java developer. Again we can infer some developer
“profiles”. For example JD8 took a short time to implement the
changes, but has high understanding and low editing (refer to
Table IV for durations). JD2 and JD14 have a similar behavior
but they took more time to implement the task. We can say that
JD8 is someone who thinks deeply about what to do, and then
TABLE IX: Java Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5,
and Max: PE = 0.1 and PI = 0.1
Dev. N (%) E (%) U (%)
Min Med Max Min Med Max
JD1 0.5% 60.2% 33.4% 6.68% 39.3% 66.0% 92.78%
JD2 0.8% 20.3% 11.3% 2.25% 78.8% 87.9% 96.90%
JD3 0.8% 52.5% 29.1% 5.83% 46.8% 70.1% 93.41%
JD4 1.3% 32.0% 17.8% 3.56% 66.6% 80.9% 95.12%
JD5 0.7% 68.7% 38.2% 7.63% 30.6% 61.1% 91.64%
JD6 1.0% 40.7% 22.6% 4.52% 58.3% 76.4% 94.46%
JD7 0.9% 62.1% 34.5% 6.90% 37.0% 64.6% 92.22%
JD8 1.1% 24.9% 13.8% 2.76% 74.0% 85.1% 96.19%
JD9 0.7% 28.3% 15.7% 3.14% 71.0% 83.5% 96.13%
JD10 0.9% 34.1% 18.9% 3.79% 65.0% 80.2% 95.32%
JD11 0.9% 27.6% 15.4% 3.07% 71.5% 83.8% 96.05%
JD12 0.8% 49.1% 27.3% 5.46% 50.0% 71.9% 93.71%
JD13 0.7% 75.2% 41.8% 8.35% 24.2% 57.6% 90.98%
JD14 1.2% 22.4% 12.4% 2.48% 76.4% 86.4% 96.32%
JD15 0.7% 50.1% 27.9% 5.57% 49.1% 71.4% 93.72%
A. Threats to Validity
SD2 is cautious
equally distributed editing and inspection
Developer Diversity
PLOG: Java
All 0.9% 43.2% 24.0% 4.8% – – – 55.9% 75.1% 94.3%
TABLE VIII: Smalltalk Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1
Developer N (%) E (%) I (%) U (%)
Min Med Max Min Med Max Min Med Max
SD1 5.1% 30.9% 17.6% 3.6% 13.7% 8.0% 1.7% 50.3% 69.4% 89.5%
SD2 8.9% 21.6% 12.1% 2.4% 20.3% 11.3% 2.3% 49.2% 67.7% 86.4%
SD3 8.0% 30.2% 17.0% 3.5% 5.6% 3.3% 0.7% 56.2% 71.8% 87.9%
SD4 8.5% 26.5% 15.1% 3.1% 12.8% 7.4% 1.6% 52.2% 69.0% 86.8%
SD5 4.6% 16.8% 9.7% 2.1% 9.3% 5.6% 1.3% 69.4% 80.1% 92.1%
SD6 8.4% 10.5% 6.0% 1.2% 10.5% 6.0% 1.2% 70.6% 79.6% 89.1%
SD7 5.7% 22.3% 12.6% 2.6% 10.5% 6.1% 1.3% 61.5% 75.6% 90.4%
deduce diverse “profiles”: SD3 has a tendency towards more
navigation and editing, and less understanding. In essence he
could be characterized as more “aggressive” towards the code
base. Similarly, SD2 spends almost the same amount of time on
navigation, but distributes almost equally the remaining time
between editing and inspection, being thus more “cautious”
and she probably frequently verifies the implemented changes.
SD5 and SD6 are even more cautious, denoted by their high
understanding values. In essence they reflect more on the code
before they change it. SD3 however is making very little use of
inspecting, which is a preferred activity of skilled developers.
SD1 and SD3 have the highest editing and the among the
lowest understanding values. In essence, they seem to be at
ease with the code base and confidently change it without the
need to rely on extensive navigation.
Table IX lists the relative importance of the activities
for each Java developer. Again we can infer some developer
“profiles”. For example JD8 took a short time to implement the
changes, but has high understanding and low editing (refer to
Table IV for durations). JD2 and JD14 have a similar behavior
but they took more time to implement the task. We can say that
JD8 is someone who thinks deeply about what to do, and then
TABLE IX: Java Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5,
and Max: PE = 0.1 and PI = 0.1
Dev. N (%) E (%) U (%)
Min Med Max Min Med Max
JD1 0.5% 60.2% 33.4% 6.68% 39.3% 66.0% 92.78%
JD2 0.8% 20.3% 11.3% 2.25% 78.8% 87.9% 96.90%
JD3 0.8% 52.5% 29.1% 5.83% 46.8% 70.1% 93.41%
JD4 1.3% 32.0% 17.8% 3.56% 66.6% 80.9% 95.12%
JD5 0.7% 68.7% 38.2% 7.63% 30.6% 61.1% 91.64%
JD6 1.0% 40.7% 22.6% 4.52% 58.3% 76.4% 94.46%
JD7 0.9% 62.1% 34.5% 6.90% 37.0% 64.6% 92.22%
JD8 1.1% 24.9% 13.8% 2.76% 74.0% 85.1% 96.19%
JD9 0.7% 28.3% 15.7% 3.14% 71.0% 83.5% 96.13%
JD10 0.9% 34.1% 18.9% 3.79% 65.0% 80.2% 95.32%
JD11 0.9% 27.6% 15.4% 3.07% 71.5% 83.8% 96.05%
JD12 0.8% 49.1% 27.3% 5.46% 50.0% 71.9% 93.71%
JD13 0.7% 75.2% 41.8% 8.35% 24.2% 57.6% 90.98%
JD14 1.2% 22.4% 12.4% 2.48% 76.4% 86.4% 96.32%
JD15 0.7% 50.1% 27.9% 5.57% 49.1% 71.4% 93.72%
A. Threats to Validity
SD1 and 3 are the pros
high editing and low understanding values
Developer Diversity
3 has a tendency towards more
ss understanding. In essence he
e “aggressive” towards the code
most the same amount of time on
most equally the remaining time
on, being thus more “cautious”
erifies the implemented changes.
cautious, denoted by their high
ce they reflect more on the code
wever is making very little use of
d activity of skilled developers.
est editing and the among the
In essence, they seem to be at
onfidently change it without the
gation.
e importance of the activities
n we can infer some developer
ok a short time to implement the
anding and low editing (refer to
nd JD14 have a similar behavior
lement the task. We can say that
eply about what to do, and then
3 is at the opposite end of the
editing time, with relatively high
eloper who meanders heavily in
implements the changes.
ce of program understanding has
ding is all the more relevant as
nd programming languages. We
nt insight that corroborates the
roaches and tools that deal with
everse engineering.
TABLE IX: Java Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5,
and Max: PE = 0.1 and PI = 0.1
Dev. N (%) E (%) U (%)
Min Med Max Min Med Max
JD1 0.5% 60.2% 33.4% 6.68% 39.3% 66.0% 92.78%
JD2 0.8% 20.3% 11.3% 2.25% 78.8% 87.9% 96.90%
JD3 0.8% 52.5% 29.1% 5.83% 46.8% 70.1% 93.41%
JD4 1.3% 32.0% 17.8% 3.56% 66.6% 80.9% 95.12%
JD5 0.7% 68.7% 38.2% 7.63% 30.6% 61.1% 91.64%
JD6 1.0% 40.7% 22.6% 4.52% 58.3% 76.4% 94.46%
JD7 0.9% 62.1% 34.5% 6.90% 37.0% 64.6% 92.22%
JD8 1.1% 24.9% 13.8% 2.76% 74.0% 85.1% 96.19%
JD9 0.7% 28.3% 15.7% 3.14% 71.0% 83.5% 96.13%
JD10 0.9% 34.1% 18.9% 3.79% 65.0% 80.2% 95.32%
JD11 0.9% 27.6% 15.4% 3.07% 71.5% 83.8% 96.05%
JD12 0.8% 49.1% 27.3% 5.46% 50.0% 71.9% 93.71%
JD13 0.7% 75.2% 41.8% 8.35% 24.2% 57.6% 90.98%
JD14 1.2% 22.4% 12.4% 2.48% 76.4% 86.4% 96.32%
JD15 0.7% 50.1% 27.9% 5.57% 49.1% 71.4% 93.72%
A. Threats to Validity
Construct Validity. We record interaction data in terms of
events in the IDE with their timestamp. We devised a model to
estimate the duration of activities: A threat to validity for our
results is the accuracy of this model, that may not precisely
capture, for example, the moment when editing activities start.
To get a more accurate model to estimate activity durations,
one should record more fine-grained interaction data and
corresponding events. However, in Section IV-C we described
how even varying the degrees of freedoms the essence of this
paper remains true.
JD8 is a thinker
fast but with high understanding and low editing
Developer Diversity
JD13 is super cautious
high amount of editing, with high navigation time
3 has a tendency towards more
ss understanding. In essence he
e “aggressive” towards the code
most the same amount of time on
most equally the remaining time
on, being thus more “cautious”
erifies the implemented changes.
cautious, denoted by their high
ce they reflect more on the code
wever is making very little use of
d activity of skilled developers.
est editing and the among the
In essence, they seem to be at
onfidently change it without the
gation.
e importance of the activities
n we can infer some developer
ok a short time to implement the
anding and low editing (refer to
nd JD14 have a similar behavior
lement the task. We can say that
eply about what to do, and then
3 is at the opposite end of the
editing time, with relatively high
eloper who meanders heavily in
implements the changes.
ce of program understanding has
ding is all the more relevant as
nd programming languages. We
nt insight that corroborates the
roaches and tools that deal with
everse engineering.
TABLE IX: Java Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5,
and Max: PE = 0.1 and PI = 0.1
Dev. N (%) E (%) U (%)
Min Med Max Min Med Max
JD1 0.5% 60.2% 33.4% 6.68% 39.3% 66.0% 92.78%
JD2 0.8% 20.3% 11.3% 2.25% 78.8% 87.9% 96.90%
JD3 0.8% 52.5% 29.1% 5.83% 46.8% 70.1% 93.41%
JD4 1.3% 32.0% 17.8% 3.56% 66.6% 80.9% 95.12%
JD5 0.7% 68.7% 38.2% 7.63% 30.6% 61.1% 91.64%
JD6 1.0% 40.7% 22.6% 4.52% 58.3% 76.4% 94.46%
JD7 0.9% 62.1% 34.5% 6.90% 37.0% 64.6% 92.22%
JD8 1.1% 24.9% 13.8% 2.76% 74.0% 85.1% 96.19%
JD9 0.7% 28.3% 15.7% 3.14% 71.0% 83.5% 96.13%
JD10 0.9% 34.1% 18.9% 3.79% 65.0% 80.2% 95.32%
JD11 0.9% 27.6% 15.4% 3.07% 71.5% 83.8% 96.05%
JD12 0.8% 49.1% 27.3% 5.46% 50.0% 71.9% 93.71%
JD13 0.7% 75.2% 41.8% 8.35% 24.2% 57.6% 90.98%
JD14 1.2% 22.4% 12.4% 2.48% 76.4% 86.4% 96.32%
JD15 0.7% 50.1% 27.9% 5.57% 49.1% 71.4% 93.72%
A. Threats to Validity
Construct Validity. We record interaction data in terms of
events in the IDE with their timestamp. We devised a model to
estimate the duration of activities: A threat to validity for our
results is the accuracy of this model, that may not precisely
capture, for example, the moment when editing activities start.
To get a more accurate model to estimate activity durations,
one should record more fine-grained interaction data and
corresponding events. However, in Section IV-C we described
how even varying the degrees of freedoms the essence of this
paper remains true.
Program understanding
is considered one of the
most time consuming activities
of software development.
Program understanding
is considered one of the
most time consuming activities
of software development.
IPSE DIXIT
Program understanding
is considered one of the
most time consuming activities
of software development.
IPSE DIXIT
Interaction
data
Empirical evidence
on the role of program
comprehension
IDEs
Program understanding
is considered one of the
most time consuming activities
of software development.
@robertominelli
IPSE DIXIT
Interaction
data
Empirical evidence
on the role of program
comprehension
IDEs
NAV EDI INS UND
%oftimespent
10%
20%
30%
40%
50%
60%
70%
80%
90%
Smalltalk
Java
Program understanding
is considered one of the
most time consuming activities
of software development.
@robertominelli
IPSE DIXIT
Interaction
data
Empirical evidence
on the role of program
comprehension
IDEs
NAV EDI INS UND
%oftimespent
10%
20%
30%
40%
50%
60%
70%
80%
90%
Smalltalk
Java
Significantlyunderestimated byprevious research
EI
∆Ii ∆Ei∆Ui
e Equation (3) we should know the start time of
hat is Ei. We cannot know this before solving
4).
, to determine Ei we need the end time of
that is Ii, and we cannot know this a priori. To
e can rewrite Equations (3) and (4) as follows:
⇢
Ii = PI ⇥ ( Ei)
Ei = PE ⇥ ( Ii)
(5)
= Ii + Ui + Ei. Ii depends on Ei,
ersa. We want to find two percentages, PIE
I and
that Ei and Ii can be computed from the whole
⇢
Ii = PIE
I ⇥
Ei = PIE
E ⇥
determine Ei we need the end time of
is Ii, and we cannot know this a priori. To
an rewrite Equations (3) and (4) as follows:
⇢
Ii = PI ⇥ ( Ei)
Ei = PE ⇥ ( Ii)
(5)
= Ii + Ui + Ei. Ii depends on Ei,
. We want to find two percentages, PIE
I and
Ei and Ii can be computed from the whole
⇢
Ii = PIE
I ⇥
Ei = PIE
E ⇥
on, these two fractions are:
⇢
PIE
I = Ii
PIE
E = Ei
ng Equations (5) by we obtain:
⇢
PIE
I = PI ⇥ (1 PIE
E )
PIE
E = PE ⇥ (1 PIE
I )
(6)
quations (6) we obtain:
(
PIE
I = PI PI ⇥PE
1 PI ⇥PE
PIE
E = PE PI ⇥PE
1 PI ⇥PE
rize, the three time intervals depicted in Fig. 9,
Editing Activities. Editing acti
records an event of type NW at tim
performs a navigation after editing.
an unknown moment in the time in
the previous event, denoted as end
To make the editing activity Ei ex
middle of the interval and with a d
the duration of that interval. The N
to a navigation activity with a fixed
Ei = PE ⇥ (t(NW ) e
To solve the first equation we need to
solve the result of the second.
We need two percentages that only
depend on the full interval (∆).
Solving a couple of equation leads to
these two percentages.

More Related Content

Similar to Quantifying Program Comprehension with Interaction Data [QSIC2014]

A Simplified Model for Evaluating Software Reliability at the Developmental S...
A Simplified Model for Evaluating Software Reliability at the Developmental S...A Simplified Model for Evaluating Software Reliability at the Developmental S...
A Simplified Model for Evaluating Software Reliability at the Developmental S...Waqas Tariq
 
A Study On Hybrid System
A Study On Hybrid SystemA Study On Hybrid System
A Study On Hybrid SystemCarmen Sanborn
 
Information-Flow Analysis of Design Breaks up
Information-Flow Analysis of Design Breaks upInformation-Flow Analysis of Design Breaks up
Information-Flow Analysis of Design Breaks upEswar Publications
 
Python vs R for Data Analytics Final
Python vs R for Data Analytics Final Python vs R for Data Analytics Final
Python vs R for Data Analytics Final BobSmith712
 
Python vsr final r
Python vsr   final rPython vsr   final r
Python vsr final rChris Lukens
 
IDENTIFYING THE DAMAGE ASSESSMENT TWEETS DURING DISASTER
IDENTIFYING THE DAMAGE ASSESSMENT TWEETS DURING DISASTERIDENTIFYING THE DAMAGE ASSESSMENT TWEETS DURING DISASTER
IDENTIFYING THE DAMAGE ASSESSMENT TWEETS DURING DISASTERIRJET Journal
 
Frequency Based Detection Of Task Switches
Frequency Based Detection Of Task SwitchesFrequency Based Detection Of Task Switches
Frequency Based Detection Of Task Switchesrnair
 
Program understanding: What programmers really want
Program understanding: What programmers really wantProgram understanding: What programmers really want
Program understanding: What programmers really wantEinar Høst
 
H2O World - Benchmarking Open Source ML Platforms - Szilard Pafka
H2O World - Benchmarking Open Source ML Platforms - Szilard PafkaH2O World - Benchmarking Open Source ML Platforms - Szilard Pafka
H2O World - Benchmarking Open Source ML Platforms - Szilard PafkaSri Ambati
 
Deep Dialog System Review
Deep Dialog System ReviewDeep Dialog System Review
Deep Dialog System ReviewNguyen Quang
 
2014 IEEE JAVA SOFTWARE ENGINEERING PROJECT Repent analyzing the nature of id...
2014 IEEE JAVA SOFTWARE ENGINEERING PROJECT Repent analyzing the nature of id...2014 IEEE JAVA SOFTWARE ENGINEERING PROJECT Repent analyzing the nature of id...
2014 IEEE JAVA SOFTWARE ENGINEERING PROJECT Repent analyzing the nature of id...IEEEBEBTECHSTUDENTSPROJECTS
 
Pair Programming Presentation
Pair Programming PresentationPair Programming Presentation
Pair Programming PresentationThoughtWorks
 
ZenTao introduction(for senior management) 1.0
ZenTao introduction(for senior management) 1.0ZenTao introduction(for senior management) 1.0
ZenTao introduction(for senior management) 1.0Fei TENG
 
54 C o m m u n i C at i o n s o F t h e a C m j u.docx
54    C o m m u n i C at i o n s  o F  t h e  a C m       j u.docx54    C o m m u n i C at i o n s  o F  t h e  a C m       j u.docx
54 C o m m u n i C at i o n s o F t h e a C m j u.docxevonnehoggarth79783
 
An overview of software development methodologies.
An overview of software development methodologies.An overview of software development methodologies.
An overview of software development methodologies.Masoud Kalali
 
ISTQB Advanced Study Guide - 6
ISTQB Advanced Study Guide - 6ISTQB Advanced Study Guide - 6
ISTQB Advanced Study Guide - 6Yogindernath Gupta
 
Differences in-task-descriptions
Differences in-task-descriptionsDifferences in-task-descriptions
Differences in-task-descriptionsSameer Chavan
 
Identify Development Pains and Resolve Them with Idea Flow
Identify Development Pains and Resolve Them with Idea FlowIdentify Development Pains and Resolve Them with Idea Flow
Identify Development Pains and Resolve Them with Idea FlowTechWell
 

Similar to Quantifying Program Comprehension with Interaction Data [QSIC2014] (20)

A Simplified Model for Evaluating Software Reliability at the Developmental S...
A Simplified Model for Evaluating Software Reliability at the Developmental S...A Simplified Model for Evaluating Software Reliability at the Developmental S...
A Simplified Model for Evaluating Software Reliability at the Developmental S...
 
A Study On Hybrid System
A Study On Hybrid SystemA Study On Hybrid System
A Study On Hybrid System
 
Information-Flow Analysis of Design Breaks up
Information-Flow Analysis of Design Breaks upInformation-Flow Analysis of Design Breaks up
Information-Flow Analysis of Design Breaks up
 
Python vs R for Data Analytics Final
Python vs R for Data Analytics Final Python vs R for Data Analytics Final
Python vs R for Data Analytics Final
 
Python vsr final r
Python vsr   final rPython vsr   final r
Python vsr final r
 
IDENTIFYING THE DAMAGE ASSESSMENT TWEETS DURING DISASTER
IDENTIFYING THE DAMAGE ASSESSMENT TWEETS DURING DISASTERIDENTIFYING THE DAMAGE ASSESSMENT TWEETS DURING DISASTER
IDENTIFYING THE DAMAGE ASSESSMENT TWEETS DURING DISASTER
 
ICSE20_Tao_slides.pptx
ICSE20_Tao_slides.pptxICSE20_Tao_slides.pptx
ICSE20_Tao_slides.pptx
 
Toc Education
Toc EducationToc Education
Toc Education
 
Frequency Based Detection Of Task Switches
Frequency Based Detection Of Task SwitchesFrequency Based Detection Of Task Switches
Frequency Based Detection Of Task Switches
 
Program understanding: What programmers really want
Program understanding: What programmers really wantProgram understanding: What programmers really want
Program understanding: What programmers really want
 
H2O World - Benchmarking Open Source ML Platforms - Szilard Pafka
H2O World - Benchmarking Open Source ML Platforms - Szilard PafkaH2O World - Benchmarking Open Source ML Platforms - Szilard Pafka
H2O World - Benchmarking Open Source ML Platforms - Szilard Pafka
 
Deep Dialog System Review
Deep Dialog System ReviewDeep Dialog System Review
Deep Dialog System Review
 
2014 IEEE JAVA SOFTWARE ENGINEERING PROJECT Repent analyzing the nature of id...
2014 IEEE JAVA SOFTWARE ENGINEERING PROJECT Repent analyzing the nature of id...2014 IEEE JAVA SOFTWARE ENGINEERING PROJECT Repent analyzing the nature of id...
2014 IEEE JAVA SOFTWARE ENGINEERING PROJECT Repent analyzing the nature of id...
 
Pair Programming Presentation
Pair Programming PresentationPair Programming Presentation
Pair Programming Presentation
 
ZenTao introduction(for senior management) 1.0
ZenTao introduction(for senior management) 1.0ZenTao introduction(for senior management) 1.0
ZenTao introduction(for senior management) 1.0
 
54 C o m m u n i C at i o n s o F t h e a C m j u.docx
54    C o m m u n i C at i o n s  o F  t h e  a C m       j u.docx54    C o m m u n i C at i o n s  o F  t h e  a C m       j u.docx
54 C o m m u n i C at i o n s o F t h e a C m j u.docx
 
An overview of software development methodologies.
An overview of software development methodologies.An overview of software development methodologies.
An overview of software development methodologies.
 
ISTQB Advanced Study Guide - 6
ISTQB Advanced Study Guide - 6ISTQB Advanced Study Guide - 6
ISTQB Advanced Study Guide - 6
 
Differences in-task-descriptions
Differences in-task-descriptionsDifferences in-task-descriptions
Differences in-task-descriptions
 
Identify Development Pains and Resolve Them with Idea Flow
Identify Development Pains and Resolve Them with Idea FlowIdentify Development Pains and Resolve Them with Idea Flow
Identify Development Pains and Resolve Them with Idea Flow
 

More from Roberto Minelli

SYN: Ultra-Scale
Software Evolution Comprehension [ICPC 2023]
SYN: Ultra-Scale
Software Evolution Comprehension [ICPC 2023]SYN: Ultra-Scale
Software Evolution Comprehension [ICPC 2023]
SYN: Ultra-Scale
Software Evolution Comprehension [ICPC 2023]Roberto Minelli
 
DFlow is dead. Long live Tako!
DFlow is dead. Long live Tako!DFlow is dead. Long live Tako!
DFlow is dead. Long live Tako!Roberto Minelli
 
Traduzioni: Ieri, Oggi e Domani

Traduzioni: Ieri, Oggi e Domani
Traduzioni: Ieri, Oggi e Domani

Traduzioni: Ieri, Oggi e Domani
Roberto Minelli
 
Come Creare un Talk in Stile TED

Come Creare un Talk in Stile TED
Come Creare un Talk in Stile TED

Come Creare un Talk in Stile TED
Roberto Minelli
 
Visualizing the Evolution of Working Sets
Visualizing the Evolution of Working SetsVisualizing the Evolution of Working Sets
Visualizing the Evolution of Working SetsRoberto Minelli
 
Taming the IDE with Fine-Grained Interaction Data
Taming the IDE with Fine-Grained Interaction Data    Taming the IDE with Fine-Grained Interaction Data
Taming the IDE with Fine-Grained Interaction Data Roberto Minelli
 
Measuring Navigation Efficiency in the IDE
Measuring Navigation Efficiency in the IDEMeasuring Navigation Efficiency in the IDE
Measuring Navigation Efficiency in the IDERoberto Minelli
 
Mining IDE Interaction Data
Mining IDE Interaction DataMining IDE Interaction Data
Mining IDE Interaction DataRoberto Minelli
 
Interaction-Aware Development Environments
 Interaction-Aware Development Environments Interaction-Aware Development Environments
Interaction-Aware Development EnvironmentsRoberto Minelli
 
The Plague Doctor: A Promising Cure for the Window Plague
The Plague Doctor: A Promising Cure for the Window PlagueThe Plague Doctor: A Promising Cure for the Window Plague
The Plague Doctor: A Promising Cure for the Window PlagueRoberto Minelli
 
I Know What You Did Last Summer – An Investigation of How Developers Spend Th...
I Know What You Did Last Summer – An Investigation of How Developers Spend Th...I Know What You Did Last Summer – An Investigation of How Developers Spend Th...
I Know What You Did Last Summer – An Investigation of How Developers Spend Th...Roberto Minelli
 
Free Hugs — Praising developers for their actions [ICSE2015]
Free Hugs — Praising developers for their actions  [ICSE2015]Free Hugs — Praising developers for their actions  [ICSE2015]
Free Hugs — Praising developers for their actions [ICSE2015]Roberto Minelli
 
Visualizing Developer Interactions [VISSOFT2014]
Visualizing Developer Interactions [VISSOFT2014]Visualizing Developer Interactions [VISSOFT2014]
Visualizing Developer Interactions [VISSOFT2014]Roberto Minelli
 
Visual Storytelling of Development Sessions [ICSME2014]
Visual Storytelling of Development Sessions [ICSME2014] Visual Storytelling of Development Sessions [ICSME2014]
Visual Storytelling of Development Sessions [ICSME2014] Roberto Minelli
 
Towards Self-Adaptive IDEs [ICSME2014]
Towards Self-Adaptive IDEs [ICSME2014]Towards Self-Adaptive IDEs [ICSME2014]
Towards Self-Adaptive IDEs [ICSME2014]Roberto Minelli
 
Visualizing the Workflow of Developers [VISSOFT2013]
Visualizing the Workflow of Developers [VISSOFT2013]Visualizing the Workflow of Developers [VISSOFT2013]
Visualizing the Workflow of Developers [VISSOFT2013]Roberto Minelli
 
SAMOA – A Visual Software Analytics Platform for Mobile Applications [ICSM2013]
SAMOA – A Visual Software Analytics Platform for Mobile Applications [ICSM2013]SAMOA – A Visual Software Analytics Platform for Mobile Applications [ICSM2013]
SAMOA – A Visual Software Analytics Platform for Mobile Applications [ICSM2013]Roberto Minelli
 
Software Analytics for Mobile Applications – Insights & Lessons Learned [CSMR...
Software Analytics for Mobile Applications – Insights & Lessons Learned [CSMR...Software Analytics for Mobile Applications – Insights & Lessons Learned [CSMR...
Software Analytics for Mobile Applications – Insights & Lessons Learned [CSMR...Roberto Minelli
 

More from Roberto Minelli (18)

SYN: Ultra-Scale
Software Evolution Comprehension [ICPC 2023]
SYN: Ultra-Scale
Software Evolution Comprehension [ICPC 2023]SYN: Ultra-Scale
Software Evolution Comprehension [ICPC 2023]
SYN: Ultra-Scale
Software Evolution Comprehension [ICPC 2023]
 
DFlow is dead. Long live Tako!
DFlow is dead. Long live Tako!DFlow is dead. Long live Tako!
DFlow is dead. Long live Tako!
 
Traduzioni: Ieri, Oggi e Domani

Traduzioni: Ieri, Oggi e Domani
Traduzioni: Ieri, Oggi e Domani

Traduzioni: Ieri, Oggi e Domani

 
Come Creare un Talk in Stile TED

Come Creare un Talk in Stile TED
Come Creare un Talk in Stile TED

Come Creare un Talk in Stile TED

 
Visualizing the Evolution of Working Sets
Visualizing the Evolution of Working SetsVisualizing the Evolution of Working Sets
Visualizing the Evolution of Working Sets
 
Taming the IDE with Fine-Grained Interaction Data
Taming the IDE with Fine-Grained Interaction Data    Taming the IDE with Fine-Grained Interaction Data
Taming the IDE with Fine-Grained Interaction Data
 
Measuring Navigation Efficiency in the IDE
Measuring Navigation Efficiency in the IDEMeasuring Navigation Efficiency in the IDE
Measuring Navigation Efficiency in the IDE
 
Mining IDE Interaction Data
Mining IDE Interaction DataMining IDE Interaction Data
Mining IDE Interaction Data
 
Interaction-Aware Development Environments
 Interaction-Aware Development Environments Interaction-Aware Development Environments
Interaction-Aware Development Environments
 
The Plague Doctor: A Promising Cure for the Window Plague
The Plague Doctor: A Promising Cure for the Window PlagueThe Plague Doctor: A Promising Cure for the Window Plague
The Plague Doctor: A Promising Cure for the Window Plague
 
I Know What You Did Last Summer – An Investigation of How Developers Spend Th...
I Know What You Did Last Summer – An Investigation of How Developers Spend Th...I Know What You Did Last Summer – An Investigation of How Developers Spend Th...
I Know What You Did Last Summer – An Investigation of How Developers Spend Th...
 
Free Hugs — Praising developers for their actions [ICSE2015]
Free Hugs — Praising developers for their actions  [ICSE2015]Free Hugs — Praising developers for their actions  [ICSE2015]
Free Hugs — Praising developers for their actions [ICSE2015]
 
Visualizing Developer Interactions [VISSOFT2014]
Visualizing Developer Interactions [VISSOFT2014]Visualizing Developer Interactions [VISSOFT2014]
Visualizing Developer Interactions [VISSOFT2014]
 
Visual Storytelling of Development Sessions [ICSME2014]
Visual Storytelling of Development Sessions [ICSME2014] Visual Storytelling of Development Sessions [ICSME2014]
Visual Storytelling of Development Sessions [ICSME2014]
 
Towards Self-Adaptive IDEs [ICSME2014]
Towards Self-Adaptive IDEs [ICSME2014]Towards Self-Adaptive IDEs [ICSME2014]
Towards Self-Adaptive IDEs [ICSME2014]
 
Visualizing the Workflow of Developers [VISSOFT2013]
Visualizing the Workflow of Developers [VISSOFT2013]Visualizing the Workflow of Developers [VISSOFT2013]
Visualizing the Workflow of Developers [VISSOFT2013]
 
SAMOA – A Visual Software Analytics Platform for Mobile Applications [ICSM2013]
SAMOA – A Visual Software Analytics Platform for Mobile Applications [ICSM2013]SAMOA – A Visual Software Analytics Platform for Mobile Applications [ICSM2013]
SAMOA – A Visual Software Analytics Platform for Mobile Applications [ICSM2013]
 
Software Analytics for Mobile Applications – Insights & Lessons Learned [CSMR...
Software Analytics for Mobile Applications – Insights & Lessons Learned [CSMR...Software Analytics for Mobile Applications – Insights & Lessons Learned [CSMR...
Software Analytics for Mobile Applications – Insights & Lessons Learned [CSMR...
 

Recently uploaded

Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 

Recently uploaded (20)

Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 

Quantifying Program Comprehension with Interaction Data [QSIC2014]

  • 1. Quantifying Program Comprehension with Interaction Data Roberto Minelli, Andrea Mocci & Michele Lanza REVEAL @ Faculty of Informatics University of Lugano, Switzerland @robertominelli Takashi Kobayashi Department of Computer Science Tokyo Institute of Technology, Japan
  • 6. s Understand one of the most challenging tasks absorbs the 50% of the time
  • 7. Read Write s developer spend more time reading than writing navigation occupies a significant amount of time vs.
  • 8. s How much time is effectively spent on comprehension?
  • 9. s ?How much time is effectively spent on comprehension 50% 80% 60%
  • 10. s ?How much time is effectively spent on comprehension 50% 80% 60%
  • 11. s ?How much time is effectively spent on comprehension 50% 80% 60%
  • 18. Java SmallTalk 15 sessions 15 developers 4,000 events All enhancement sessions 175 sessions 7 developers 110,000+ events Various types of session N N E N I N t1 t2 t3 t4 t5 t6 NR t1 t2 t3 t4 t5 t6 NR NW NR NR NW
  • 19. Java SmallTalk 15 sessions 15 developers 4,000 events All enhancement sessions 175 sessions 7 developers 110,000+ events Various types of session N N E N I N t1 t2 t3 t4 t5 t6 N N E N I N t1 t2 t3 t4 t5 t6 NR t1 t2 t3 t4 t5 t6 NR NW NR NR NWNR t1 t2 t3 t4 t5 t6 NR NW NR NR NWE E
  • 20. Java SmallTalk 15 sessions 15 developers 4,000 events All enhancement sessions 175 sessions 7 developers 110,000+ events Various types of session N N E N I N t1 t2 t3 t4 t5 t6 N N E N I N t1 t2 t3 t4 t5 t6 NR t1 t2 t3 t4 t5 t6 NR NW NR NR NWNR t1 t2 t3 t4 t5 t6 NR NW NR NR NWE E Estimation Model for Java Interactions Estimation Model for Smalltalk Interactions
  • 21. Estimation Model for Java Interactions NR t1 t2 t3 t4 t5 t6 NR NW NR NR NW Raw Interaction History
  • 22. Estimation Model for Java Interactions NR t1 t2 t3 t4 t5 t6 NR NW NR NR NW N t1 t2 t3 t4 t5 t6 N NW N N NW Raw Interaction History Step 1: Navigation ∆N
  • 23. Estimation Model for Java Interactions NR t1 t2 t3 t4 t5 t6 NR NW NR NR NW N t1 t2 t3 t4 t5 t6 N NW N N NW N t1 t2 t3 t4 t5 t6 N N N N NE E Raw Interaction History Step 1: Navigation Step 2: Edit ∆N PE
  • 24. Estimation Model for Java Interactions NR t1 t2 t3 t4 t5 t6 NR NW NR NR NW N t1 t2 t3 t4 t5 t6 N NW N N NW N t1 t2 t3 t4 t5 t6 N N N N NE E N t1 t2 t3 t4 t5 t6 N N N N NE E Raw Interaction History Step 1: Navigation Step 2: Edit Step 3: Understanding ∆N PE
  • 25. Estimation Model for Smalltalk Interactions Raw Interaction History N N E N I N t1 t2 t3 t4 t5 t6
  • 26. Raw Interaction History Step 1: Navigation N N E N I N t1 t2 t3 t4 t5 t6 N N E N I N t1 t2 t3 t4 t5 t6 ∆N Estimation Model for Smalltalk Interactions
  • 27. Raw Interaction History Step 1: Navigation Step 2: Edit N N E N I N t1 t2 t3 t4 t5 t6 N N E N I N t1 t2 t3 t4 t5 t6 N N E N I N t1 t2 t3 t4 t5 t6 ∆N PE Estimation Model for Smalltalk Interactions
  • 28. Raw Interaction History Step 1: Navigation Step 2: Edit Step 3: Inspection N N E N I N t1 t2 t3 t4 t5 t6 N N E N I N t1 t2 t3 t4 t5 t6 N N E N I N t1 t2 t3 t4 t5 t6 N N E N I N t1 t2 t3 t4 t5 t6 ∆N PE PI Estimation Model for Smalltalk Interactions
  • 29. Raw Interaction History Step 1: Navigation Step 2: Edit Step 3: Inspection N N E N I N t1 t2 t3 t4 t5 t6 N N E N I N t1 t2 t3 t4 t5 t6 N N E N I N t1 t2 t3 t4 t5 t6 N N E N I N t1 t2 t3 t4 t5 t6 N N E N I N t1 t2 t3 t4 t5 t6 Step 4: Understanding ∆N PE PI Estimation Model for Smalltalk Interactions
  • 30. Degrees of Freedom and Understanding Estimation Model for Java Interactions Estimation Model for Smalltalk Interactions ∆N, PE ∆N, PE, PI
  • 31. Degrees of Freedom and Understanding Estimation Model for Java Interactions Estimation Model for Smalltalk Interactions ∆N, PE ∆N, PE, PI ∆N = 1 second
  • 32. Degrees of Freedom and Understanding Estimation Model for Java Interactions Estimation Model for Smalltalk Interactions The most pessimistic estimate is shown in the bottom right cell of the table, and corresponds to PE = PI = 90%. In this case understanding amounts to 54% of time, which is slightly above the upper-bound of previous estimates [3], [6], [24]. The most optimistic estimate is on the top-left cell of the table, corresponding to PE = PI = 10%: In this case, understanding consumes around 88% of the time of developers, which is significantly above previous estimates. Obviously, more accurate estimates lay between these two quite unrealistic extremes, and they are shown in the other cells of the table. It appears very likely that actual time spent by developers in program understanding has been underestimated by previous research by at least 10-20%. Table VI shows similar results in the case of Java develop- ment sessions recorded by PLOG. In this case, since the tool did not record inspection events, the only parameter to vary is PE. Pessimistic and optimistic estimates for program under- standing are similar to the case of DFLOW, suggesting similar considerations about the time spent in program understanding. TABLE VI: Amount of Understanding in Java Sessions Varying the Estimate of PE PE 0.10 0.25 0.50 0.75 0.90 94.33% 87.13% 75.12% 63.11% 55.91% V. RESULTS Tables VII, VIII, and IX summarize the distribution of development activities for all the recorded sessions in the case of DFLOW and PLOG. For each development activity, we calculate the average of the percentage of time spent by developers in each activity. As we pointed out in the previous section, program under- standing is a dominant activity, as it accounts, on average, from 54 to 94% of the total development time in each session. The values are similar despite the profound difference in the way developers produce Java and Smalltalk code. This suggests that NAV EDI INS UND % 10% 20% 30% 40% Fig. 14: Development Activities for All Sessions. Note: inspect (INS) applies only to Smalltalk sessions. Role of session types. While in interaction histories collected by DFLOW and PLOG program understanding is dominant in both cases, there is difference ranging from 2% to 6% depending on the estimates of parameters, as shown in Table VII. On all the Smalltalk sessions, program understanding ranges from 54 to 88% while on Java sessions these bounds range from 56 to 94%. A possible interpretation of this difference can be found in the fact that PLOG sessions were all enhancement sessions, while the sessions we collected with DFLOW are of different type and include, for example, bug-fixing and refactoring sessions. Table VII shows the different distribution of the duration of development activities per session type in the case of Smalltalk sessions collected by DFLOW. The role of understanding is still dominant in all session types: However, there is some significant difference in the distribution of editing and navigation activities. Refactoring sessions, for example, have a high understanding compo- nent and make minimal use of inspection activities (0.2- 1.7%). While program understanding does not appear to be significantly different between session types, there are some differences on the distribution of other activities. Enhancement and Bug Fixing sessions spend significant time on inspection (around 10%), while Enhancement and Refactoring sessions spend more time on editing. Understanding 56% to 94%
  • 33. discuss how the results of our quantification model change by varying these parameters, obtaining possible lower and upper bounds to the amount of time spent in program understanding. Table V shows how the amount of program understanding changes by varying PE and PI in the case of Smalltalk development sessions collected by DFLOW. TABLE V: Amount of Understanding in Smalltalk Sessions Varying the Estimates of PE and PI PI PE 0.10 0.25 0.50 0.75 0.90 0.10 88.44% 83.74% 75.87% 67.94% 63.16% 0.25 86.17% 81.63% 73.97% 66.20% 61.46% 0.50 82.34% 78.02% 70.71% 63.24% 58.62% 0.75 78.46% 74.28% 67.28% 60.16% 55.73% 0.90 76.10% 71.97% 65.09% 58.16% 53.93% The most pessimistic estimate is shown in the bottom right cell of the table, and corresponds to PE = PI = 90%. In this case understanding amounts to 54% of time, which is slightly above the upper-bound of previous estimates [3], [6], [24]. The most optimistic estimate is on the top-left cell of the table, corresponding to PE = PI = 10%: In this case, understanding consumes around 88% of the time of developers, which is significantly above previous estimates. Obviously, more accurate estimates lay between these two quite unrealistic unde deve likel F the a diffe emer activ %oftimespent Degrees of Freedom and Understanding Understanding 54% to 88% Estimation Model for Java Interactions Estimation Model for Smalltalk Interactions The most pessimistic estimate is shown in the bottom right cell of the table, and corresponds to PE = PI = 90%. In this case understanding amounts to 54% of time, which is slightly above the upper-bound of previous estimates [3], [6], [24]. The most optimistic estimate is on the top-left cell of the table, corresponding to PE = PI = 10%: In this case, understanding consumes around 88% of the time of developers, which is significantly above previous estimates. Obviously, more accurate estimates lay between these two quite unrealistic extremes, and they are shown in the other cells of the table. It appears very likely that actual time spent by developers in program understanding has been underestimated by previous research by at least 10-20%. Table VI shows similar results in the case of Java develop- ment sessions recorded by PLOG. In this case, since the tool did not record inspection events, the only parameter to vary is PE. Pessimistic and optimistic estimates for program under- standing are similar to the case of DFLOW, suggesting similar considerations about the time spent in program understanding. TABLE VI: Amount of Understanding in Java Sessions Varying the Estimate of PE PE 0.10 0.25 0.50 0.75 0.90 94.33% 87.13% 75.12% 63.11% 55.91% V. RESULTS Tables VII, VIII, and IX summarize the distribution of development activities for all the recorded sessions in the case of DFLOW and PLOG. For each development activity, we calculate the average of the percentage of time spent by developers in each activity. As we pointed out in the previous section, program under- standing is a dominant activity, as it accounts, on average, from 54 to 94% of the total development time in each session. The values are similar despite the profound difference in the way developers produce Java and Smalltalk code. This suggests that NAV EDI INS UND % 10% 20% 30% 40% Fig. 14: Development Activities for All Sessions. Note: inspect (INS) applies only to Smalltalk sessions. Role of session types. While in interaction histories collected by DFLOW and PLOG program understanding is dominant in both cases, there is difference ranging from 2% to 6% depending on the estimates of parameters, as shown in Table VII. On all the Smalltalk sessions, program understanding ranges from 54 to 88% while on Java sessions these bounds range from 56 to 94%. A possible interpretation of this difference can be found in the fact that PLOG sessions were all enhancement sessions, while the sessions we collected with DFLOW are of different type and include, for example, bug-fixing and refactoring sessions. Table VII shows the different distribution of the duration of development activities per session type in the case of Smalltalk sessions collected by DFLOW. The role of understanding is still dominant in all session types: However, there is some significant difference in the distribution of editing and navigation activities. Refactoring sessions, for example, have a high understanding compo- nent and make minimal use of inspection activities (0.2- 1.7%). While program understanding does not appear to be significantly different between session types, there are some differences on the distribution of other activities. Enhancement and Bug Fixing sessions spend significant time on inspection (around 10%), while Enhancement and Refactoring sessions spend more time on editing. Understanding 56% to 94%
  • 34. Role of Session Types TABLE VII: Development Activities per Session Type. Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1 Type N (%) E (%) I (%) U (%) Min Med Max Min Med Max Min Med Max DFLOW: Smalltalk Enhancement 7.8% 30.6% 17.4% 3.6% 13.4% 7.8% 1.7% 48.2% 67.0% 86.9% Refactoring 9.1% 30.4% 16.9% 3.4% 1.7% 0.9% 0.2% 58.9% 73.1% 87.3% General 6.2% 21.3% 12.1% 2.5% 9.5% 5.5% 1.2% 63.0% 76.2% 90.1% Bug Fixing 4.6% 25.5% 14.5% 3.0% 17.4% 10.0% 2.1% 52.6% 70.9% 90.3% All 6.8% 26.9% 15.3% 3.2% 12.3% 7.2% 1.6% 54.0% 70.7% 88.4% PLOG: Java All 0.9% 43.2% 24.0% 4.8% – – – 55.9% 75.1% 94.3% TABLE VIII: Smalltalk Development Activities per Developer. Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1 Developer N (%) E (%) I (%) U (%) Min Med Max Min Med Max Min Med Max SD1 5.1% 30.9% 17.6% 3.6% 13.7% 8.0% 1.7% 50.3% 69.4% 89.5% SD2 8.9% 21.6% 12.1% 2.4% 20.3% 11.3% 2.3% 49.2% 67.7% 86.4% SD3 8.0% 30.2% 17.0% 3.5% 5.6% 3.3% 0.7% 56.2% 71.8% 87.9% SD4 8.5% 26.5% 15.1% 3.1% 12.8% 7.4% 1.6% 52.2% 69.0% 86.8% SD5 4.6% 16.8% 9.7% 2.1% 9.3% 5.6% 1.3% 69.4% 80.1% 92.1% SD6 8.4% 10.5% 6.0% 1.2% 10.5% 6.0% 1.2% 70.6% 79.6% 89.1% SD7 5.7% 22.3% 12.6% 2.6% 10.5% 6.1% 1.3% 61.5% 75.6% 90.4%
  • 35. Role of Session TypesTABLE VII: Development Activities per Session Type. Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1 Type N (%) E (%) I (%) U (%) Min Med Max Min Med Max Min Med Max DFLOW: Smalltalk Enhancement 7.8% 30.6% 17.4% 3.6% 13.4% 7.8% 1.7% 48.2% 67.0% 86.9% Refactoring 9.1% 30.4% 16.9% 3.4% 1.7% 0.9% 0.2% 58.9% 73.1% 87.3% General 6.2% 21.3% 12.1% 2.5% 9.5% 5.5% 1.2% 63.0% 76.2% 90.1% Bug Fixing 4.6% 25.5% 14.5% 3.0% 17.4% 10.0% 2.1% 52.6% 70.9% 90.3% All 6.8% 26.9% 15.3% 3.2% 12.3% 7.2% 1.6% 54.0% 70.7% 88.4% PLOG: Java All 0.9% 43.2% 24.0% 4.8% – – – 55.9% 75.1% 94.3% TABLE VIII: Smalltalk Development Activities per Developer. Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1 Developer N (%) E (%) I (%) U (%) Min Med Max Min Med Max Min Med Max SD1 5.1% 30.9% 17.6% 3.6% 13.7% 8.0% 1.7% 50.3% 69.4% 89.5% SD2 8.9% 21.6% 12.1% 2.4% 20.3% 11.3% 2.3% 49.2% 67.7% 86.4% SD3 8.0% 30.2% 17.0% 3.5% 5.6% 3.3% 0.7% 56.2% 71.8% 87.9% SD4 8.5% 26.5% 15.1% 3.1% 12.8% 7.4% 1.6% 52.2% 69.0% 86.8% SD5 4.6% 16.8% 9.7% 2.1% 9.3% 5.6% 1.3% 69.4% 80.1% 92.1% SD6 8.4% 10.5% 6.0% 1.2% 10.5% 6.0% 1.2% 70.6% 79.6% 89.1% SD7 5.7% 22.3% 12.6% 2.6% 10.5% 6.1% 1.3% 61.5% 75.6% 90.4% deduce diverse “profiles”: SD3 has a tendency towards more navigation and editing, and less understanding. In essence he could be characterized as more “aggressive” towards the code base. Similarly, SD2 spends almost the same amount of time on navigation, but distributes almost equally the remaining time between editing and inspection, being thus more “cautious” and she probably frequently verifies the implemented changes. SD5 and SD6 are even more cautious, denoted by their high understanding values. In essence they reflect more on the code before they change it. SD3 however is making very little use of TABLE IX: Java Development Activities per Developer. Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1 Dev. N (%) E (%) U (%) Min Med Max Min Med Max JD1 0.5% 60.2% 33.4% 6.68% 39.3% 66.0% 92.78% JD2 0.8% 20.3% 11.3% 2.25% 78.8% 87.9% 96.90% JD3 0.8% 52.5% 29.1% 5.83% 46.8% 70.1% 93.41% JD4 1.3% 32.0% 17.8% 3.56% 66.6% 80.9% 95.12% JD5 0.7% 68.7% 38.2% 7.63% 30.6% 61.1% 91.64% Program understanding does not appear to be significantly different between session types
  • 36. Role of Session TypesTABLE VII: Development Activities per Session Type. Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1 Type N (%) E (%) I (%) U (%) Min Med Max Min Med Max Min Med Max DFLOW: Smalltalk Enhancement 7.8% 30.6% 17.4% 3.6% 13.4% 7.8% 1.7% 48.2% 67.0% 86.9% Refactoring 9.1% 30.4% 16.9% 3.4% 1.7% 0.9% 0.2% 58.9% 73.1% 87.3% General 6.2% 21.3% 12.1% 2.5% 9.5% 5.5% 1.2% 63.0% 76.2% 90.1% Bug Fixing 4.6% 25.5% 14.5% 3.0% 17.4% 10.0% 2.1% 52.6% 70.9% 90.3% All 6.8% 26.9% 15.3% 3.2% 12.3% 7.2% 1.6% 54.0% 70.7% 88.4% PLOG: Java All 0.9% 43.2% 24.0% 4.8% – – – 55.9% 75.1% 94.3% TABLE VIII: Smalltalk Development Activities per Developer. Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1 Developer N (%) E (%) I (%) U (%) Min Med Max Min Med Max Min Med Max SD1 5.1% 30.9% 17.6% 3.6% 13.7% 8.0% 1.7% 50.3% 69.4% 89.5% SD2 8.9% 21.6% 12.1% 2.4% 20.3% 11.3% 2.3% 49.2% 67.7% 86.4% SD3 8.0% 30.2% 17.0% 3.5% 5.6% 3.3% 0.7% 56.2% 71.8% 87.9% SD4 8.5% 26.5% 15.1% 3.1% 12.8% 7.4% 1.6% 52.2% 69.0% 86.8% SD5 4.6% 16.8% 9.7% 2.1% 9.3% 5.6% 1.3% 69.4% 80.1% 92.1% SD6 8.4% 10.5% 6.0% 1.2% 10.5% 6.0% 1.2% 70.6% 79.6% 89.1% SD7 5.7% 22.3% 12.6% 2.6% 10.5% 6.1% 1.3% 61.5% 75.6% 90.4% deduce diverse “profiles”: SD3 has a tendency towards more navigation and editing, and less understanding. In essence he could be characterized as more “aggressive” towards the code base. Similarly, SD2 spends almost the same amount of time on navigation, but distributes almost equally the remaining time between editing and inspection, being thus more “cautious” and she probably frequently verifies the implemented changes. SD5 and SD6 are even more cautious, denoted by their high understanding values. In essence they reflect more on the code before they change it. SD3 however is making very little use of TABLE IX: Java Development Activities per Developer. Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1 Dev. N (%) E (%) U (%) Min Med Max Min Med Max JD1 0.5% 60.2% 33.4% 6.68% 39.3% 66.0% 92.78% JD2 0.8% 20.3% 11.3% 2.25% 78.8% 87.9% 96.90% JD3 0.8% 52.5% 29.1% 5.83% 46.8% 70.1% 93.41% JD4 1.3% 32.0% 17.8% 3.56% 66.6% 80.9% 95.12% JD5 0.7% 68.7% 38.2% 7.63% 30.6% 61.1% 91.64% Refactoringsessions make minimaluse of inspection activities
  • 37. Role of Session TypesTABLE VII: Development Activities per Session Type. Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1 Type N (%) E (%) I (%) U (%) Min Med Max Min Med Max Min Med Max DFLOW: Smalltalk Enhancement 7.8% 30.6% 17.4% 3.6% 13.4% 7.8% 1.7% 48.2% 67.0% 86.9% Refactoring 9.1% 30.4% 16.9% 3.4% 1.7% 0.9% 0.2% 58.9% 73.1% 87.3% General 6.2% 21.3% 12.1% 2.5% 9.5% 5.5% 1.2% 63.0% 76.2% 90.1% Bug Fixing 4.6% 25.5% 14.5% 3.0% 17.4% 10.0% 2.1% 52.6% 70.9% 90.3% All 6.8% 26.9% 15.3% 3.2% 12.3% 7.2% 1.6% 54.0% 70.7% 88.4% PLOG: Java All 0.9% 43.2% 24.0% 4.8% – – – 55.9% 75.1% 94.3% TABLE VIII: Smalltalk Development Activities per Developer. Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1 Developer N (%) E (%) I (%) U (%) Min Med Max Min Med Max Min Med Max SD1 5.1% 30.9% 17.6% 3.6% 13.7% 8.0% 1.7% 50.3% 69.4% 89.5% SD2 8.9% 21.6% 12.1% 2.4% 20.3% 11.3% 2.3% 49.2% 67.7% 86.4% SD3 8.0% 30.2% 17.0% 3.5% 5.6% 3.3% 0.7% 56.2% 71.8% 87.9% SD4 8.5% 26.5% 15.1% 3.1% 12.8% 7.4% 1.6% 52.2% 69.0% 86.8% SD5 4.6% 16.8% 9.7% 2.1% 9.3% 5.6% 1.3% 69.4% 80.1% 92.1% SD6 8.4% 10.5% 6.0% 1.2% 10.5% 6.0% 1.2% 70.6% 79.6% 89.1% SD7 5.7% 22.3% 12.6% 2.6% 10.5% 6.1% 1.3% 61.5% 75.6% 90.4% deduce diverse “profiles”: SD3 has a tendency towards more navigation and editing, and less understanding. In essence he could be characterized as more “aggressive” towards the code base. Similarly, SD2 spends almost the same amount of time on navigation, but distributes almost equally the remaining time between editing and inspection, being thus more “cautious” and she probably frequently verifies the implemented changes. SD5 and SD6 are even more cautious, denoted by their high understanding values. In essence they reflect more on the code before they change it. SD3 however is making very little use of TABLE IX: Java Development Activities per Developer. Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1 Dev. N (%) E (%) U (%) Min Med Max Min Med Max JD1 0.5% 60.2% 33.4% 6.68% 39.3% 66.0% 92.78% JD2 0.8% 20.3% 11.3% 2.25% 78.8% 87.9% 96.90% JD3 0.8% 52.5% 29.1% 5.83% 46.8% 70.1% 93.41% JD4 1.3% 32.0% 17.8% 3.56% 66.6% 80.9% 95.12% JD5 0.7% 68.7% 38.2% 7.63% 30.6% 61.1% 91.64% Enhancementand Bug-Fixing make more use of inspection activities
  • 38. Role of Session TypesTABLE VII: Development Activities per Session Type. Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1 Type N (%) E (%) I (%) U (%) Min Med Max Min Med Max Min Med Max DFLOW: Smalltalk Enhancement 7.8% 30.6% 17.4% 3.6% 13.4% 7.8% 1.7% 48.2% 67.0% 86.9% Refactoring 9.1% 30.4% 16.9% 3.4% 1.7% 0.9% 0.2% 58.9% 73.1% 87.3% General 6.2% 21.3% 12.1% 2.5% 9.5% 5.5% 1.2% 63.0% 76.2% 90.1% Bug Fixing 4.6% 25.5% 14.5% 3.0% 17.4% 10.0% 2.1% 52.6% 70.9% 90.3% All 6.8% 26.9% 15.3% 3.2% 12.3% 7.2% 1.6% 54.0% 70.7% 88.4% PLOG: Java All 0.9% 43.2% 24.0% 4.8% – – – 55.9% 75.1% 94.3% TABLE VIII: Smalltalk Development Activities per Developer. Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1 Developer N (%) E (%) I (%) U (%) Min Med Max Min Med Max Min Med Max SD1 5.1% 30.9% 17.6% 3.6% 13.7% 8.0% 1.7% 50.3% 69.4% 89.5% SD2 8.9% 21.6% 12.1% 2.4% 20.3% 11.3% 2.3% 49.2% 67.7% 86.4% SD3 8.0% 30.2% 17.0% 3.5% 5.6% 3.3% 0.7% 56.2% 71.8% 87.9% SD4 8.5% 26.5% 15.1% 3.1% 12.8% 7.4% 1.6% 52.2% 69.0% 86.8% SD5 4.6% 16.8% 9.7% 2.1% 9.3% 5.6% 1.3% 69.4% 80.1% 92.1% SD6 8.4% 10.5% 6.0% 1.2% 10.5% 6.0% 1.2% 70.6% 79.6% 89.1% SD7 5.7% 22.3% 12.6% 2.6% 10.5% 6.1% 1.3% 61.5% 75.6% 90.4% deduce diverse “profiles”: SD3 has a tendency towards more navigation and editing, and less understanding. In essence he could be characterized as more “aggressive” towards the code base. Similarly, SD2 spends almost the same amount of time on navigation, but distributes almost equally the remaining time between editing and inspection, being thus more “cautious” and she probably frequently verifies the implemented changes. SD5 and SD6 are even more cautious, denoted by their high understanding values. In essence they reflect more on the code before they change it. SD3 however is making very little use of TABLE IX: Java Development Activities per Developer. Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1 Dev. N (%) E (%) U (%) Min Med Max Min Med Max JD1 0.5% 60.2% 33.4% 6.68% 39.3% 66.0% 92.78% JD2 0.8% 20.3% 11.3% 2.25% 78.8% 87.9% 96.90% JD3 0.8% 52.5% 29.1% 5.83% 46.8% 70.1% 93.41% JD4 1.3% 32.0% 17.8% 3.56% 66.6% 80.9% 95.12% JD5 0.7% 68.7% 38.2% 7.63% 30.6% 61.1% 91.64% Enhancementand Refactoring spend more time in editing activities
  • 39. Developer Diversity Enhancement 7.8% 30.6% 17.4% 3.6% 13.4% 7.8% 1.7% 48.2% 67.0% 86.9% Refactoring 9.1% 30.4% 16.9% 3.4% 1.7% 0.9% 0.2% 58.9% 73.1% 87.3% General 6.2% 21.3% 12.1% 2.5% 9.5% 5.5% 1.2% 63.0% 76.2% 90.1% Bug Fixing 4.6% 25.5% 14.5% 3.0% 17.4% 10.0% 2.1% 52.6% 70.9% 90.3% All 6.8% 26.9% 15.3% 3.2% 12.3% 7.2% 1.6% 54.0% 70.7% 88.4% PLOG: Java All 0.9% 43.2% 24.0% 4.8% – – – 55.9% 75.1% 94.3% TABLE VIII: Smalltalk Development Activities per Developer. Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1 Developer N (%) E (%) I (%) U (%) Min Med Max Min Med Max Min Med Max SD1 5.1% 30.9% 17.6% 3.6% 13.7% 8.0% 1.7% 50.3% 69.4% 89.5% SD2 8.9% 21.6% 12.1% 2.4% 20.3% 11.3% 2.3% 49.2% 67.7% 86.4% SD3 8.0% 30.2% 17.0% 3.5% 5.6% 3.3% 0.7% 56.2% 71.8% 87.9% SD4 8.5% 26.5% 15.1% 3.1% 12.8% 7.4% 1.6% 52.2% 69.0% 86.8% SD5 4.6% 16.8% 9.7% 2.1% 9.3% 5.6% 1.3% 69.4% 80.1% 92.1% SD6 8.4% 10.5% 6.0% 1.2% 10.5% 6.0% 1.2% 70.6% 79.6% 89.1% SD7 5.7% 22.3% 12.6% 2.6% 10.5% 6.1% 1.3% 61.5% 75.6% 90.4% deduce diverse “profiles”: SD3 has a tendency towards more navigation and editing, and less understanding. In essence he could be characterized as more “aggressive” towards the code base. Similarly, SD2 spends almost the same amount of time on navigation, but distributes almost equally the remaining time between editing and inspection, being thus more “cautious” and she probably frequently verifies the implemented changes. SD5 and SD6 are even more cautious, denoted by their high understanding values. In essence they reflect more on the code before they change it. SD3 however is making very little use of inspecting, which is a preferred activity of skilled developers. SD1 and SD3 have the highest editing and the among the lowest understanding values. In essence, they seem to be at ease with the code base and confidently change it without the need to rely on extensive navigation. Table IX lists the relative importance of the activities for each Java developer. Again we can infer some developer “profiles”. For example JD8 took a short time to implement the changes, but has high understanding and low editing (refer to Table IV for durations). JD2 and JD14 have a similar behavior but they took more time to implement the task. We can say that JD8 is someone who thinks deeply about what to do, and then TABLE IX: Java Development Activities per Developer. Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1 Dev. N (%) E (%) U (%) Min Med Max Min Med Max JD1 0.5% 60.2% 33.4% 6.68% 39.3% 66.0% 92.78% JD2 0.8% 20.3% 11.3% 2.25% 78.8% 87.9% 96.90% JD3 0.8% 52.5% 29.1% 5.83% 46.8% 70.1% 93.41% JD4 1.3% 32.0% 17.8% 3.56% 66.6% 80.9% 95.12% JD5 0.7% 68.7% 38.2% 7.63% 30.6% 61.1% 91.64% JD6 1.0% 40.7% 22.6% 4.52% 58.3% 76.4% 94.46% JD7 0.9% 62.1% 34.5% 6.90% 37.0% 64.6% 92.22% JD8 1.1% 24.9% 13.8% 2.76% 74.0% 85.1% 96.19% JD9 0.7% 28.3% 15.7% 3.14% 71.0% 83.5% 96.13% JD10 0.9% 34.1% 18.9% 3.79% 65.0% 80.2% 95.32% JD11 0.9% 27.6% 15.4% 3.07% 71.5% 83.8% 96.05% JD12 0.8% 49.1% 27.3% 5.46% 50.0% 71.9% 93.71% JD13 0.7% 75.2% 41.8% 8.35% 24.2% 57.6% 90.98% JD14 1.2% 22.4% 12.4% 2.48% 76.4% 86.4% 96.32% JD15 0.7% 50.1% 27.9% 5.57% 49.1% 71.4% 93.72% A. Threats to Validity TABLE VIII: Smalltalk Development Activities per Developer. 9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1 E (%) I (%) U (%) Min Med Max Min Med Max Min Med Max 30.9% 17.6% 3.6% 13.7% 8.0% 1.7% 50.3% 69.4% 89.5% 21.6% 12.1% 2.4% 20.3% 11.3% 2.3% 49.2% 67.7% 86.4% 30.2% 17.0% 3.5% 5.6% 3.3% 0.7% 56.2% 71.8% 87.9% 26.5% 15.1% 3.1% 12.8% 7.4% 1.6% 52.2% 69.0% 86.8% 16.8% 9.7% 2.1% 9.3% 5.6% 1.3% 69.4% 80.1% 92.1% 10.5% 6.0% 1.2% 10.5% 6.0% 1.2% 70.6% 79.6% 89.1% 22.3% 12.6% 2.6% 10.5% 6.1% 1.3% 61.5% 75.6% 90.4% 3 has a tendency towards more ss understanding. In essence he e “aggressive” towards the code most the same amount of time on most equally the remaining time on, being thus more “cautious” erifies the implemented changes. cautious, denoted by their high ce they reflect more on the code wever is making very little use of ed activity of skilled developers. est editing and the among the In essence, they seem to be at onfidently change it without the igation. ve importance of the activities n we can infer some developer ok a short time to implement the anding and low editing (refer to nd JD14 have a similar behavior plement the task. We can say that TABLE IX: Java Development Activities per Developer. Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1 Dev. N (%) E (%) U (%) Min Med Max Min Med Max JD1 0.5% 60.2% 33.4% 6.68% 39.3% 66.0% 92.78% JD2 0.8% 20.3% 11.3% 2.25% 78.8% 87.9% 96.90% JD3 0.8% 52.5% 29.1% 5.83% 46.8% 70.1% 93.41% JD4 1.3% 32.0% 17.8% 3.56% 66.6% 80.9% 95.12% JD5 0.7% 68.7% 38.2% 7.63% 30.6% 61.1% 91.64% JD6 1.0% 40.7% 22.6% 4.52% 58.3% 76.4% 94.46% JD7 0.9% 62.1% 34.5% 6.90% 37.0% 64.6% 92.22% JD8 1.1% 24.9% 13.8% 2.76% 74.0% 85.1% 96.19% JD9 0.7% 28.3% 15.7% 3.14% 71.0% 83.5% 96.13% JD10 0.9% 34.1% 18.9% 3.79% 65.0% 80.2% 95.32% JD11 0.9% 27.6% 15.4% 3.07% 71.5% 83.8% 96.05% JD12 0.8% 49.1% 27.3% 5.46% 50.0% 71.9% 93.71% JD13 0.7% 75.2% 41.8% 8.35% 24.2% 57.6% 90.98% JD14 1.2% 22.4% 12.4% 2.48% 76.4% 86.4% 96.32% JD15 0.7% 50.1% 27.9% 5.57% 49.1% 71.4% 93.72%
  • 40. Developer Diversity PLOG: Java All 0.9% 43.2% 24.0% 4.8% – – – 55.9% 75.1% 94.3% TABLE VIII: Smalltalk Development Activities per Developer. Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1 Developer N (%) E (%) I (%) U (%) Min Med Max Min Med Max Min Med Max SD1 5.1% 30.9% 17.6% 3.6% 13.7% 8.0% 1.7% 50.3% 69.4% 89.5% SD2 8.9% 21.6% 12.1% 2.4% 20.3% 11.3% 2.3% 49.2% 67.7% 86.4% SD3 8.0% 30.2% 17.0% 3.5% 5.6% 3.3% 0.7% 56.2% 71.8% 87.9% SD4 8.5% 26.5% 15.1% 3.1% 12.8% 7.4% 1.6% 52.2% 69.0% 86.8% SD5 4.6% 16.8% 9.7% 2.1% 9.3% 5.6% 1.3% 69.4% 80.1% 92.1% SD6 8.4% 10.5% 6.0% 1.2% 10.5% 6.0% 1.2% 70.6% 79.6% 89.1% SD7 5.7% 22.3% 12.6% 2.6% 10.5% 6.1% 1.3% 61.5% 75.6% 90.4% deduce diverse “profiles”: SD3 has a tendency towards more navigation and editing, and less understanding. In essence he could be characterized as more “aggressive” towards the code base. Similarly, SD2 spends almost the same amount of time on navigation, but distributes almost equally the remaining time between editing and inspection, being thus more “cautious” and she probably frequently verifies the implemented changes. SD5 and SD6 are even more cautious, denoted by their high understanding values. In essence they reflect more on the code before they change it. SD3 however is making very little use of inspecting, which is a preferred activity of skilled developers. SD1 and SD3 have the highest editing and the among the lowest understanding values. In essence, they seem to be at ease with the code base and confidently change it without the need to rely on extensive navigation. Table IX lists the relative importance of the activities for each Java developer. Again we can infer some developer “profiles”. For example JD8 took a short time to implement the changes, but has high understanding and low editing (refer to Table IV for durations). JD2 and JD14 have a similar behavior but they took more time to implement the task. We can say that JD8 is someone who thinks deeply about what to do, and then TABLE IX: Java Development Activities per Developer. Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1 Dev. N (%) E (%) U (%) Min Med Max Min Med Max JD1 0.5% 60.2% 33.4% 6.68% 39.3% 66.0% 92.78% JD2 0.8% 20.3% 11.3% 2.25% 78.8% 87.9% 96.90% JD3 0.8% 52.5% 29.1% 5.83% 46.8% 70.1% 93.41% JD4 1.3% 32.0% 17.8% 3.56% 66.6% 80.9% 95.12% JD5 0.7% 68.7% 38.2% 7.63% 30.6% 61.1% 91.64% JD6 1.0% 40.7% 22.6% 4.52% 58.3% 76.4% 94.46% JD7 0.9% 62.1% 34.5% 6.90% 37.0% 64.6% 92.22% JD8 1.1% 24.9% 13.8% 2.76% 74.0% 85.1% 96.19% JD9 0.7% 28.3% 15.7% 3.14% 71.0% 83.5% 96.13% JD10 0.9% 34.1% 18.9% 3.79% 65.0% 80.2% 95.32% JD11 0.9% 27.6% 15.4% 3.07% 71.5% 83.8% 96.05% JD12 0.8% 49.1% 27.3% 5.46% 50.0% 71.9% 93.71% JD13 0.7% 75.2% 41.8% 8.35% 24.2% 57.6% 90.98% JD14 1.2% 22.4% 12.4% 2.48% 76.4% 86.4% 96.32% JD15 0.7% 50.1% 27.9% 5.57% 49.1% 71.4% 93.72% A. Threats to Validity SD3 is aggressive prefers to navigate and edit than understand
  • 41. Developer Diversity PLOG: Java All 0.9% 43.2% 24.0% 4.8% – – – 55.9% 75.1% 94.3% TABLE VIII: Smalltalk Development Activities per Developer. Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1 Developer N (%) E (%) I (%) U (%) Min Med Max Min Med Max Min Med Max SD1 5.1% 30.9% 17.6% 3.6% 13.7% 8.0% 1.7% 50.3% 69.4% 89.5% SD2 8.9% 21.6% 12.1% 2.4% 20.3% 11.3% 2.3% 49.2% 67.7% 86.4% SD3 8.0% 30.2% 17.0% 3.5% 5.6% 3.3% 0.7% 56.2% 71.8% 87.9% SD4 8.5% 26.5% 15.1% 3.1% 12.8% 7.4% 1.6% 52.2% 69.0% 86.8% SD5 4.6% 16.8% 9.7% 2.1% 9.3% 5.6% 1.3% 69.4% 80.1% 92.1% SD6 8.4% 10.5% 6.0% 1.2% 10.5% 6.0% 1.2% 70.6% 79.6% 89.1% SD7 5.7% 22.3% 12.6% 2.6% 10.5% 6.1% 1.3% 61.5% 75.6% 90.4% deduce diverse “profiles”: SD3 has a tendency towards more navigation and editing, and less understanding. In essence he could be characterized as more “aggressive” towards the code base. Similarly, SD2 spends almost the same amount of time on navigation, but distributes almost equally the remaining time between editing and inspection, being thus more “cautious” and she probably frequently verifies the implemented changes. SD5 and SD6 are even more cautious, denoted by their high understanding values. In essence they reflect more on the code before they change it. SD3 however is making very little use of inspecting, which is a preferred activity of skilled developers. SD1 and SD3 have the highest editing and the among the lowest understanding values. In essence, they seem to be at ease with the code base and confidently change it without the need to rely on extensive navigation. Table IX lists the relative importance of the activities for each Java developer. Again we can infer some developer “profiles”. For example JD8 took a short time to implement the changes, but has high understanding and low editing (refer to Table IV for durations). JD2 and JD14 have a similar behavior but they took more time to implement the task. We can say that JD8 is someone who thinks deeply about what to do, and then TABLE IX: Java Development Activities per Developer. Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1 Dev. N (%) E (%) U (%) Min Med Max Min Med Max JD1 0.5% 60.2% 33.4% 6.68% 39.3% 66.0% 92.78% JD2 0.8% 20.3% 11.3% 2.25% 78.8% 87.9% 96.90% JD3 0.8% 52.5% 29.1% 5.83% 46.8% 70.1% 93.41% JD4 1.3% 32.0% 17.8% 3.56% 66.6% 80.9% 95.12% JD5 0.7% 68.7% 38.2% 7.63% 30.6% 61.1% 91.64% JD6 1.0% 40.7% 22.6% 4.52% 58.3% 76.4% 94.46% JD7 0.9% 62.1% 34.5% 6.90% 37.0% 64.6% 92.22% JD8 1.1% 24.9% 13.8% 2.76% 74.0% 85.1% 96.19% JD9 0.7% 28.3% 15.7% 3.14% 71.0% 83.5% 96.13% JD10 0.9% 34.1% 18.9% 3.79% 65.0% 80.2% 95.32% JD11 0.9% 27.6% 15.4% 3.07% 71.5% 83.8% 96.05% JD12 0.8% 49.1% 27.3% 5.46% 50.0% 71.9% 93.71% JD13 0.7% 75.2% 41.8% 8.35% 24.2% 57.6% 90.98% JD14 1.2% 22.4% 12.4% 2.48% 76.4% 86.4% 96.32% JD15 0.7% 50.1% 27.9% 5.57% 49.1% 71.4% 93.72% A. Threats to Validity SD2 is cautious equally distributed editing and inspection
  • 42. Developer Diversity PLOG: Java All 0.9% 43.2% 24.0% 4.8% – – – 55.9% 75.1% 94.3% TABLE VIII: Smalltalk Development Activities per Developer. Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1 Developer N (%) E (%) I (%) U (%) Min Med Max Min Med Max Min Med Max SD1 5.1% 30.9% 17.6% 3.6% 13.7% 8.0% 1.7% 50.3% 69.4% 89.5% SD2 8.9% 21.6% 12.1% 2.4% 20.3% 11.3% 2.3% 49.2% 67.7% 86.4% SD3 8.0% 30.2% 17.0% 3.5% 5.6% 3.3% 0.7% 56.2% 71.8% 87.9% SD4 8.5% 26.5% 15.1% 3.1% 12.8% 7.4% 1.6% 52.2% 69.0% 86.8% SD5 4.6% 16.8% 9.7% 2.1% 9.3% 5.6% 1.3% 69.4% 80.1% 92.1% SD6 8.4% 10.5% 6.0% 1.2% 10.5% 6.0% 1.2% 70.6% 79.6% 89.1% SD7 5.7% 22.3% 12.6% 2.6% 10.5% 6.1% 1.3% 61.5% 75.6% 90.4% deduce diverse “profiles”: SD3 has a tendency towards more navigation and editing, and less understanding. In essence he could be characterized as more “aggressive” towards the code base. Similarly, SD2 spends almost the same amount of time on navigation, but distributes almost equally the remaining time between editing and inspection, being thus more “cautious” and she probably frequently verifies the implemented changes. SD5 and SD6 are even more cautious, denoted by their high understanding values. In essence they reflect more on the code before they change it. SD3 however is making very little use of inspecting, which is a preferred activity of skilled developers. SD1 and SD3 have the highest editing and the among the lowest understanding values. In essence, they seem to be at ease with the code base and confidently change it without the need to rely on extensive navigation. Table IX lists the relative importance of the activities for each Java developer. Again we can infer some developer “profiles”. For example JD8 took a short time to implement the changes, but has high understanding and low editing (refer to Table IV for durations). JD2 and JD14 have a similar behavior but they took more time to implement the task. We can say that JD8 is someone who thinks deeply about what to do, and then TABLE IX: Java Development Activities per Developer. Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1 Dev. N (%) E (%) U (%) Min Med Max Min Med Max JD1 0.5% 60.2% 33.4% 6.68% 39.3% 66.0% 92.78% JD2 0.8% 20.3% 11.3% 2.25% 78.8% 87.9% 96.90% JD3 0.8% 52.5% 29.1% 5.83% 46.8% 70.1% 93.41% JD4 1.3% 32.0% 17.8% 3.56% 66.6% 80.9% 95.12% JD5 0.7% 68.7% 38.2% 7.63% 30.6% 61.1% 91.64% JD6 1.0% 40.7% 22.6% 4.52% 58.3% 76.4% 94.46% JD7 0.9% 62.1% 34.5% 6.90% 37.0% 64.6% 92.22% JD8 1.1% 24.9% 13.8% 2.76% 74.0% 85.1% 96.19% JD9 0.7% 28.3% 15.7% 3.14% 71.0% 83.5% 96.13% JD10 0.9% 34.1% 18.9% 3.79% 65.0% 80.2% 95.32% JD11 0.9% 27.6% 15.4% 3.07% 71.5% 83.8% 96.05% JD12 0.8% 49.1% 27.3% 5.46% 50.0% 71.9% 93.71% JD13 0.7% 75.2% 41.8% 8.35% 24.2% 57.6% 90.98% JD14 1.2% 22.4% 12.4% 2.48% 76.4% 86.4% 96.32% JD15 0.7% 50.1% 27.9% 5.57% 49.1% 71.4% 93.72% A. Threats to Validity SD1 and 3 are the pros high editing and low understanding values
  • 43. Developer Diversity 3 has a tendency towards more ss understanding. In essence he e “aggressive” towards the code most the same amount of time on most equally the remaining time on, being thus more “cautious” erifies the implemented changes. cautious, denoted by their high ce they reflect more on the code wever is making very little use of d activity of skilled developers. est editing and the among the In essence, they seem to be at onfidently change it without the gation. e importance of the activities n we can infer some developer ok a short time to implement the anding and low editing (refer to nd JD14 have a similar behavior lement the task. We can say that eply about what to do, and then 3 is at the opposite end of the editing time, with relatively high eloper who meanders heavily in implements the changes. ce of program understanding has ding is all the more relevant as nd programming languages. We nt insight that corroborates the roaches and tools that deal with everse engineering. TABLE IX: Java Development Activities per Developer. Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1 Dev. N (%) E (%) U (%) Min Med Max Min Med Max JD1 0.5% 60.2% 33.4% 6.68% 39.3% 66.0% 92.78% JD2 0.8% 20.3% 11.3% 2.25% 78.8% 87.9% 96.90% JD3 0.8% 52.5% 29.1% 5.83% 46.8% 70.1% 93.41% JD4 1.3% 32.0% 17.8% 3.56% 66.6% 80.9% 95.12% JD5 0.7% 68.7% 38.2% 7.63% 30.6% 61.1% 91.64% JD6 1.0% 40.7% 22.6% 4.52% 58.3% 76.4% 94.46% JD7 0.9% 62.1% 34.5% 6.90% 37.0% 64.6% 92.22% JD8 1.1% 24.9% 13.8% 2.76% 74.0% 85.1% 96.19% JD9 0.7% 28.3% 15.7% 3.14% 71.0% 83.5% 96.13% JD10 0.9% 34.1% 18.9% 3.79% 65.0% 80.2% 95.32% JD11 0.9% 27.6% 15.4% 3.07% 71.5% 83.8% 96.05% JD12 0.8% 49.1% 27.3% 5.46% 50.0% 71.9% 93.71% JD13 0.7% 75.2% 41.8% 8.35% 24.2% 57.6% 90.98% JD14 1.2% 22.4% 12.4% 2.48% 76.4% 86.4% 96.32% JD15 0.7% 50.1% 27.9% 5.57% 49.1% 71.4% 93.72% A. Threats to Validity Construct Validity. We record interaction data in terms of events in the IDE with their timestamp. We devised a model to estimate the duration of activities: A threat to validity for our results is the accuracy of this model, that may not precisely capture, for example, the moment when editing activities start. To get a more accurate model to estimate activity durations, one should record more fine-grained interaction data and corresponding events. However, in Section IV-C we described how even varying the degrees of freedoms the essence of this paper remains true. JD8 is a thinker fast but with high understanding and low editing
  • 44. Developer Diversity JD13 is super cautious high amount of editing, with high navigation time 3 has a tendency towards more ss understanding. In essence he e “aggressive” towards the code most the same amount of time on most equally the remaining time on, being thus more “cautious” erifies the implemented changes. cautious, denoted by their high ce they reflect more on the code wever is making very little use of d activity of skilled developers. est editing and the among the In essence, they seem to be at onfidently change it without the gation. e importance of the activities n we can infer some developer ok a short time to implement the anding and low editing (refer to nd JD14 have a similar behavior lement the task. We can say that eply about what to do, and then 3 is at the opposite end of the editing time, with relatively high eloper who meanders heavily in implements the changes. ce of program understanding has ding is all the more relevant as nd programming languages. We nt insight that corroborates the roaches and tools that deal with everse engineering. TABLE IX: Java Development Activities per Developer. Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1 Dev. N (%) E (%) U (%) Min Med Max Min Med Max JD1 0.5% 60.2% 33.4% 6.68% 39.3% 66.0% 92.78% JD2 0.8% 20.3% 11.3% 2.25% 78.8% 87.9% 96.90% JD3 0.8% 52.5% 29.1% 5.83% 46.8% 70.1% 93.41% JD4 1.3% 32.0% 17.8% 3.56% 66.6% 80.9% 95.12% JD5 0.7% 68.7% 38.2% 7.63% 30.6% 61.1% 91.64% JD6 1.0% 40.7% 22.6% 4.52% 58.3% 76.4% 94.46% JD7 0.9% 62.1% 34.5% 6.90% 37.0% 64.6% 92.22% JD8 1.1% 24.9% 13.8% 2.76% 74.0% 85.1% 96.19% JD9 0.7% 28.3% 15.7% 3.14% 71.0% 83.5% 96.13% JD10 0.9% 34.1% 18.9% 3.79% 65.0% 80.2% 95.32% JD11 0.9% 27.6% 15.4% 3.07% 71.5% 83.8% 96.05% JD12 0.8% 49.1% 27.3% 5.46% 50.0% 71.9% 93.71% JD13 0.7% 75.2% 41.8% 8.35% 24.2% 57.6% 90.98% JD14 1.2% 22.4% 12.4% 2.48% 76.4% 86.4% 96.32% JD15 0.7% 50.1% 27.9% 5.57% 49.1% 71.4% 93.72% A. Threats to Validity Construct Validity. We record interaction data in terms of events in the IDE with their timestamp. We devised a model to estimate the duration of activities: A threat to validity for our results is the accuracy of this model, that may not precisely capture, for example, the moment when editing activities start. To get a more accurate model to estimate activity durations, one should record more fine-grained interaction data and corresponding events. However, in Section IV-C we described how even varying the degrees of freedoms the essence of this paper remains true.
  • 45.
  • 46. Program understanding is considered one of the most time consuming activities of software development.
  • 47. Program understanding is considered one of the most time consuming activities of software development. IPSE DIXIT
  • 48. Program understanding is considered one of the most time consuming activities of software development. IPSE DIXIT Interaction data Empirical evidence on the role of program comprehension IDEs
  • 49. Program understanding is considered one of the most time consuming activities of software development. @robertominelli IPSE DIXIT Interaction data Empirical evidence on the role of program comprehension IDEs NAV EDI INS UND %oftimespent 10% 20% 30% 40% 50% 60% 70% 80% 90% Smalltalk Java
  • 50. Program understanding is considered one of the most time consuming activities of software development. @robertominelli IPSE DIXIT Interaction data Empirical evidence on the role of program comprehension IDEs NAV EDI INS UND %oftimespent 10% 20% 30% 40% 50% 60% 70% 80% 90% Smalltalk Java Significantlyunderestimated byprevious research
  • 51. EI ∆Ii ∆Ei∆Ui e Equation (3) we should know the start time of hat is Ei. We cannot know this before solving 4). , to determine Ei we need the end time of that is Ii, and we cannot know this a priori. To e can rewrite Equations (3) and (4) as follows: ⇢ Ii = PI ⇥ ( Ei) Ei = PE ⇥ ( Ii) (5) = Ii + Ui + Ei. Ii depends on Ei, ersa. We want to find two percentages, PIE I and that Ei and Ii can be computed from the whole ⇢ Ii = PIE I ⇥ Ei = PIE E ⇥ determine Ei we need the end time of is Ii, and we cannot know this a priori. To an rewrite Equations (3) and (4) as follows: ⇢ Ii = PI ⇥ ( Ei) Ei = PE ⇥ ( Ii) (5) = Ii + Ui + Ei. Ii depends on Ei, . We want to find two percentages, PIE I and Ei and Ii can be computed from the whole ⇢ Ii = PIE I ⇥ Ei = PIE E ⇥ on, these two fractions are: ⇢ PIE I = Ii PIE E = Ei ng Equations (5) by we obtain: ⇢ PIE I = PI ⇥ (1 PIE E ) PIE E = PE ⇥ (1 PIE I ) (6) quations (6) we obtain: ( PIE I = PI PI ⇥PE 1 PI ⇥PE PIE E = PE PI ⇥PE 1 PI ⇥PE rize, the three time intervals depicted in Fig. 9, Editing Activities. Editing acti records an event of type NW at tim performs a navigation after editing. an unknown moment in the time in the previous event, denoted as end To make the editing activity Ei ex middle of the interval and with a d the duration of that interval. The N to a navigation activity with a fixed Ei = PE ⇥ (t(NW ) e To solve the first equation we need to solve the result of the second. We need two percentages that only depend on the full interval (∆). Solving a couple of equation leads to these two percentages.