SlideShare a Scribd company logo
1 of 28
A Study of the Time Dependence of Code
Changes
Omar Alam, Bram Adams and Ahmed E. Hassan
Software Analysis and Intelligence Lab (SAIL), Queen’s University, Canada
1
Foundational Periods of Software
Development
2
• Software Development consists of building on old
changes.
• Older periods provide structure for future changes.
• Important periods for future changes are considered
foundational
Why Study Foundational Periods?
3
Extra testing Re-document Staff are around
Managers Need to Know about
Foundational Periods
How to Detect Foundational Periods?
By Establishing Time Dependence Relations.
function f1()
{
Call f2()
Call f3()
}
How to Detect Foundational Periods?
By Establishing Time Dependence Relations.
function f1()
{
Call f2()
Call f3()
}
function f1()
{
Call f2()
Call f4()
}
Delete f3()
Add f4()
How to Detect Foundational Periods?
By Establishing Time Dependence Relations.
function f1()
{
Call f2()
Call f3()
}
function f1()
{
Call f2()
Call f4()
}
Add
f4()
Modify
f1()
Modify
f3()
Add
f1()
Add
f2()
Add
f3()
Period 1 Period 2 Period 3
add
How to Detect Foundational Periods?
By Establishing Time Dependence Relations.
function f1()
{
Call f2()
Call f3()
}
function f1()
{
Call f2()
Call f4()
}
Add
f4()
Modify
f1()
Modify
f3()
Add
f1()
Add
f2()
Add
f3()
Period 1 Period 2 Period 3
add
remove
How to Detect Foundational Periods?
By Establishing Time Dependence Relations.
function f1()
{
Call f2()
Call f3()
}
function f1()
{
Call f2()
Call f4()
}
Add
f4()
Modify
f1()
Modify
f3()
Add
f1()
Add
f2()
Add
f3()
Period 1 Period 2 Period 3
add
remove
How to Detect Foundational Periods?
Age of Time Dependence Relations
Add
f4()
Modify
f1()
Modify
f3()
Add
f1()
Add
f2()
Add
f3()
Period 1 Period 2 Period 3
add
remove
0 period1 period2 periods
How to Detect Foundational Periods?
Backward and Forward Time Dependence
Add
f4()
Modify
f1()
Modify
f3()
Add
f1()
Add
f2()
Add
f3()
Period 1 Period 2 Period 3
add
remove
4 Backward Time
Dependence
How to Detect Foundational Periods?
Backward and Forward Time Dependence
Add
f4()
Modify
f1()
Modify
f3()
Add
f1()
Add
f2()
Add
f3()
Period 1 Period 2 Period 3
add
remove
4 Backward Time
Dependence
1 Forward Time
Dependence
Case Study
1997-2007
12
1994-2005
RQ1: How Does the Time Dependence Vary
Over Time?
FreeBSDPostgreSQL
RQ1: How Does the Time Dependence Vary
Over Time?
FreeBSDPostgreSQL
The age of quarter 0 is not included!
RQ1: How Does the Time Dependence Vary
Over Time?
48% of changes build on their
same quarters
RQ1: How Does the Time Dependence Vary
Over Time?
FreeBSDPostgreSQL
Do Quarters with many changes build on
more changes ?
RQ1: How Does the Time Dependence Vary
Over Time?
Correlation between #changes and
#Backward time dependence of a quarter:
0.51 in PostgreSQL
0.87 in FreeBSD
RQ1: How Does the Time Dependence Vary
Over Time?
48% of changes build on their same
quarters
Quarters with many changes DO NOT
always indicate building on old quarters
RQ2: As Projects Age, Do They Build More on
Old Periods?
FreeBSDPostgreSQL
RQ2: As Projects Age, Do They Build More on
Old Periods?
FreeBSDPostgreSQL
Progressively Build on
Old Periods
Cycles Between
building on New and
Old Periods
RQ2: As Projects Age, Do They Build More on
Old Periods?
FreeBSDPostgreSQL
Build More on Recent
changes
RQ2: As Projects Age, Do They Build More on
Old Periods?
FreeBSDPostgreSQL
1.5 years before building
on Old changes
RQ2: As Projects Age, Do They Build More on
Old Periods?
PostgreSQL:
Progressively
Build on Old
FreeBSD:
Cycles between
Building on Old and
New
Took 1.5 years to
stabilize
RQ3: What are the Foundational Periods in a
Lifetime of a Project?
FreeBSDPostgreSQL
Plot the Diagonals of the Heatmaps
RQ3: What are the Foundational Periods in a
Lifetime of a Project?
FreeBSDPostgreSQL
RQ3: What are the Foundational Periods in a
Lifetime of a Project?
FreeBSDPostgreSQL
The First Foundational Period is the
Most Foundational
RQ3: What are the Foundational Periods in a
Lifetime of a Project?
FreeBSDPostgreSQL
Foundational Quarters Import Large
Code or Have Invasive Changes
28

More Related Content

What's hot

HOW TO OPTIMIZE NON-CODING TIME, ORI KEREN, LinearB
HOW TO OPTIMIZE NON-CODING TIME, ORI KEREN, LinearBHOW TO OPTIMIZE NON-CODING TIME, ORI KEREN, LinearB
HOW TO OPTIMIZE NON-CODING TIME, ORI KEREN, LinearBDevOpsDays Tel Aviv
 
2017 Q1 Open Source Support Briefing
2017 Q1 Open Source Support Briefing2017 Q1 Open Source Support Briefing
2017 Q1 Open Source Support BriefingBenito Gonzalez
 
Version control for PL/SQL
Version control for PL/SQLVersion control for PL/SQL
Version control for PL/SQLGerger
 
End-to-end performance testing, profiling, and analysis at Redis
End-to-end performance testing, profiling, and analysis at RedisEnd-to-end performance testing, profiling, and analysis at Redis
End-to-end performance testing, profiling, and analysis at RedisFilipe Oliveira
 
Peer Code Review: In a Nutshell
Peer Code Review: In a NutshellPeer Code Review: In a Nutshell
Peer Code Review: In a NutshellAtlassian
 
DevOps and All the Continuouses w/ Helen Beal
DevOps and All the Continuouses w/ Helen BealDevOps and All the Continuouses w/ Helen Beal
DevOps and All the Continuouses w/ Helen BealSonatype
 
Continuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database ObjectsContinuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database ObjectsPrabhu Ramasamy
 

What's hot (8)

HOW TO OPTIMIZE NON-CODING TIME, ORI KEREN, LinearB
HOW TO OPTIMIZE NON-CODING TIME, ORI KEREN, LinearBHOW TO OPTIMIZE NON-CODING TIME, ORI KEREN, LinearB
HOW TO OPTIMIZE NON-CODING TIME, ORI KEREN, LinearB
 
2017 Q1 Open Source Support Briefing
2017 Q1 Open Source Support Briefing2017 Q1 Open Source Support Briefing
2017 Q1 Open Source Support Briefing
 
Version control for PL/SQL
Version control for PL/SQLVersion control for PL/SQL
Version control for PL/SQL
 
Git essentials
Git essentialsGit essentials
Git essentials
 
End-to-end performance testing, profiling, and analysis at Redis
End-to-end performance testing, profiling, and analysis at RedisEnd-to-end performance testing, profiling, and analysis at Redis
End-to-end performance testing, profiling, and analysis at Redis
 
Peer Code Review: In a Nutshell
Peer Code Review: In a NutshellPeer Code Review: In a Nutshell
Peer Code Review: In a Nutshell
 
DevOps and All the Continuouses w/ Helen Beal
DevOps and All the Continuouses w/ Helen BealDevOps and All the Continuouses w/ Helen Beal
DevOps and All the Continuouses w/ Helen Beal
 
Continuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database ObjectsContinuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database Objects
 

Viewers also liked

Msr2012 adams
Msr2012 adamsMsr2012 adams
Msr2012 adamsSAIL_QU
 
Scam2011 syer
Scam2011 syerScam2011 syer
Scam2011 syerSAIL_QU
 
Mud2010 bettenburg presentation
Mud2010 bettenburg presentationMud2010 bettenburg presentation
Mud2010 bettenburg presentationSAIL_QU
 
Scam2010 thomas presentation
Scam2010 thomas presentationScam2010 thomas presentation
Scam2010 thomas presentationSAIL_QU
 
Msr2011 zaman
Msr2011 zamanMsr2011 zaman
Msr2011 zamanSAIL_QU
 
Sthomas slides
Sthomas slidesSthomas slides
Sthomas slidesSAIL_QU
 
Qsic2010 shihab
Qsic2010 shihabQsic2010 shihab
Qsic2010 shihabSAIL_QU
 
Wcre2011 khomh
Wcre2011 khomhWcre2011 khomh
Wcre2011 khomhSAIL_QU
 
Scam2007 jiang
Scam2007 jiangScam2007 jiang
Scam2007 jiangSAIL_QU
 
Wcre2010 shihab
Wcre2010 shihabWcre2010 shihab
Wcre2010 shihabSAIL_QU
 
Estudo arquitetonico 2015-06-25_09_40_31
Estudo arquitetonico 2015-06-25_09_40_31Estudo arquitetonico 2015-06-25_09_40_31
Estudo arquitetonico 2015-06-25_09_40_31Francis Zeman
 
Ohira icsm2012
Ohira icsm2012Ohira icsm2012
Ohira icsm2012SAIL_QU
 
Qsic2008 jiang
Qsic2008 jiangQsic2008 jiang
Qsic2008 jiangSAIL_QU
 
Msr2012 chen
Msr2012 chenMsr2012 chen
Msr2012 chenSAIL_QU
 
Msr2012 bettenburg presentation
Msr2012 bettenburg presentationMsr2012 bettenburg presentation
Msr2012 bettenburg presentationSAIL_QU
 
TRY - a global database of plant traits
TRY - a global database of plant traitsTRY - a global database of plant traits
TRY - a global database of plant traitsFuture Earth
 
Wcre2009 bettenburg
Wcre2009 bettenburgWcre2009 bettenburg
Wcre2009 bettenburgSAIL_QU
 

Viewers also liked (20)

Msr2012 adams
Msr2012 adamsMsr2012 adams
Msr2012 adams
 
Scam2011 syer
Scam2011 syerScam2011 syer
Scam2011 syer
 
Youtube marketing music
Youtube marketing musicYoutube marketing music
Youtube marketing music
 
Mud2010 bettenburg presentation
Mud2010 bettenburg presentationMud2010 bettenburg presentation
Mud2010 bettenburg presentation
 
Scam2010 thomas presentation
Scam2010 thomas presentationScam2010 thomas presentation
Scam2010 thomas presentation
 
Msr2011 zaman
Msr2011 zamanMsr2011 zaman
Msr2011 zaman
 
Sthomas slides
Sthomas slidesSthomas slides
Sthomas slides
 
CATALOG_2
CATALOG_2CATALOG_2
CATALOG_2
 
Qsic2010 shihab
Qsic2010 shihabQsic2010 shihab
Qsic2010 shihab
 
Wcre2011 khomh
Wcre2011 khomhWcre2011 khomh
Wcre2011 khomh
 
Scam2007 jiang
Scam2007 jiangScam2007 jiang
Scam2007 jiang
 
Wcre2010 shihab
Wcre2010 shihabWcre2010 shihab
Wcre2010 shihab
 
Estudo arquitetonico 2015-06-25_09_40_31
Estudo arquitetonico 2015-06-25_09_40_31Estudo arquitetonico 2015-06-25_09_40_31
Estudo arquitetonico 2015-06-25_09_40_31
 
FANTASTIC TRIP -A MUST WATCH by RISHABH
FANTASTIC TRIP -A MUST WATCH by RISHABHFANTASTIC TRIP -A MUST WATCH by RISHABH
FANTASTIC TRIP -A MUST WATCH by RISHABH
 
Ohira icsm2012
Ohira icsm2012Ohira icsm2012
Ohira icsm2012
 
Qsic2008 jiang
Qsic2008 jiangQsic2008 jiang
Qsic2008 jiang
 
Msr2012 chen
Msr2012 chenMsr2012 chen
Msr2012 chen
 
Msr2012 bettenburg presentation
Msr2012 bettenburg presentationMsr2012 bettenburg presentation
Msr2012 bettenburg presentation
 
TRY - a global database of plant traits
TRY - a global database of plant traitsTRY - a global database of plant traits
TRY - a global database of plant traits
 
Wcre2009 bettenburg
Wcre2009 bettenburgWcre2009 bettenburg
Wcre2009 bettenburg
 

Similar to Wcre2009 alam

Icsm2009 alam
Icsm2009 alamIcsm2009 alam
Icsm2009 alamSAIL_QU
 
Software Testing in a Distributed Environment
Software Testing in a Distributed EnvironmentSoftware Testing in a Distributed Environment
Software Testing in a Distributed EnvironmentPerforce
 
BuildingBlocksEbook-Sept2019.pdf
BuildingBlocksEbook-Sept2019.pdfBuildingBlocksEbook-Sept2019.pdf
BuildingBlocksEbook-Sept2019.pdfAndri Muhyidin
 
Measuring and driving DevOps practices in the real world
Measuring and driving DevOps practices in the real worldMeasuring and driving DevOps practices in the real world
Measuring and driving DevOps practices in the real worldMessageMedia
 
Keynote VST2020 (Workshop on Validation, Analysis and Evolution of Software ...
Keynote VST2020 (Workshop on  Validation, Analysis and Evolution of Software ...Keynote VST2020 (Workshop on  Validation, Analysis and Evolution of Software ...
Keynote VST2020 (Workshop on Validation, Analysis and Evolution of Software ...University of Antwerp
 
Mining and Untangling Change Genealogies (PhD Defense Talk)
Mining and Untangling Change Genealogies (PhD Defense Talk)Mining and Untangling Change Genealogies (PhD Defense Talk)
Mining and Untangling Change Genealogies (PhD Defense Talk)Kim Herzig
 
Agile Software Architecture
Agile Software ArchitectureAgile Software Architecture
Agile Software Architecturecesarioramos
 
Enterprise-level Transition from SAS to Open-source Programming for the whole...
Enterprise-level Transition from SAS to Open-source Programming for the whole...Enterprise-level Transition from SAS to Open-source Programming for the whole...
Enterprise-level Transition from SAS to Open-source Programming for the whole...Kevin Lee
 
Critical Chain Basics
Critical Chain BasicsCritical Chain Basics
Critical Chain BasicsJakub Linhart
 
An overview of software development methodologies.
An overview of software development methodologies.An overview of software development methodologies.
An overview of software development methodologies.Masoud Kalali
 
Engineering DevOps to meet Business Goals
 Engineering DevOps to meet Business Goals Engineering DevOps to meet Business Goals
Engineering DevOps to meet Business GoalsMarc Hornbeek
 
1) What can you identify about the rhetorical situation of this vi.docx
1) What can you identify about the rhetorical situation of this vi.docx1) What can you identify about the rhetorical situation of this vi.docx
1) What can you identify about the rhetorical situation of this vi.docxSONU61709
 
Bots on guard of sdlc
Bots on guard of sdlcBots on guard of sdlc
Bots on guard of sdlcAlexey Tokar
 
Adm Initial Proposal
Adm Initial ProposalAdm Initial Proposal
Adm Initial Proposalcfry
 
SE - Lecture 6 - Software Design n Construction.pptx
SE - Lecture 6 - Software Design n Construction.pptxSE - Lecture 6 - Software Design n Construction.pptx
SE - Lecture 6 - Software Design n Construction.pptxTangZhiSiang
 
Fllow con 2014
Fllow con 2014 Fllow con 2014
Fllow con 2014 gbgruver
 
A Story of Cultural Change: PayPal's 2 Year Journey to 150,000 Containers wit...
A Story of Cultural Change: PayPal's 2 Year Journey to 150,000 Containers wit...A Story of Cultural Change: PayPal's 2 Year Journey to 150,000 Containers wit...
A Story of Cultural Change: PayPal's 2 Year Journey to 150,000 Containers wit...Docker, Inc.
 
Conway's transformation
Conway's transformationConway's transformation
Conway's transformationAlexey Tokar
 

Similar to Wcre2009 alam (20)

Icsm2009 alam
Icsm2009 alamIcsm2009 alam
Icsm2009 alam
 
Software Testing in a Distributed Environment
Software Testing in a Distributed EnvironmentSoftware Testing in a Distributed Environment
Software Testing in a Distributed Environment
 
BuildingBlocksEbook-Sept2019.pdf
BuildingBlocksEbook-Sept2019.pdfBuildingBlocksEbook-Sept2019.pdf
BuildingBlocksEbook-Sept2019.pdf
 
Measuring and driving DevOps practices in the real world
Measuring and driving DevOps practices in the real worldMeasuring and driving DevOps practices in the real world
Measuring and driving DevOps practices in the real world
 
Keynote VST2020 (Workshop on Validation, Analysis and Evolution of Software ...
Keynote VST2020 (Workshop on  Validation, Analysis and Evolution of Software ...Keynote VST2020 (Workshop on  Validation, Analysis and Evolution of Software ...
Keynote VST2020 (Workshop on Validation, Analysis and Evolution of Software ...
 
Mining and Untangling Change Genealogies (PhD Defense Talk)
Mining and Untangling Change Genealogies (PhD Defense Talk)Mining and Untangling Change Genealogies (PhD Defense Talk)
Mining and Untangling Change Genealogies (PhD Defense Talk)
 
Agile Software Architecture
Agile Software ArchitectureAgile Software Architecture
Agile Software Architecture
 
Enterprise-level Transition from SAS to Open-source Programming for the whole...
Enterprise-level Transition from SAS to Open-source Programming for the whole...Enterprise-level Transition from SAS to Open-source Programming for the whole...
Enterprise-level Transition from SAS to Open-source Programming for the whole...
 
Critical Chain Basics
Critical Chain BasicsCritical Chain Basics
Critical Chain Basics
 
An overview of software development methodologies.
An overview of software development methodologies.An overview of software development methodologies.
An overview of software development methodologies.
 
Engineering DevOps to meet Business Goals
 Engineering DevOps to meet Business Goals Engineering DevOps to meet Business Goals
Engineering DevOps to meet Business Goals
 
1) What can you identify about the rhetorical situation of this vi.docx
1) What can you identify about the rhetorical situation of this vi.docx1) What can you identify about the rhetorical situation of this vi.docx
1) What can you identify about the rhetorical situation of this vi.docx
 
Bots on guard of sdlc
Bots on guard of sdlcBots on guard of sdlc
Bots on guard of sdlc
 
Adm Initial Proposal
Adm Initial ProposalAdm Initial Proposal
Adm Initial Proposal
 
SE - Lecture 6 - Software Design n Construction.pptx
SE - Lecture 6 - Software Design n Construction.pptxSE - Lecture 6 - Software Design n Construction.pptx
SE - Lecture 6 - Software Design n Construction.pptx
 
Dev ops
Dev opsDev ops
Dev ops
 
Fllow con 2014
Fllow con 2014 Fllow con 2014
Fllow con 2014
 
Infrastructure
InfrastructureInfrastructure
Infrastructure
 
A Story of Cultural Change: PayPal's 2 Year Journey to 150,000 Containers wit...
A Story of Cultural Change: PayPal's 2 Year Journey to 150,000 Containers wit...A Story of Cultural Change: PayPal's 2 Year Journey to 150,000 Containers wit...
A Story of Cultural Change: PayPal's 2 Year Journey to 150,000 Containers wit...
 
Conway's transformation
Conway's transformationConway's transformation
Conway's transformation
 

More from SAIL_QU

Studying the Integration Practices and the Evolution of Ad Libraries in the G...
Studying the Integration Practices and the Evolution of Ad Libraries in the G...Studying the Integration Practices and the Evolution of Ad Libraries in the G...
Studying the Integration Practices and the Evolution of Ad Libraries in the G...SAIL_QU
 
Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...SAIL_QU
 
Improving the testing efficiency of selenium-based load tests
Improving the testing efficiency of selenium-based load testsImproving the testing efficiency of selenium-based load tests
Improving the testing efficiency of selenium-based load testsSAIL_QU
 
Studying User-Developer Interactions Through the Distribution and Reviewing M...
Studying User-Developer Interactions Through the Distribution and Reviewing M...Studying User-Developer Interactions Through the Distribution and Reviewing M...
Studying User-Developer Interactions Through the Distribution and Reviewing M...SAIL_QU
 
Studying online distribution platforms for games through the mining of data f...
Studying online distribution platforms for games through the mining of data f...Studying online distribution platforms for games through the mining of data f...
Studying online distribution platforms for games through the mining of data f...SAIL_QU
 
Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...
Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...
Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...SAIL_QU
 
Investigating the Challenges in Selenium Usage and Improving the Testing Effi...
Investigating the Challenges in Selenium Usage and Improving the Testing Effi...Investigating the Challenges in Selenium Usage and Improving the Testing Effi...
Investigating the Challenges in Selenium Usage and Improving the Testing Effi...SAIL_QU
 
Mining Development Knowledge to Understand and Support Software Logging Pract...
Mining Development Knowledge to Understand and Support Software Logging Pract...Mining Development Knowledge to Understand and Support Software Logging Pract...
Mining Development Knowledge to Understand and Support Software Logging Pract...SAIL_QU
 
Which Log Level Should Developers Choose For a New Logging Statement?
Which Log Level Should Developers Choose For a New Logging Statement?Which Log Level Should Developers Choose For a New Logging Statement?
Which Log Level Should Developers Choose For a New Logging Statement?SAIL_QU
 
Towards Just-in-Time Suggestions for Log Changes
Towards Just-in-Time Suggestions for Log ChangesTowards Just-in-Time Suggestions for Log Changes
Towards Just-in-Time Suggestions for Log ChangesSAIL_QU
 
The Impact of Task Granularity on Co-evolution Analyses
The Impact of Task Granularity on Co-evolution AnalysesThe Impact of Task Granularity on Co-evolution Analyses
The Impact of Task Granularity on Co-evolution AnalysesSAIL_QU
 
A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...
A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...
A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...SAIL_QU
 
How are Discussions Associated with Bug Reworking? An Empirical Study on Open...
How are Discussions Associated with Bug Reworking? An Empirical Study on Open...How are Discussions Associated with Bug Reworking? An Empirical Study on Open...
How are Discussions Associated with Bug Reworking? An Empirical Study on Open...SAIL_QU
 
A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...
A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...
A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...SAIL_QU
 
A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...
A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...
A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...SAIL_QU
 
Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...SAIL_QU
 
What Do Programmers Know about Software Energy Consumption?
What Do Programmers Know about Software Energy Consumption?What Do Programmers Know about Software Energy Consumption?
What Do Programmers Know about Software Energy Consumption?SAIL_QU
 
Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...
Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...
Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...SAIL_QU
 
Revisiting the Experimental Design Choices for Approaches for the Automated R...
Revisiting the Experimental Design Choices for Approaches for the Automated R...Revisiting the Experimental Design Choices for Approaches for the Automated R...
Revisiting the Experimental Design Choices for Approaches for the Automated R...SAIL_QU
 
Measuring Program Comprehension: A Large-Scale Field Study with Professionals
Measuring Program Comprehension: A Large-Scale Field Study with ProfessionalsMeasuring Program Comprehension: A Large-Scale Field Study with Professionals
Measuring Program Comprehension: A Large-Scale Field Study with ProfessionalsSAIL_QU
 

More from SAIL_QU (20)

Studying the Integration Practices and the Evolution of Ad Libraries in the G...
Studying the Integration Practices and the Evolution of Ad Libraries in the G...Studying the Integration Practices and the Evolution of Ad Libraries in the G...
Studying the Integration Practices and the Evolution of Ad Libraries in the G...
 
Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...
 
Improving the testing efficiency of selenium-based load tests
Improving the testing efficiency of selenium-based load testsImproving the testing efficiency of selenium-based load tests
Improving the testing efficiency of selenium-based load tests
 
Studying User-Developer Interactions Through the Distribution and Reviewing M...
Studying User-Developer Interactions Through the Distribution and Reviewing M...Studying User-Developer Interactions Through the Distribution and Reviewing M...
Studying User-Developer Interactions Through the Distribution and Reviewing M...
 
Studying online distribution platforms for games through the mining of data f...
Studying online distribution platforms for games through the mining of data f...Studying online distribution platforms for games through the mining of data f...
Studying online distribution platforms for games through the mining of data f...
 
Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...
Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...
Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...
 
Investigating the Challenges in Selenium Usage and Improving the Testing Effi...
Investigating the Challenges in Selenium Usage and Improving the Testing Effi...Investigating the Challenges in Selenium Usage and Improving the Testing Effi...
Investigating the Challenges in Selenium Usage and Improving the Testing Effi...
 
Mining Development Knowledge to Understand and Support Software Logging Pract...
Mining Development Knowledge to Understand and Support Software Logging Pract...Mining Development Knowledge to Understand and Support Software Logging Pract...
Mining Development Knowledge to Understand and Support Software Logging Pract...
 
Which Log Level Should Developers Choose For a New Logging Statement?
Which Log Level Should Developers Choose For a New Logging Statement?Which Log Level Should Developers Choose For a New Logging Statement?
Which Log Level Should Developers Choose For a New Logging Statement?
 
Towards Just-in-Time Suggestions for Log Changes
Towards Just-in-Time Suggestions for Log ChangesTowards Just-in-Time Suggestions for Log Changes
Towards Just-in-Time Suggestions for Log Changes
 
The Impact of Task Granularity on Co-evolution Analyses
The Impact of Task Granularity on Co-evolution AnalysesThe Impact of Task Granularity on Co-evolution Analyses
The Impact of Task Granularity on Co-evolution Analyses
 
A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...
A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...
A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...
 
How are Discussions Associated with Bug Reworking? An Empirical Study on Open...
How are Discussions Associated with Bug Reworking? An Empirical Study on Open...How are Discussions Associated with Bug Reworking? An Empirical Study on Open...
How are Discussions Associated with Bug Reworking? An Empirical Study on Open...
 
A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...
A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...
A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...
 
A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...
A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...
A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...
 
Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...
 
What Do Programmers Know about Software Energy Consumption?
What Do Programmers Know about Software Energy Consumption?What Do Programmers Know about Software Energy Consumption?
What Do Programmers Know about Software Energy Consumption?
 
Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...
Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...
Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...
 
Revisiting the Experimental Design Choices for Approaches for the Automated R...
Revisiting the Experimental Design Choices for Approaches for the Automated R...Revisiting the Experimental Design Choices for Approaches for the Automated R...
Revisiting the Experimental Design Choices for Approaches for the Automated R...
 
Measuring Program Comprehension: A Large-Scale Field Study with Professionals
Measuring Program Comprehension: A Large-Scale Field Study with ProfessionalsMeasuring Program Comprehension: A Large-Scale Field Study with Professionals
Measuring Program Comprehension: A Large-Scale Field Study with Professionals
 

Wcre2009 alam

  • 1. A Study of the Time Dependence of Code Changes Omar Alam, Bram Adams and Ahmed E. Hassan Software Analysis and Intelligence Lab (SAIL), Queen’s University, Canada 1
  • 2. Foundational Periods of Software Development 2 • Software Development consists of building on old changes. • Older periods provide structure for future changes. • Important periods for future changes are considered foundational
  • 3. Why Study Foundational Periods? 3 Extra testing Re-document Staff are around Managers Need to Know about Foundational Periods
  • 4. How to Detect Foundational Periods? By Establishing Time Dependence Relations. function f1() { Call f2() Call f3() }
  • 5. How to Detect Foundational Periods? By Establishing Time Dependence Relations. function f1() { Call f2() Call f3() } function f1() { Call f2() Call f4() } Delete f3() Add f4()
  • 6. How to Detect Foundational Periods? By Establishing Time Dependence Relations. function f1() { Call f2() Call f3() } function f1() { Call f2() Call f4() } Add f4() Modify f1() Modify f3() Add f1() Add f2() Add f3() Period 1 Period 2 Period 3 add
  • 7. How to Detect Foundational Periods? By Establishing Time Dependence Relations. function f1() { Call f2() Call f3() } function f1() { Call f2() Call f4() } Add f4() Modify f1() Modify f3() Add f1() Add f2() Add f3() Period 1 Period 2 Period 3 add remove
  • 8. How to Detect Foundational Periods? By Establishing Time Dependence Relations. function f1() { Call f2() Call f3() } function f1() { Call f2() Call f4() } Add f4() Modify f1() Modify f3() Add f1() Add f2() Add f3() Period 1 Period 2 Period 3 add remove
  • 9. How to Detect Foundational Periods? Age of Time Dependence Relations Add f4() Modify f1() Modify f3() Add f1() Add f2() Add f3() Period 1 Period 2 Period 3 add remove 0 period1 period2 periods
  • 10. How to Detect Foundational Periods? Backward and Forward Time Dependence Add f4() Modify f1() Modify f3() Add f1() Add f2() Add f3() Period 1 Period 2 Period 3 add remove 4 Backward Time Dependence
  • 11. How to Detect Foundational Periods? Backward and Forward Time Dependence Add f4() Modify f1() Modify f3() Add f1() Add f2() Add f3() Period 1 Period 2 Period 3 add remove 4 Backward Time Dependence 1 Forward Time Dependence
  • 13. RQ1: How Does the Time Dependence Vary Over Time? FreeBSDPostgreSQL
  • 14. RQ1: How Does the Time Dependence Vary Over Time? FreeBSDPostgreSQL The age of quarter 0 is not included!
  • 15. RQ1: How Does the Time Dependence Vary Over Time? 48% of changes build on their same quarters
  • 16. RQ1: How Does the Time Dependence Vary Over Time? FreeBSDPostgreSQL Do Quarters with many changes build on more changes ?
  • 17. RQ1: How Does the Time Dependence Vary Over Time? Correlation between #changes and #Backward time dependence of a quarter: 0.51 in PostgreSQL 0.87 in FreeBSD
  • 18. RQ1: How Does the Time Dependence Vary Over Time? 48% of changes build on their same quarters Quarters with many changes DO NOT always indicate building on old quarters
  • 19. RQ2: As Projects Age, Do They Build More on Old Periods? FreeBSDPostgreSQL
  • 20. RQ2: As Projects Age, Do They Build More on Old Periods? FreeBSDPostgreSQL Progressively Build on Old Periods Cycles Between building on New and Old Periods
  • 21. RQ2: As Projects Age, Do They Build More on Old Periods? FreeBSDPostgreSQL Build More on Recent changes
  • 22. RQ2: As Projects Age, Do They Build More on Old Periods? FreeBSDPostgreSQL 1.5 years before building on Old changes
  • 23. RQ2: As Projects Age, Do They Build More on Old Periods? PostgreSQL: Progressively Build on Old FreeBSD: Cycles between Building on Old and New Took 1.5 years to stabilize
  • 24. RQ3: What are the Foundational Periods in a Lifetime of a Project? FreeBSDPostgreSQL Plot the Diagonals of the Heatmaps
  • 25. RQ3: What are the Foundational Periods in a Lifetime of a Project? FreeBSDPostgreSQL
  • 26. RQ3: What are the Foundational Periods in a Lifetime of a Project? FreeBSDPostgreSQL The First Foundational Period is the Most Foundational
  • 27. RQ3: What are the Foundational Periods in a Lifetime of a Project? FreeBSDPostgreSQL Foundational Quarters Import Large Code or Have Invasive Changes
  • 28. 28