SlideShare a Scribd company logo
1 of 15
Download to read offline
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

Automated Planning for Resolving Model Inconsistencies - A Scalability Study
Automated Planning for Resolving Model Inconsistencies - A Scalability StudyAutomated Planning for Resolving Model Inconsistencies - A Scalability Study
Automated Planning for Resolving Model Inconsistencies - A Scalability StudyTom Mens
 
On the topology of package dependency networks: A comparison of programming l...
On the topology of package dependency networks: A comparison of programming l...On the topology of package dependency networks: A comparison of programming l...
On the topology of package dependency networks: A comparison of programming l...Tom Mens
 
Executable modeling and simulation of system software and processes
Executable modeling and simulation of system software and processesExecutable modeling and simulation of system software and processes
Executable modeling and simulation of system software and processesTom Mens
 
Model-based testing of executable statecharts
Model-based testing of executable statechartsModel-based testing of executable statecharts
Model-based testing of executable statechartsTom Mens
 
Challenges in Software Ecosystem Research
Challenges in Software Ecosystem ResearchChallenges in Software Ecosystem Research
Challenges in Software Ecosystem ResearchTom Mens
 
Social and Technical Evolution of the Ruby on Rails Software Ecosystem
Social and Technical Evolution of the Ruby on Rails Software EcosystemSocial and Technical Evolution of the Ruby on Rails Software Ecosystem
Social and Technical Evolution of the Ruby on Rails Software EcosystemTom Mens
 
Software Ecosystem Evolution. It's complex!
Software Ecosystem Evolution. It's complex!Software Ecosystem Evolution. It's complex!
Software Ecosystem Evolution. It's complex!Tom Mens
 

Viewers also liked (8)

GISMO
GISMOGISMO
GISMO
 
Automated Planning for Resolving Model Inconsistencies - A Scalability Study
Automated Planning for Resolving Model Inconsistencies - A Scalability StudyAutomated Planning for Resolving Model Inconsistencies - A Scalability Study
Automated Planning for Resolving Model Inconsistencies - A Scalability Study
 
On the topology of package dependency networks: A comparison of programming l...
On the topology of package dependency networks: A comparison of programming l...On the topology of package dependency networks: A comparison of programming l...
On the topology of package dependency networks: A comparison of programming l...
 
Executable modeling and simulation of system software and processes
Executable modeling and simulation of system software and processesExecutable modeling and simulation of system software and processes
Executable modeling and simulation of system software and processes
 
Model-based testing of executable statecharts
Model-based testing of executable statechartsModel-based testing of executable statecharts
Model-based testing of executable statecharts
 
Challenges in Software Ecosystem Research
Challenges in Software Ecosystem ResearchChallenges in Software Ecosystem Research
Challenges in Software Ecosystem Research
 
Social and Technical Evolution of the Ruby on Rails Software Ecosystem
Social and Technical Evolution of the Ruby on Rails Software EcosystemSocial and Technical Evolution of the Ruby on Rails Software Ecosystem
Social and Technical Evolution of the Ruby on Rails Software Ecosystem
 
Software Ecosystem Evolution. It's complex!
Software Ecosystem Evolution. It's complex!Software Ecosystem Evolution. It's complex!
Software Ecosystem Evolution. It's complex!
 

Similar to Co-evolving code-related and database-related 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
 
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
 
Business Intelligence & NoSQL Databases
Business Intelligence & NoSQL DatabasesBusiness Intelligence & NoSQL Databases
Business Intelligence & NoSQL DatabasesRadhoueneRouached
 
NoSQL Databases Introduction - UTN 2013
NoSQL Databases Introduction - UTN 2013NoSQL Databases Introduction - UTN 2013
NoSQL Databases Introduction - UTN 2013Facundo 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, SmileOCCIware
 
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 2017Marc 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 CassasdraBrian 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 profileRanjeet Prasad
 
NoSQL on ACID - Meet Unstructured Postgres
NoSQL on ACID - Meet Unstructured PostgresNoSQL on ACID - Meet Unstructured Postgres
NoSQL on ACID - Meet Unstructured PostgresEDB
 
OCCIware@OW2con 2016
OCCIware@OW2con 2016OCCIware@OW2con 2016
OCCIware@OW2con 2016Marc 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 IntroductionJeremy Taylor
 
A Brief Introduction: MongoDB
A Brief Introduction: MongoDBA Brief Introduction: MongoDB
A Brief Introduction: MongoDBDATAVERSITY
 

Similar to Co-evolving code-related and database-related 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...
 
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
 
A Brief Introduction: MongoDB
A Brief Introduction: MongoDBA Brief Introduction: MongoDB
A Brief Introduction: MongoDB
 

More from 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
 

More from 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
 

Recently uploaded

UiPath Studio Web workshop series - Day 4
UiPath Studio Web workshop series - Day 4UiPath Studio Web workshop series - Day 4
UiPath Studio Web workshop series - Day 4DianaGray10
 
.NET 8 ChatBot with Azure OpenAI Services.pptx
.NET 8 ChatBot with Azure OpenAI Services.pptx.NET 8 ChatBot with Azure OpenAI Services.pptx
.NET 8 ChatBot with Azure OpenAI Services.pptxHansamali Gamage
 
20140402 - Smart house demo kit
20140402 - Smart house demo kit20140402 - Smart house demo kit
20140402 - Smart house demo kitJamie (Taka) Wang
 
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdfQ4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdfTejal81
 
2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdf2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdfThe Good Food Institute
 
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.pdfCheryl Hung
 
Trailblazer Community - Flows Workshop (Session 2)
Trailblazer Community - Flows Workshop (Session 2)Trailblazer Community - Flows Workshop (Session 2)
Trailblazer Community - Flows Workshop (Session 2)Muhammad Tiham Siddiqui
 
3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud Data3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud DataEric D. Schabell
 
Technical SEO for Improved Accessibility WTS FEST
Technical SEO for Improved Accessibility  WTS FESTTechnical SEO for Improved Accessibility  WTS FEST
Technical SEO for Improved Accessibility WTS FESTBillieHyde
 
UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2DianaGray10
 
LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0DanBrown980551
 
Flow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First FrameFlow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First FrameKapil Thakar
 
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - TechWebinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - TechProduct School
 
How to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptxHow to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptxKaustubhBhavsar6
 
Top 10 Squarespace Development Companies
Top 10 Squarespace Development CompaniesTop 10 Squarespace Development Companies
Top 10 Squarespace Development CompaniesTopCSSGallery
 
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENTSIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENTxtailishbaloch
 
Extra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdfExtra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdfInfopole1
 
Explore the UiPath Community and ways you can benefit on your journey to auto...
Explore the UiPath Community and ways you can benefit on your journey to auto...Explore the UiPath Community and ways you can benefit on your journey to auto...
Explore the UiPath Community and ways you can benefit on your journey to auto...DianaGray10
 
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Alkin Tezuysal
 

Recently uploaded (20)

UiPath Studio Web workshop series - Day 4
UiPath Studio Web workshop series - Day 4UiPath Studio Web workshop series - Day 4
UiPath Studio Web workshop series - Day 4
 
.NET 8 ChatBot with Azure OpenAI Services.pptx
.NET 8 ChatBot with Azure OpenAI Services.pptx.NET 8 ChatBot with Azure OpenAI Services.pptx
.NET 8 ChatBot with Azure OpenAI Services.pptx
 
20140402 - Smart house demo kit
20140402 - Smart house demo kit20140402 - Smart house demo kit
20140402 - Smart house demo kit
 
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdfQ4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
 
2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdf2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdf
 
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
 
Trailblazer Community - Flows Workshop (Session 2)
Trailblazer Community - Flows Workshop (Session 2)Trailblazer Community - Flows Workshop (Session 2)
Trailblazer Community - Flows Workshop (Session 2)
 
3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud Data3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud Data
 
SheDev 2024
SheDev 2024SheDev 2024
SheDev 2024
 
Technical SEO for Improved Accessibility WTS FEST
Technical SEO for Improved Accessibility  WTS FESTTechnical SEO for Improved Accessibility  WTS FEST
Technical SEO for Improved Accessibility WTS FEST
 
UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2
 
LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0
 
Flow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First FrameFlow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First Frame
 
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - TechWebinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
 
How to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptxHow to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptx
 
Top 10 Squarespace Development Companies
Top 10 Squarespace Development CompaniesTop 10 Squarespace Development Companies
Top 10 Squarespace Development Companies
 
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENTSIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
 
Extra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdfExtra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdf
 
Explore the UiPath Community and ways you can benefit on your journey to auto...
Explore the UiPath Community and ways you can benefit on your journey to auto...Explore the UiPath Community and ways you can benefit on your journey to auto...
Explore the UiPath Community and ways you can benefit on your journey to auto...
 
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
 

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