Presentation during BENEVOL 2013, 16 December 2013 in Mons, Belgium by Mathieu Goeminne, Tom Mens, Alexandre Decan, Software Engineering Lab, Faculty of Sciences, University of Mons, Belgium. Research results published in Proceedings of IEEE CSMR-WCRE 2014 Software Evolution Week, Early Research Achievements track.
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Co-evolving code-related and database-related changes in a data-intensive software system
1. Co-‐Evolving
Code-‐Related
and
Database-‐Related
Changes
in
a
Data-‐Intensive
SoEware
System
Mathieu
Goeminne,
Alexandre
Decan,
Tom
Mens
Service
de
Génie
Logiciel,
Université
de
Mons
FNRS
Projet
de
Recherche
“Data-‐Intensive
SoEware
System
EvoluIon”
in
collaboraIon
with
A.
Cleve
and
L.
Meurice
(Université
de
Namur)
hPp://informaIque.umons.ac.be/genlog/projects/disse
2. Context
• Focus
on
data-‐intensive
so0ware
systems
(DISS)
• Expand
empirical
MSR
research
to
include
database-‐
related
acBviBes
• Study
co-‐evoluBon
between
code
and
database
• Carry
out
empirical
studies
on
open
source
DISS
16
December
2013
-‐
BENEVOL,
Mons
2
3. Research
QuesIons
• RQ1:
Is
there
any
relaIon
between
how
source
code
files
and
database-‐related
files
evolve?
• RQ2:
What
is
the
effect
of
migraIng
to
new
database
technology?
• RQ3:
How
do
developers
divide
their
work
and
how
does
this
evolve
over
Ime?
16
December
2013
-‐
BENEVOL,
Mons
3
4. Case
Study:
OSCAR
• Canadian
research
network
SCOOP
– Social
Collaboratory
for
Outcome
Oriented
Primary
care
• hPp://scoop.leadlab.ca
• Open
source
tool
infrastructure
for
Electronic
Medical
Records
(EMR)
• hPp://github.com/scoophealth
• OSCAR:
EMR
system
for
healthcare
– Support
for
billing,
chronic
disease
management
tools,
prescripIon
module,
scheduling,
...
• Data
available
on
hPps://github.com/scoophealth/oscar.git
16
December
2013
-‐
BENEVOL,
Mons
4
5. Case
Study:
OSCAR
characteris/c
value
duraIon
3,939
days
(
>
129
months)
dates
from
Nov
2002
Ill
Aug
2013
number
of
commits
18,727
number
of
disInct
files
20,718
(of
which
54%
code
files)
number
of
file
touches
93,721
number
of
disInct
developers
16
December
2013
-‐
BENEVOL,
Mons
100
5
6. EvoluIon
of
OSCAR
• Monthly
aggregated
proporIon
of
JSP
and
Java
files
in
OSCAR
100%#
90%#
80%#
70%#
60%#
50%#
40%#
30%#
jsp#
20%#
java#
10%#
16
December
2013
-‐
BENEVOL,
Mons
2013-01#
2012-07#
2012-01#
2011-07#
2011-01#
2010-07#
2010-01#
2009-07#
2009-01#
2008-07#
2008-01#
2007-07#
2007-01#
2006-07#
2006-01#
2005-07#
2005-01#
2004-07#
2004-01#
2003-07#
0%#
6
7. EvoluIon
of
OSCAR
-‐
Social
Dimension
• Monthly
number
of
disInct
acIve
developers
for
OSCAR
25"
20"
15"
10"
5"
16
December
2013
-‐
BENEVOL,
Mons
2013'01"
2012'07"
2012'01"
2011'07"
2011'01"
2010'07"
2010'01"
2009'07"
2009'01"
2008'07"
2008'01"
2007'07"
2007'01"
2006'07"
2006'01"
2005'07"
2005'01"
2004'07"
2004'01"
2003'07"
0"
7
8. EvoluIon
of
OSCAR
• Growth
of
source
code
files
and
database-‐
related
files
6000"
pure"
5000"
sql"
4000"
3000"
2000"
1000"
16
December
2013
-‐
BENEVOL,
Mons
2013)01"
2012)07"
2012)01"
2011)07"
2011)01"
2010)07"
2010)01"
2009)07"
2009)01"
2008)07"
2008)01"
2007)07"
2007)01"
2006)07"
2006)01"
2005)07"
2005)01"
2004)07"
2004)01"
2003)07"
0"
8
9. EvoluIon
of
OSCAR
-‐
Social
Dimension
Developer
• How
does
the
acIvity
of
developers
evolve
over
Ime?
16
December
2013
-‐
BENEVOL,
Mons
9
10. IntroducIon
of
Persistence
Provider
• Hibernate
(introduced
in
OSCAR
since
July
2006)
– Java
object-‐relaIonal
mapping
(ORM)
library
• XML
files
map
Java
classes
to
database
tables
and
Java
data
types
to
SQL
data
types
• facilitates
data
query
and
retrieval
• generates
SQL
calls
and
relieves
the
developer
from
manual
result
set
handling
and
object
conversion
• JPA
(introduced
in
OSCAR
since
July
2008)
– Java
Persistence
API
– Uses
Java
annotaIons
instead
of
XML
files
for
ORM
16
December
2013
-‐
BENEVOL,
Mons
10
12. IntroducIon
of
Persistence
Provider
Developer
• Who
is
involved
in
introducing
changes
in
database-‐related
code?
16
December
2013
-‐
BENEVOL,
Mons
12
13. EvoluIon
of
OSCAR
-‐
Social
Dimension
• How
do
developers
divide
their
work?
OSCAR$developers$(100)$
3"
24"
Java$(87)$
JSP$(86)$
24"
10"
HIB$
1"
9"
8"
10"
JPA$
11"
0"
SQL$(53)$
Number of developers that introduce database-related code
in some file for the first time
16
December
2013
-‐
BENEVOL,
Mons
13
14. Preliminary
Conclusions
• RQ1:
Code-‐related
and
database-‐related
files
evolve
together
(no
“phased”
co-‐evoluIon)
• RQ2:
MigraIon
to
Hibernate,
then
JPA,
but
embedded
SQL
sIll
remains
important
• RQ3:
No
clear
separaIon
of
acIviIes
between
developers
– The
majority
of
developers
changes
both
db-‐related
and
db-‐
unrelated
code
– No
observed
periods
dedicated
to
a
specific
acIvity
16
December
2013
-‐
BENEVOL,
Mons
14
15. Future
Work
• ConInue
studying
co-‐evoluIon
between
code-‐related
and
db-‐
related
changes
– Refine
our
results
by
analysing
changes
at
finer
granularity
• Analyse
database
schema
changes
and
their
impact
on
source
code
(collaboraIon
with
UNamur)
– Detect
change
paPerns
in
code
and
database
schema
• Study
impact
of
introducing
persistence
providers
– Analyse
migraIon
paPerns
in
code
– How
do
persistence
providers
reduce
impact
of
changes
in
database
schema?
• Study
and
compare
with
other
DISS
16
December
2013
-‐
BENEVOL,
Mons
15