SlideShare ist ein Scribd-Unternehmen logo
1 von 18
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
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
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
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
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
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
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
EvoluIon	
  of	
  OSCAR

Code	
  dimension
• Growth	
  of	
  source	
  code	
  files	
  w.r.t.

database-­‐related	
  files
6000"
pure"

5000"

sql"

4000"
3000"
2000"
1000"

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"

sql	
  =	
  code	
  files	
  containing	
  embedded	
  SQL	
  statements
February	
  2014	
  -­‐	
  CSMR-­‐WCRE	
  So3ware	
  EvoluIon	
  Week,	
  Antwerp,	
  Belgium

8
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
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
Introducing	
  Persistence	
  Provider

Code	
  dimension
SQL	
  =	
  code	
  file	
  containing	
  embedded	
  SQL	
  query	
  
HIB	
  =	
  Java	
  file	
  targeted	
  by	
  Hibernate	
  XML	
  file	
  
JPA	
  =	
  Java	
  file	
  containing	
  JPA	
  annotaIon	
  
pure	
  =	
  code	
  files	
  not	
  containing	
  any	
  of	
  these	
  
!

1600"
1400"

!

1200"
1000"

!
!

800"

JPA#

HIB#

600"

SQL#

pure#

400"
JPA"

200"

!

HIB"

SQL"

0"
2003)07)01"
2003)11)01"
2004)03)01"
2004)07)01"
2004)11)01"
2005)03)01"
2005)07)01"
2005)11)01"
2006)03)01"
2006)07)01"
2006)11)01"
2007)03)01"
2007)07)01"
2007)11)01"
2008)03)01"
2008)07)01"
2008)11)01"
2009)03)01"
2009)07)01"
2009)11)01"
2010)03)01"
2010)07)01"
2010)11)01"
2011)03)01"
2011)07)01"
2011)11)01"
2012)03)01"
2012)07)01"
2012)11)01"
2013)03)01"
2013)07)01"

!

2003-07-01#
2004-01-01#
2004-07-01#
2005-01-01#
2005-07-01#
2006-01-01#
2006-07-01#
2007-01-01#
2007-07-01#
2008-01-01#
2008-07-01#
2009-01-01#
2009-07-01#
2010-01-01#
2010-07-01#
2011-01-01#
2011-07-01#
2012-01-01#
2012-07-01#
2013-01-01#
2013-07-01#

100%#
90%#
80%#
70%#
60%#
50%#
40%#
30%#
20%#
10%#
0%#

Monthly	
  aggregated	
  number	
  of	
  acIve	
  code	
  files

February	
  2014	
  -­‐	
  CSMR-­‐WCRE	
  So3ware	
  EvoluIon	
  Week,	
  Antwerp,	
  Belgium

11
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
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
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
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
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
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
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

Weitere ähnliche Inhalte

Ähnlich wie Co-evolving changes in a data-intensive software system

Empirical research results for the evolution of a data-intensive software sys...
Empirical research results for the evolution of a data-intensive software sys...Empirical research results for the evolution of a data-intensive software sys...
Empirical research results for the evolution of a data-intensive software sys...Tom Mens
 
Novo Nordisk's journey in developing an open-source application on Neo4j
Novo Nordisk's journey in developing an open-source application on Neo4jNovo Nordisk's journey in developing an open-source application on Neo4j
Novo Nordisk's journey in developing an open-source application on Neo4jNeo4j
 
EOSC-Life Workflow Collaboratory
EOSC-Life Workflow CollaboratoryEOSC-Life Workflow Collaboratory
EOSC-Life Workflow CollaboratoryCarole Goble
 
Workflows, provenance and reporting: a lifecycle perspective at BIH 2013, Rome
Workflows, provenance and reporting: a lifecycle perspective at BIH 2013, RomeWorkflows, provenance and reporting: a lifecycle perspective at BIH 2013, Rome
Workflows, provenance and reporting: a lifecycle perspective at BIH 2013, RomeCarole Goble
 
Dotnet datamining ieee projects 2012 @ Seabirds ( Chennai, Pondicherry, Vello...
Dotnet datamining ieee projects 2012 @ Seabirds ( Chennai, Pondicherry, Vello...Dotnet datamining ieee projects 2012 @ Seabirds ( Chennai, Pondicherry, Vello...
Dotnet datamining ieee projects 2012 @ Seabirds ( Chennai, Pondicherry, Vello...SBGC
 
Open Infrastructure for Cultural Heritage Digital Content
Open Infrastructure for Cultural Heritage Digital ContentOpen Infrastructure for Cultural Heritage Digital Content
Open Infrastructure for Cultural Heritage Digital ContentNikos Houssos
 
DevOps for Machine Learning overview en-us
DevOps for Machine Learning overview en-usDevOps for Machine Learning overview en-us
DevOps for Machine Learning overview en-useltonrodriguez11
 
Proof of Concept for Learning Analytics Interoperability
Proof of Concept for Learning Analytics InteroperabilityProof of Concept for Learning Analytics Interoperability
Proof of Concept for Learning Analytics InteroperabilityOpen Cyber University of Korea
 
Federated Cloud Computing
Federated Cloud ComputingFederated Cloud Computing
Federated Cloud ComputingDavid Wallom
 
Co-Evolving Code-Related and Database-related Changes in Data Intensive Softw...
Co-Evolving Code-Related and Database-related Changes in Data Intensive Softw...Co-Evolving Code-Related and Database-related Changes in Data Intensive Softw...
Co-Evolving Code-Related and Database-related Changes in Data Intensive Softw...Mathieu Goeminne
 
Co-evolving code-related and database-related changes in a data-intensive sof...
Co-evolving code-related and database-related changes in a data-intensive sof...Co-evolving code-related and database-related changes in a data-intensive sof...
Co-evolving code-related and database-related changes in a data-intensive sof...Tom Mens
 
[Wroclaw #5] OWASP Projects: beyond Top 10
[Wroclaw #5] OWASP Projects: beyond Top 10[Wroclaw #5] OWASP Projects: beyond Top 10
[Wroclaw #5] OWASP Projects: beyond Top 10OWASP
 
DevOps for Network Engineers
DevOps for Network EngineersDevOps for Network Engineers
DevOps for Network Engineersstefan vallin
 
nikhilAyyagari_Fulltime_Resume
nikhilAyyagari_Fulltime_ResumenikhilAyyagari_Fulltime_Resume
nikhilAyyagari_Fulltime_ResumeNikhil Ayyagari
 

Ähnlich wie Co-evolving changes in a data-intensive software system (20)

Empirical research results for the evolution of a data-intensive software sys...
Empirical research results for the evolution of a data-intensive software sys...Empirical research results for the evolution of a data-intensive software sys...
Empirical research results for the evolution of a data-intensive software sys...
 
Novo Nordisk's journey in developing an open-source application on Neo4j
Novo Nordisk's journey in developing an open-source application on Neo4jNovo Nordisk's journey in developing an open-source application on Neo4j
Novo Nordisk's journey in developing an open-source application on Neo4j
 
EOSC-Life Workflow Collaboratory
EOSC-Life Workflow CollaboratoryEOSC-Life Workflow Collaboratory
EOSC-Life Workflow Collaboratory
 
Duc le CV
Duc le CVDuc le CV
Duc le CV
 
sample-resume
sample-resumesample-resume
sample-resume
 
Workflows, provenance and reporting: a lifecycle perspective at BIH 2013, Rome
Workflows, provenance and reporting: a lifecycle perspective at BIH 2013, RomeWorkflows, provenance and reporting: a lifecycle perspective at BIH 2013, Rome
Workflows, provenance and reporting: a lifecycle perspective at BIH 2013, Rome
 
Dotnet datamining ieee projects 2012 @ Seabirds ( Chennai, Pondicherry, Vello...
Dotnet datamining ieee projects 2012 @ Seabirds ( Chennai, Pondicherry, Vello...Dotnet datamining ieee projects 2012 @ Seabirds ( Chennai, Pondicherry, Vello...
Dotnet datamining ieee projects 2012 @ Seabirds ( Chennai, Pondicherry, Vello...
 
Open Infrastructure for Cultural Heritage Digital Content
Open Infrastructure for Cultural Heritage Digital ContentOpen Infrastructure for Cultural Heritage Digital Content
Open Infrastructure for Cultural Heritage Digital Content
 
DevOps for Machine Learning overview en-us
DevOps for Machine Learning overview en-usDevOps for Machine Learning overview en-us
DevOps for Machine Learning overview en-us
 
Proof of Concept for Learning Analytics Interoperability
Proof of Concept for Learning Analytics InteroperabilityProof of Concept for Learning Analytics Interoperability
Proof of Concept for Learning Analytics Interoperability
 
ABHAY_SHUKLA
ABHAY_SHUKLAABHAY_SHUKLA
ABHAY_SHUKLA
 
Shuchi_Agrawal
Shuchi_AgrawalShuchi_Agrawal
Shuchi_Agrawal
 
Nikhil_Ayyagari_Resume
Nikhil_Ayyagari_ResumeNikhil_Ayyagari_Resume
Nikhil_Ayyagari_Resume
 
Federated Cloud Computing
Federated Cloud ComputingFederated Cloud Computing
Federated Cloud Computing
 
Co-Evolving Code-Related and Database-related Changes in Data Intensive Softw...
Co-Evolving Code-Related and Database-related Changes in Data Intensive Softw...Co-Evolving Code-Related and Database-related Changes in Data Intensive Softw...
Co-Evolving Code-Related and Database-related Changes in Data Intensive Softw...
 
Co-evolving code-related and database-related changes in a data-intensive sof...
Co-evolving code-related and database-related changes in a data-intensive sof...Co-evolving code-related and database-related changes in a data-intensive sof...
Co-evolving code-related and database-related changes in a data-intensive sof...
 
[Wroclaw #5] OWASP Projects: beyond Top 10
[Wroclaw #5] OWASP Projects: beyond Top 10[Wroclaw #5] OWASP Projects: beyond Top 10
[Wroclaw #5] OWASP Projects: beyond Top 10
 
DevOps for Network Engineers
DevOps for Network EngineersDevOps for Network Engineers
DevOps for Network Engineers
 
Web Application Security Strategy
Web Application Security Strategy Web Application Security Strategy
Web Application Security Strategy
 
nikhilAyyagari_Fulltime_Resume
nikhilAyyagari_Fulltime_ResumenikhilAyyagari_Fulltime_Resume
nikhilAyyagari_Fulltime_Resume
 

Mehr von Tom Mens

How to be(come) a successful PhD student
How to be(come) a successful PhD studentHow to be(come) a successful PhD student
How to be(come) a successful PhD studentTom Mens
 
Recognising bot activity in collaborative software development
Recognising bot activity in collaborative software developmentRecognising bot activity in collaborative software development
Recognising bot activity in collaborative software developmentTom Mens
 
A Dataset of Bot and Human Activities in GitHub
A Dataset of Bot and Human Activities in GitHubA Dataset of Bot and Human Activities in GitHub
A Dataset of Bot and Human Activities in GitHubTom Mens
 
The (r)evolution of CI/CD on GitHub
 The (r)evolution of CI/CD on GitHub The (r)evolution of CI/CD on GitHub
The (r)evolution of CI/CD on GitHubTom Mens
 
Nurturing the Software Ecosystems of the Future
Nurturing the Software Ecosystems of the FutureNurturing the Software Ecosystems of the Future
Nurturing the Software Ecosystems of the FutureTom Mens
 
Comment programmer un robot en 30 minutes?
Comment programmer un robot en 30 minutes?Comment programmer un robot en 30 minutes?
Comment programmer un robot en 30 minutes?Tom Mens
 
On the rise and fall of CI services in GitHub
On the rise and fall of CI services in GitHubOn the rise and fall of CI services in GitHub
On the rise and fall of CI services in GitHubTom Mens
 
On backporting practices in package dependency networks
On backporting practices in package dependency networksOn backporting practices in package dependency networks
On backporting practices in package dependency networksTom Mens
 
Comparing semantic versioning practices in Cargo, npm, Packagist and Rubygems
Comparing semantic versioning practices in Cargo, npm, Packagist and RubygemsComparing semantic versioning practices in Cargo, npm, Packagist and Rubygems
Comparing semantic versioning practices in Cargo, npm, Packagist and RubygemsTom Mens
 
Lost in Zero Space
Lost in Zero SpaceLost in Zero Space
Lost in Zero SpaceTom Mens
 
Evaluating a bot detection model on git commit messages
Evaluating a bot detection model on git commit messagesEvaluating a bot detection model on git commit messages
Evaluating a bot detection model on git commit messagesTom Mens
 
Is my software ecosystem healthy? It depends!
Is my software ecosystem healthy? It depends!Is my software ecosystem healthy? It depends!
Is my software ecosystem healthy? It depends!Tom Mens
 
Bot or not? Detecting bots in GitHub pull request activity based on comment s...
Bot or not? Detecting bots in GitHub pull request activity based on comment s...Bot or not? Detecting bots in GitHub pull request activity based on comment s...
Bot or not? Detecting bots in GitHub pull request activity based on comment s...Tom Mens
 
On the fragility of open source software packaging ecosystems
On the fragility of open source software packaging ecosystemsOn the fragility of open source software packaging ecosystems
On the fragility of open source software packaging ecosystemsTom Mens
 
How magic is zero? An Empirical Analysis of Initial Development Releases in S...
How magic is zero? An Empirical Analysis of Initial Development Releases in S...How magic is zero? An Empirical Analysis of Initial Development Releases in S...
How magic is zero? An Empirical Analysis of Initial Development Releases in S...Tom Mens
 
Comparing dependency issues across software package distributions (FOSDEM 2020)
Comparing dependency issues across software package distributions (FOSDEM 2020)Comparing dependency issues across software package distributions (FOSDEM 2020)
Comparing dependency issues across software package distributions (FOSDEM 2020)Tom Mens
 
Measuring Technical Lag in Software Deployments (CHAOSScon 2020)
Measuring Technical Lag in Software Deployments (CHAOSScon 2020)Measuring Technical Lag in Software Deployments (CHAOSScon 2020)
Measuring Technical Lag in Software Deployments (CHAOSScon 2020)Tom Mens
 
SecoHealth 2019 Research Achievements
SecoHealth 2019 Research AchievementsSecoHealth 2019 Research Achievements
SecoHealth 2019 Research AchievementsTom Mens
 
SECO-Assist 2019 research seminar
SECO-Assist 2019 research seminarSECO-Assist 2019 research seminar
SECO-Assist 2019 research seminarTom Mens
 
Empirically Analysing the Socio-Technical Health of Software Package Managers
Empirically Analysing the Socio-Technical Health of Software Package ManagersEmpirically Analysing the Socio-Technical Health of Software Package Managers
Empirically Analysing the Socio-Technical Health of Software Package ManagersTom Mens
 

Mehr von Tom Mens (20)

How to be(come) a successful PhD student
How to be(come) a successful PhD studentHow to be(come) a successful PhD student
How to be(come) a successful PhD student
 
Recognising bot activity in collaborative software development
Recognising bot activity in collaborative software developmentRecognising bot activity in collaborative software development
Recognising bot activity in collaborative software development
 
A Dataset of Bot and Human Activities in GitHub
A Dataset of Bot and Human Activities in GitHubA Dataset of Bot and Human Activities in GitHub
A Dataset of Bot and Human Activities in GitHub
 
The (r)evolution of CI/CD on GitHub
 The (r)evolution of CI/CD on GitHub The (r)evolution of CI/CD on GitHub
The (r)evolution of CI/CD on GitHub
 
Nurturing the Software Ecosystems of the Future
Nurturing the Software Ecosystems of the FutureNurturing the Software Ecosystems of the Future
Nurturing the Software Ecosystems of the Future
 
Comment programmer un robot en 30 minutes?
Comment programmer un robot en 30 minutes?Comment programmer un robot en 30 minutes?
Comment programmer un robot en 30 minutes?
 
On the rise and fall of CI services in GitHub
On the rise and fall of CI services in GitHubOn the rise and fall of CI services in GitHub
On the rise and fall of CI services in GitHub
 
On backporting practices in package dependency networks
On backporting practices in package dependency networksOn backporting practices in package dependency networks
On backporting practices in package dependency networks
 
Comparing semantic versioning practices in Cargo, npm, Packagist and Rubygems
Comparing semantic versioning practices in Cargo, npm, Packagist and RubygemsComparing semantic versioning practices in Cargo, npm, Packagist and Rubygems
Comparing semantic versioning practices in Cargo, npm, Packagist and Rubygems
 
Lost in Zero Space
Lost in Zero SpaceLost in Zero Space
Lost in Zero Space
 
Evaluating a bot detection model on git commit messages
Evaluating a bot detection model on git commit messagesEvaluating a bot detection model on git commit messages
Evaluating a bot detection model on git commit messages
 
Is my software ecosystem healthy? It depends!
Is my software ecosystem healthy? It depends!Is my software ecosystem healthy? It depends!
Is my software ecosystem healthy? It depends!
 
Bot or not? Detecting bots in GitHub pull request activity based on comment s...
Bot or not? Detecting bots in GitHub pull request activity based on comment s...Bot or not? Detecting bots in GitHub pull request activity based on comment s...
Bot or not? Detecting bots in GitHub pull request activity based on comment s...
 
On the fragility of open source software packaging ecosystems
On the fragility of open source software packaging ecosystemsOn the fragility of open source software packaging ecosystems
On the fragility of open source software packaging ecosystems
 
How magic is zero? An Empirical Analysis of Initial Development Releases in S...
How magic is zero? An Empirical Analysis of Initial Development Releases in S...How magic is zero? An Empirical Analysis of Initial Development Releases in S...
How magic is zero? An Empirical Analysis of Initial Development Releases in S...
 
Comparing dependency issues across software package distributions (FOSDEM 2020)
Comparing dependency issues across software package distributions (FOSDEM 2020)Comparing dependency issues across software package distributions (FOSDEM 2020)
Comparing dependency issues across software package distributions (FOSDEM 2020)
 
Measuring Technical Lag in Software Deployments (CHAOSScon 2020)
Measuring Technical Lag in Software Deployments (CHAOSScon 2020)Measuring Technical Lag in Software Deployments (CHAOSScon 2020)
Measuring Technical Lag in Software Deployments (CHAOSScon 2020)
 
SecoHealth 2019 Research Achievements
SecoHealth 2019 Research AchievementsSecoHealth 2019 Research Achievements
SecoHealth 2019 Research Achievements
 
SECO-Assist 2019 research seminar
SECO-Assist 2019 research seminarSECO-Assist 2019 research seminar
SECO-Assist 2019 research seminar
 
Empirically Analysing the Socio-Technical Health of Software Package Managers
Empirically Analysing the Socio-Technical Health of Software Package ManagersEmpirically Analysing the Socio-Technical Health of Software Package Managers
Empirically Analysing the Socio-Technical Health of Software Package Managers
 

Kürzlich hochgeladen

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 

Kürzlich hochgeladen (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
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
  • 8. EvoluIon  of  OSCAR
 Code  dimension • Growth  of  source  code  files  w.r.t.
 database-­‐related  files 6000" pure" 5000" sql" 4000" 3000" 2000" 1000" 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" sql  =  code  files  containing  embedded  SQL  statements February  2014  -­‐  CSMR-­‐WCRE  So3ware  EvoluIon  Week,  Antwerp,  Belgium 8
  • 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
  • 11. Introducing  Persistence  Provider
 Code  dimension SQL  =  code  file  containing  embedded  SQL  query   HIB  =  Java  file  targeted  by  Hibernate  XML  file   JPA  =  Java  file  containing  JPA  annotaIon   pure  =  code  files  not  containing  any  of  these   ! 1600" 1400" ! 1200" 1000" ! ! 800" JPA# HIB# 600" SQL# pure# 400" JPA" 200" ! HIB" SQL" 0" 2003)07)01" 2003)11)01" 2004)03)01" 2004)07)01" 2004)11)01" 2005)03)01" 2005)07)01" 2005)11)01" 2006)03)01" 2006)07)01" 2006)11)01" 2007)03)01" 2007)07)01" 2007)11)01" 2008)03)01" 2008)07)01" 2008)11)01" 2009)03)01" 2009)07)01" 2009)11)01" 2010)03)01" 2010)07)01" 2010)11)01" 2011)03)01" 2011)07)01" 2011)11)01" 2012)03)01" 2012)07)01" 2012)11)01" 2013)03)01" 2013)07)01" ! 2003-07-01# 2004-01-01# 2004-07-01# 2005-01-01# 2005-07-01# 2006-01-01# 2006-07-01# 2007-01-01# 2007-07-01# 2008-01-01# 2008-07-01# 2009-01-01# 2009-07-01# 2010-01-01# 2010-07-01# 2011-01-01# 2011-07-01# 2012-01-01# 2012-07-01# 2013-01-01# 2013-07-01# 100%# 90%# 80%# 70%# 60%# 50%# 40%# 30%# 20%# 10%# 0%# Monthly  aggregated  number  of  acIve  code  files February  2014  -­‐  CSMR-­‐WCRE  So3ware  EvoluIon  Week,  Antwerp,  Belgium 11
  • 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