Co-evolving changes in a data-intensive software system

776 views

Published on

Presentation at the CSMR-WCRE 2014 Software Evolution Week, February 2014, Antwerp Belgium

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
776
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Co-evolving changes in a data-intensive software system

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×