Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Co-evolving changes in a data-intensive software system
1. Co-‐Evolving
Changes
in
a
Data-‐Intensive
So3ware
System
Mathieu
Goeminne,
Alexandre
Decan,
Tom
Mens
Service
de
Génie
Logiciel,
Université
de
Mons
hDp://informaIque.umons.ac.be/genlog/projects/disse
CSMR-‐WCRE
2014
So.ware
Evolu6on
Week
-‐
Early
Research
Achievements,
February
2014
2. Context
• FNRS
Projet
de
Recherche
“Data-‐Intensive
So3ware
System
EvoluIon”
– Interuniversity
collaboraIon
with
Université
de
Namur
• See
also
DAHLIA
tool
demo
by
A.
Cleve
and
L.
Meurice
• Expand
empirical
MSR
research
to
include
database-‐related
acIviIes
• Overall
goal
– Analyse
and
support
co-‐evoluIon
between
program
code
and
database
(schema)
in
data-‐intensive
so3ware
systems
• Approach
– Develop
generic
framework
– Implement
dedicated
analysis
and
visualisaIon
tools
– Carry
out
empirical
case
studies
February
2014
-‐
CSMR-‐WCRE
So3ware
EvoluIon
Week,
Antwerp,
Belgium
3. Research
QuesIons
• Code-‐centric
focus
– RQ1:
Is
there
any
relaIon
between
how
source
code
files
and
database-‐related
files
evolve?
– RQ2:
What’s
the
effect
of
introducing
a
parIcular
persistency
technology
(Hibernate,
JPA)?
• Social
focus
– RQ3:
How
do
developers
divide
their
work
and
how
does
this
evolve
over
Ime?
February
2014
-‐
CSMR-‐WCRE
So3ware
EvoluIon
Week,
Antwerp,
Belgium
3
4. Case
Study:
OSCAR
• Canadian
research
network
SCOOP
– Social
Collaboratory
for
Outcome
Oriented
Primary
care
• hDp://scoop.leadlab.ca
• Open
source
tool
infrastructure
for
Electronic
Medical
Records
(EMR)
• hDp://github.com/scoophealth
• OSCAR:
EMR
system
to
improve
healthcare
– Used
in
hundreds
of
clinics
across
Canada
– Support
for
billing,
chronic
disease
management
tools,
prescripIon
module,
scheduling,
...
• Data
available
on
hDps://github.com/scoophealth/oscar.git
February
2014
-‐
CSMR-‐WCRE
So3ware
EvoluIon
Week,
Antwerp,
Belgium
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
100
February
2014
-‐
CSMR-‐WCRE
So3ware
EvoluIon
Week,
Antwerp,
Belgium
5
6. EvoluIon
of
OSCAR
Code
dimension
• 3-‐Ier
web
applicaIon
wriDen
in
Java
and
JSP
Monthly
aggregated
proporIon
of
JSP
and
Java
files
100%#
90%#
80%#
70%#
60%#
50%#
40%#
30%#
jsp#
20%#
java#
10%#
February
2014
-‐
CSMR-‐WCRE
So3ware
EvoluIon
Week,
Antwerp,
Belgium
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
(a3er
idenIty
merging)
25"
20"
15"
10"
5"
February
2014
-‐
CSMR-‐WCRE
So3ware
EvoluIon
Week,
Antwerp,
Belgium
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
9. EvoluIon
of
OSCAR
Social
Dimension
Developer
• How
does
the
acIvity
of
developers
evolve
over
Ime?
monthly
aggregated
number
of
file
touches
February
2014
-‐
CSMR-‐WCRE
So3ware
EvoluIon
Week,
Antwerp,
Belgium
9
10. Introducing
Persistence
Provider
in
OSCAR
• 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
• Java
Persistency
Architecture
(JPA)
– introduced
in
OSCAR
since
July
2008
– industry
standard
ORM
persistency
API
– Uses
Java
annotaIons
instead
of
XML
files
February
2014
-‐
CSMR-‐WCRE
So3ware
EvoluIon
Week,
Antwerp,
Belgium
10
12. Introducing
Persistence
Provider
Social
dimension
Developer
• Who
is
involved
in
introducing
changes
in
database-‐related
code?
Bubble
size
=
log(monthly
aggregated
number
of
touched
files)
February
2014
-‐
CSMR-‐WCRE
So3ware
EvoluIon
Week,
Antwerp,
Belgium
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
February
2014
-‐
CSMR-‐WCRE
So3ware
EvoluIon
Week,
Antwerp,
Belgium
13
14. Preliminary
Conclusions
RQ1:
Code-‐related
and
database-‐related
files
evolve
together
(no
“phased”
co-‐evoluIon)
!
RQ2:
IntroducIon
of
Hibernate,
then
JPA
which
takes
over
Hibernate,
but
embedded
SQL
sIll
remains
very
important
!
!
RQ3:
No
clear
separaIon
of
acIviIes
between
developers
Majority
of
developers
changes
both
db-‐related
and
db-‐
unrelated
code
No
observed
periods
dedicated
to
a
specific
acIvity
February
2014
-‐
CSMR-‐WCRE
So3ware
EvoluIon
Week,
Antwerp,
Belgium
14
15. Future
work
• Analyse
file
changes
at
finer
granularity
• Link
code-‐centric
view
with
database-‐centric
view
– Who
is
making
changes
in
the
database
schema?
– How
do
schema
changes
relate
to
(and
impact)
code
changes
(and
vice
versa)?
– Which
co-‐evoluIon
change
paDerns
do
we
observe?
February
2014
-‐
CSMR-‐WCRE
So3ware
EvoluIon
Week,
Antwerp,
Belgium
15
16. Future
Work
• Study
impact
of
using
ORM
providers
– Analyse
introducIon
of
new
technology
in
code
• Do
we
observe
parIcular
refactorings?
– How
do
persistence
providers
reduce
impact
of
changes
in
database
schema?
• Replicate/generalise
study
on
other
systems
– SuggesIons?
February
2014
-‐
CSMR-‐WCRE
So3ware
EvoluIon
Week,
Antwerp,
Belgium
16
17. References
• M.
Goeminne,
A.
Decan,
T.
Mens,
Co-‐evolving
Code-‐
Related
and
Database-‐Related
Changes
in
a
Data-‐Intensive
So.ware
System,
CSMR-‐WCRE
2014
ERA
track
• L.
Meurice,
A.
Cleve,
DAHLIA:
A
Visual
Analyzer
of
Database
Schema
Evolu6on,
CSMR-‐WCRE
2014
Tool
Demo
• A.
Cleve,
T.
Mens,
J.-‐L.
Hainaut,
Data-‐Intensive
System
EvoluIon,
IEEE
Computer
43(8):
110-‐112
(2010)
• A.
Cleve,
M.
Gobert,
L.
Meurice,
J.
Maes,
J.
Weber,
Understanding
database
schema
evoluIon:
A
case
study,
Science
of
Computer
Programming
(2013)
February
2014
-‐
CSMR-‐WCRE
So3ware
EvoluIon
Week,
Antwerp,
Belgium
17
18. References
!
!
Evolving Software Systems
Mens, Tom; Serebrenik, Alexander; Cleve, Anthony (Eds.)
2014, XXIII, 404 p.
!
Springer, ISBN 978-3-642-45398-4
February
2014
-‐
CSMR-‐WCRE
So3ware
EvoluIon
Week,
Antwerp,
Belgium
18