• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Co-evolving code-related and database-related changes in a data-intensive software system
 

Co-evolving code-related and database-related changes in a data-intensive software system

on

  • 295 views

Presentation during BENEVOL 2013, 16 December 2013 in Mons, Belgium by Mathieu Goeminne, Tom Mens, Alexandre Decan, Software Engineering Lab, Faculty of Sciences, University of Mons, Belgium. Research ...

Presentation during BENEVOL 2013, 16 December 2013 in Mons, Belgium by Mathieu Goeminne, Tom Mens, Alexandre Decan, Software Engineering Lab, Faculty of Sciences, University of Mons, Belgium. Research results published in Proceedings of IEEE CSMR-WCRE 2014 Software Evolution Week, Early Research Achievements track.

Statistics

Views

Total Views
295
Views on SlideShare
281
Embed Views
14

Actions

Likes
0
Downloads
0
Comments
0

2 Embeds 14

https://twitter.com 9
http://informatique.umons.ac.be 5

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Co-evolving code-related and database-related changes in a data-intensive software system Co-evolving code-related and database-related changes in a data-intensive software system Presentation Transcript

    • 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