SlideShare a Scribd company logo
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
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
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
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
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
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
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
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
EvoluIon	
  of	
  OSCAR	
  -­‐	
  Social	
  Dimension

Developer

• How	
  does	
  the	
  acIvity	
  of	
  developers	
  evolve	
  
over	
  Ime?

16	
  December	
  2013	
  -­‐	
  BENEVOL,	
  Mons

9
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
•
•
•
•

100%#
90%#
80%#
70%#
60%#
50%#
40%#
30%#
20%#
10%#
0%#
JPA#
HIB#
600"

SQL#
pure#

16	
  December	
  2013	
  -­‐	
  BENEVOL,	
  Mons
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#

IntroducIon	
  of	
  Persistence	
  Provider
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"

400"

200"
JPA"
HIB"
SQL"

0"

Monthly	
  aggregated	
  number	
  of	
  acIve	
  files
11
IntroducIon	
  of	
  Persistence	
  Provider

Developer

• Who	
  is	
  involved	
  in	
  introducing	
  changes	
  in	
  
database-­‐related	
  code?

16	
  December	
  2013	
  -­‐	
  BENEVOL,	
  Mons

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
16	
  December	
  2013	
  -­‐	
  BENEVOL,	
  Mons

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

More Related Content

Viewers also liked

Images of insidious 2
Images of insidious 2Images of insidious 2
Images of insidious 2
lewisjupp
 
Comparison between my transition project and my real
Comparison between my transition project and my realComparison between my transition project and my real
Comparison between my transition project and my reallewisjupp
 
جواهر السبيعي هيا المشعبي
جواهر السبيعي  هيا المشعبيجواهر السبيعي  هيا المشعبي
جواهر السبيعي هيا المشعبيjojo141413
 
1 konsep-akuntansi-biaya
1 konsep-akuntansi-biaya1 konsep-akuntansi-biaya
1 konsep-akuntansi-biayaNugroho Adi
 
Target audience slide
Target audience slideTarget audience slide
Target audience slidelewisjupp
 
A gestão democrática na constituição federal de 1988 e o princípio da gestão ...
A gestão democrática na constituição federal de 1988 e o princípio da gestão ...A gestão democrática na constituição federal de 1988 e o princípio da gestão ...
A gestão democrática na constituição federal de 1988 e o princípio da gestão ...
Cleberson Moura
 
Bab 2 akuntansi biaya
Bab 2 akuntansi biayaBab 2 akuntansi biaya
Bab 2 akuntansi biayaNugroho Adi
 

Viewers also liked (8)

Images of insidious 2
Images of insidious 2Images of insidious 2
Images of insidious 2
 
Comparison between my transition project and my real
Comparison between my transition project and my realComparison between my transition project and my real
Comparison between my transition project and my real
 
جواهر السبيعي هيا المشعبي
جواهر السبيعي  هيا المشعبيجواهر السبيعي  هيا المشعبي
جواهر السبيعي هيا المشعبي
 
1 konsep-akuntansi-biaya
1 konsep-akuntansi-biaya1 konsep-akuntansi-biaya
1 konsep-akuntansi-biaya
 
Target audience slide
Target audience slideTarget audience slide
Target audience slide
 
A gestão democrática na constituição federal de 1988 e o princípio da gestão ...
A gestão democrática na constituição federal de 1988 e o princípio da gestão ...A gestão democrática na constituição federal de 1988 e o princípio da gestão ...
A gestão democrática na constituição federal de 1988 e o princípio da gestão ...
 
Presentation_Niraj_Final
Presentation_Niraj_Final Presentation_Niraj_Final
Presentation_Niraj_Final
 
Bab 2 akuntansi biaya
Bab 2 akuntansi biayaBab 2 akuntansi biaya
Bab 2 akuntansi biaya
 

Similar to Co-Evolving Code-Related and Database-related Changes in Data Intensive Software System

Co-evolving changes in a data-intensive software system
Co-evolving changes in a data-intensive software systemCo-evolving changes in a data-intensive software system
Co-evolving changes in a data-intensive software system
Tom Mens
 
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
 
AUTOMATIC TRANSFER OF DATA USING SERVICE-ORIENTED ARCHITECTURE TO NoSQL DATAB...
AUTOMATIC TRANSFER OF DATA USING SERVICE-ORIENTED ARCHITECTURE TO NoSQL DATAB...AUTOMATIC TRANSFER OF DATA USING SERVICE-ORIENTED ARCHITECTURE TO NoSQL DATAB...
AUTOMATIC TRANSFER OF DATA USING SERVICE-ORIENTED ARCHITECTURE TO NoSQL DATAB...
IRJET Journal
 
Duc le CV
Duc le CVDuc le CV
Duc le CV
Duc Minh Le
 
Business Intelligence & NoSQL Databases
Business Intelligence & NoSQL DatabasesBusiness Intelligence & NoSQL Databases
Business Intelligence & NoSQL Databases
RadhoueneRouached
 
NoSQL Databases Introduction - UTN 2013
NoSQL Databases Introduction - UTN 2013NoSQL Databases Introduction - UTN 2013
NoSQL Databases Introduction - UTN 2013
Facundo Farias
 
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, SmileOCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware
 
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Marc Dutoo
 
Big Data, NoSQL with MongoDB and Cassasdra
Big Data, NoSQL with MongoDB and CassasdraBig Data, NoSQL with MongoDB and Cassasdra
Big Data, NoSQL with MongoDB and Cassasdra
Brian Enochson
 
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Lucas Jellema
 
Ranjeet updated profile
Ranjeet updated profileRanjeet updated profile
Ranjeet updated profile
Ranjeet Prasad
 
NoSQL on ACID - Meet Unstructured Postgres
NoSQL on ACID - Meet Unstructured PostgresNoSQL on ACID - Meet Unstructured Postgres
NoSQL on ACID - Meet Unstructured Postgres
EDB
 
OCCIware@OW2con 2016
OCCIware@OW2con 2016OCCIware@OW2con 2016
OCCIware@OW2con 2016
Marc Dutoo
 
OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...
OW2
 
OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware
 
Kantharaj.B_Java_4.4YrsExp_Resume
Kantharaj.B_Java_4.4YrsExp_ResumeKantharaj.B_Java_4.4YrsExp_Resume
Kantharaj.B_Java_4.4YrsExp_ResumeKantharaj B
 
Mongodb Introduction
Mongodb IntroductionMongodb Introduction
Mongodb Introduction
Jeremy Taylor
 

Similar to Co-Evolving Code-Related and Database-related Changes in Data Intensive Software System (20)

Co-evolving changes in a data-intensive software system
Co-evolving changes in a data-intensive software systemCo-evolving changes in a data-intensive software system
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...
 
BDNSbrochure
BDNSbrochureBDNSbrochure
BDNSbrochure
 
AUTOMATIC TRANSFER OF DATA USING SERVICE-ORIENTED ARCHITECTURE TO NoSQL DATAB...
AUTOMATIC TRANSFER OF DATA USING SERVICE-ORIENTED ARCHITECTURE TO NoSQL DATAB...AUTOMATIC TRANSFER OF DATA USING SERVICE-ORIENTED ARCHITECTURE TO NoSQL DATAB...
AUTOMATIC TRANSFER OF DATA USING SERVICE-ORIENTED ARCHITECTURE TO NoSQL DATAB...
 
Duc le CV
Duc le CVDuc le CV
Duc le CV
 
Business Intelligence & NoSQL Databases
Business Intelligence & NoSQL DatabasesBusiness Intelligence & NoSQL Databases
Business Intelligence & NoSQL Databases
 
Nikhil resume
Nikhil resumeNikhil resume
Nikhil resume
 
NoSQL Databases Introduction - UTN 2013
NoSQL Databases Introduction - UTN 2013NoSQL Databases Introduction - UTN 2013
NoSQL Databases Introduction - UTN 2013
 
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, SmileOCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
 
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
 
Big Data, NoSQL with MongoDB and Cassasdra
Big Data, NoSQL with MongoDB and CassasdraBig Data, NoSQL with MongoDB and Cassasdra
Big Data, NoSQL with MongoDB and Cassasdra
 
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
 
Ranjeet updated profile
Ranjeet updated profileRanjeet updated profile
Ranjeet updated profile
 
NoSQL on ACID - Meet Unstructured Postgres
NoSQL on ACID - Meet Unstructured PostgresNoSQL on ACID - Meet Unstructured Postgres
NoSQL on ACID - Meet Unstructured Postgres
 
OCCIware@OW2con 2016
OCCIware@OW2con 2016OCCIware@OW2con 2016
OCCIware@OW2con 2016
 
OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...
 
OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...
 
Kantharaj.B_Java_4.4YrsExp_Resume
Kantharaj.B_Java_4.4YrsExp_ResumeKantharaj.B_Java_4.4YrsExp_Resume
Kantharaj.B_Java_4.4YrsExp_Resume
 
Resume_Ronak Dhalawat
Resume_Ronak DhalawatResume_Ronak Dhalawat
Resume_Ronak Dhalawat
 
Mongodb Introduction
Mongodb IntroductionMongodb Introduction
Mongodb Introduction
 

More from Mathieu Goeminne

Utilisation de l’IA dans le manufacturing - Retour d'expérience
Utilisation de l’IA dans le manufacturing - Retour d'expérienceUtilisation de l’IA dans le manufacturing - Retour d'expérience
Utilisation de l’IA dans le manufacturing - Retour d'expérience
Mathieu Goeminne
 
Spark - au dela du dataframe avec Tungsten et Catalyst
Spark - au dela du dataframe avec Tungsten et CatalystSpark - au dela du dataframe avec Tungsten et Catalyst
Spark - au dela du dataframe avec Tungsten et Catalyst
Mathieu Goeminne
 
Se noyer dans les yeux de Cassandre
Se noyer dans les yeux de CassandreSe noyer dans les yeux de Cassandre
Se noyer dans les yeux de Cassandre
Mathieu Goeminne
 
SMACK : Une pile logicielle open source pour le traitement big data
SMACK : Une pile logicielle open source pour le traitement big dataSMACK : Une pile logicielle open source pour le traitement big data
SMACK : Une pile logicielle open source pour le traitement big data
Mathieu Goeminne
 
Du capteur à l'amélioration de procédés - Opportunités du machine learning po...
Du capteur à l'amélioration de procédés - Opportunités du machine learning po...Du capteur à l'amélioration de procédés - Opportunités du machine learning po...
Du capteur à l'amélioration de procédés - Opportunités du machine learning po...
Mathieu Goeminne
 
De la collecte des données à l’exploitation de modèles -- Utilisation de SMAC...
De la collecte des données à l’exploitation de modèles -- Utilisation de SMAC...De la collecte des données à l’exploitation de modèles -- Utilisation de SMAC...
De la collecte des données à l’exploitation de modèles -- Utilisation de SMAC...
Mathieu Goeminne
 
L'intelligence artificielle au sein des entreprises wallonnes
L'intelligence artificielle au sein des entreprises wallonnesL'intelligence artificielle au sein des entreprises wallonnes
L'intelligence artificielle au sein des entreprises wallonnes
Mathieu Goeminne
 
Intelligence artificielle : la situation dans les entreprises wallonnes
Intelligence artificielle : la situation dans les entreprises wallonnesIntelligence artificielle : la situation dans les entreprises wallonnes
Intelligence artificielle : la situation dans les entreprises wallonnes
Mathieu Goeminne
 
Introduction au Machine Learning
Introduction au Machine LearningIntroduction au Machine Learning
Introduction au Machine Learning
Mathieu Goeminne
 

More from Mathieu Goeminne (9)

Utilisation de l’IA dans le manufacturing - Retour d'expérience
Utilisation de l’IA dans le manufacturing - Retour d'expérienceUtilisation de l’IA dans le manufacturing - Retour d'expérience
Utilisation de l’IA dans le manufacturing - Retour d'expérience
 
Spark - au dela du dataframe avec Tungsten et Catalyst
Spark - au dela du dataframe avec Tungsten et CatalystSpark - au dela du dataframe avec Tungsten et Catalyst
Spark - au dela du dataframe avec Tungsten et Catalyst
 
Se noyer dans les yeux de Cassandre
Se noyer dans les yeux de CassandreSe noyer dans les yeux de Cassandre
Se noyer dans les yeux de Cassandre
 
SMACK : Une pile logicielle open source pour le traitement big data
SMACK : Une pile logicielle open source pour le traitement big dataSMACK : Une pile logicielle open source pour le traitement big data
SMACK : Une pile logicielle open source pour le traitement big data
 
Du capteur à l'amélioration de procédés - Opportunités du machine learning po...
Du capteur à l'amélioration de procédés - Opportunités du machine learning po...Du capteur à l'amélioration de procédés - Opportunités du machine learning po...
Du capteur à l'amélioration de procédés - Opportunités du machine learning po...
 
De la collecte des données à l’exploitation de modèles -- Utilisation de SMAC...
De la collecte des données à l’exploitation de modèles -- Utilisation de SMAC...De la collecte des données à l’exploitation de modèles -- Utilisation de SMAC...
De la collecte des données à l’exploitation de modèles -- Utilisation de SMAC...
 
L'intelligence artificielle au sein des entreprises wallonnes
L'intelligence artificielle au sein des entreprises wallonnesL'intelligence artificielle au sein des entreprises wallonnes
L'intelligence artificielle au sein des entreprises wallonnes
 
Intelligence artificielle : la situation dans les entreprises wallonnes
Intelligence artificielle : la situation dans les entreprises wallonnesIntelligence artificielle : la situation dans les entreprises wallonnes
Intelligence artificielle : la situation dans les entreprises wallonnes
 
Introduction au Machine Learning
Introduction au Machine LearningIntroduction au Machine Learning
Introduction au Machine Learning
 

Recently uploaded

A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
ViralQR
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
UiPathCommunity
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
Vlad Stirbu
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 

Recently uploaded (20)

A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 

Co-Evolving Code-Related and Database-related Changes in 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
  • 11. • • • • 100%# 90%# 80%# 70%# 60%# 50%# 40%# 30%# 20%# 10%# 0%# JPA# HIB# 600" SQL# pure# 16  December  2013  -­‐  BENEVOL,  Mons 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# IntroducIon  of  Persistence  Provider 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" 400" 200" JPA" HIB" SQL" 0" Monthly  aggregated  number  of  acIve  files 11
  • 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