SlideShare a Scribd company logo
1 of 28
Capturing the Long-Term Impact
          Of Changes
       Kim Herzig • Saarland University

           Advisor: Prof. Andreas Zeller
Cause Effect Chain



Software System

                  Initial Change
Cause Effect Chain



Software System

                  Initial Change
Cause Effect Chain



Software System

                  Initial Change
Cause Effect Chain



   Software System

                     Initial Change


What is the long-term impact of the initial change?
Cause Effect Chain



   Software System

                     Initial Change


What is the long-term impact of the initial change?
  • Quality • Maintainability • Stability • Effort
Dependency Graph
file2



file1



       T1   T2   T3   T4   T5




                            time
Dependency Graph
file2



file1   + void foo(){




           T1          T2   T3   T4   T5




                                       time
Dependency Graph
file2              + x = foo();




file1   + void foo(){




           T1          T2        T3   T4   T5




                                            time
Dependency Graph
file2              + x = foo();



                            - void foo(){
file1   + void foo(){        + void foo(int){



           T1          T2         T3           T4   T5




                                                     time
Dependency Graph
                                               - x = foo()
file2              + x = foo();
                                               + x = foo(42)


                            - void foo(){
file1   + void foo(){        + void foo(int){



           T1          T2         T3               T4          T5




                                                                time
Dependency Graph
                                               - x = foo()
file2              + x = foo();
                                               + x = foo(42)
                                                               + y = foo(1)



                            - void foo(){
file1   + void foo(){        + void foo(int){



           T1          T2         T3               T4              T5




                                                                      time
Dependency Graph
                                               - x = foo()
file2              + x = foo();
                                               + x = foo(42)
                                                               + y = foo(1)



                            - void foo(){
file1   + void foo(){        + void foo(int){



           T1          T2         T3               T4              T5



                       Directed Acyclic Graph

                                                                      time
Change Dependencies
Change Dependencies

Change C2 depends on
     change C1

 Change C2 can only be
applied after applying C1.

T1            T2
                       ✓
       •••


T1            T2
       •••
                       ✗
Change Dependencies

Change C2 depends on         1. Analyzing source code changes
     change C1                 (not every revision can be compiled)


 Change C2 can only be
applied after applying C1.

T1            T2
                       ✓
       •••


T1            T2
       •••
                       ✗
Change Dependencies

Change C2 depends on         1. Analyzing source code changes
     change C1                 (not every revision can be compiled)

                             2. Extracting method definitions and
 Change C2 can only be
                                method calls from changes
applied after applying C1.     (added, modified, deleted)

T1            T2
                       ✓
       •••


T1            T2
       •••
                       ✗
Change Dependencies

Change C2 depends on                     1. Analyzing source code changes
     change C1                              (not every revision can be compiled) [1]

                                         2. Extracting method definitions and
 Change C2 can only be
                                            method calls from changes
applied after applying C1.                  (added, modified, deleted)

T1              T2                       3. Computing dependencies between
                            ✓
        •••
                                            method definition and call changes
T1              T2                          (e.g. call depends on previous definition)
        •••
                            ✗

[1] Enabling static analysis for partial Java programs, Dagenais and Hendren, OOPSLA '08
Using the Dependency Graph

    T1   T2   T3   T4    T5
Using the Dependency Graph

        T1      T2        T3   T4   T5



      Rollback!
What could be affected?
Using the Dependency Graph

        T1      T2        T3         T4              T5


                               introduced a bug
      Rollback!
                               What else should be
What could be affected?
                                    reviewed?
Using the Dependency Graph

                  T1                T2          T3         T4              T5


                                                     introduced a bug
              Rollback!
                                                     What else should be
        What could be affected?
                                                          reviewed?



    1         2        3            4    5




         Long Term Impact
Dependent changes / all later applied changes
              (weighted by depth)
Using the Dependency Graph

                  T1                T2          T3               T4                 T5


                                                         introduced a bug
              Rollback!
                                                         What else should be
        What could be affected?
                                                              reviewed?



    1         2        3            4    5           1      2       3         4         5




         Long Term Impact                                  FanIn / FanOut
Dependent changes / all later applied changes             Number of vertices into T
              (weighted by depth)                        Number of vertices leaving T
Research Questions
Research Questions
  Can we use dependency graphs to detect
critical development activities?
Research Questions
  Can we use dependency graphs to detect
critical development activities?

 Correlate dependency graph measurements with quality,
maintainability or stability?
Research Questions
  Can we use dependency graphs to detect
critical development activities?

 Correlate dependency graph measurements with quality,
maintainability or stability?

 Can we improve current defect prediction models using
dependency graphs?
Research Questions
  Can we use dependency graphs to detect
critical development activities?

 Correlate dependency graph measurements with quality,
maintainability or stability?

 Can we improve current defect prediction models using
dependency graphs?

  Can we extract process models from dependency graphs that
allow risk and effort estimations?

More Related Content

What's hot

how to calclute time complexity of algortihm
how to calclute time complexity of algortihmhow to calclute time complexity of algortihm
how to calclute time complexity of algortihm
Sajid Marwat
 
Advance Data Structure
Advance Data StructureAdvance Data Structure
Advance Data Structure
Ramzi Alqrainy
 
Tele4653 l5
Tele4653 l5Tele4653 l5
Tele4653 l5
Vin Voro
 
Modulation & d emodul tion
Modulation & d emodul tionModulation & d emodul tion
Modulation & d emodul tion
Murali Krishna
 

What's hot (20)

Lecture 1
Lecture 1Lecture 1
Lecture 1
 
Second order systems
Second order systemsSecond order systems
Second order systems
 
Control systems lab task
Control systems lab taskControl systems lab task
Control systems lab task
 
how to calclute time complexity of algortihm
how to calclute time complexity of algortihmhow to calclute time complexity of algortihm
how to calclute time complexity of algortihm
 
Operations on Continuous Time Signals
Operations on Continuous Time SignalsOperations on Continuous Time Signals
Operations on Continuous Time Signals
 
Time complexity
Time complexityTime complexity
Time complexity
 
Asymptotic Notation
Asymptotic NotationAsymptotic Notation
Asymptotic Notation
 
Signals and systems analysis using transform methods and matlab 3rd edition r...
Signals and systems analysis using transform methods and matlab 3rd edition r...Signals and systems analysis using transform methods and matlab 3rd edition r...
Signals and systems analysis using transform methods and matlab 3rd edition r...
 
DIT-Radix-2-FFT in SPED
DIT-Radix-2-FFT in SPEDDIT-Radix-2-FFT in SPED
DIT-Radix-2-FFT in SPED
 
Transfer functions, poles and zeros.
Transfer functions, poles and zeros.Transfer functions, poles and zeros.
Transfer functions, poles and zeros.
 
fft using labview
fft using labviewfft using labview
fft using labview
 
Asymptotic analysis
Asymptotic analysisAsymptotic analysis
Asymptotic analysis
 
Eeb317 principles of telecoms 2015
Eeb317 principles of telecoms 2015Eeb317 principles of telecoms 2015
Eeb317 principles of telecoms 2015
 
Advance Data Structure
Advance Data StructureAdvance Data Structure
Advance Data Structure
 
Tele4653 l5
Tele4653 l5Tele4653 l5
Tele4653 l5
 
Modulation & d emodul tion
Modulation & d emodul tionModulation & d emodul tion
Modulation & d emodul tion
 
Dsp U Lec04 Discrete Time Signals & Systems
Dsp U   Lec04 Discrete Time Signals & SystemsDsp U   Lec04 Discrete Time Signals & Systems
Dsp U Lec04 Discrete Time Signals & Systems
 
Ece4510 notes08
Ece4510 notes08Ece4510 notes08
Ece4510 notes08
 
Asymptotic Notation
Asymptotic NotationAsymptotic Notation
Asymptotic Notation
 
Quantifying the call blending balance in two way communication retrial queues...
Quantifying the call blending balance in two way communication retrial queues...Quantifying the call blending balance in two way communication retrial queues...
Quantifying the call blending balance in two way communication retrial queues...
 

Viewers also liked

Välkommen till Airtime sales-
Välkommen till Airtime sales-Välkommen till Airtime sales-
Välkommen till Airtime sales-
Ellinor Engström
 
Colecistitis aguda y crónica
Colecistitis aguda y crónicaColecistitis aguda y crónica
Colecistitis aguda y crónica
Karla González
 

Viewers also liked (15)

CV_Chirieleison_linkedIn
CV_Chirieleison_linkedInCV_Chirieleison_linkedIn
CV_Chirieleison_linkedIn
 
Panel1 carlos moya
Panel1 carlos moyaPanel1 carlos moya
Panel1 carlos moya
 
Connectors and useful expressions
Connectors and useful expressionsConnectors and useful expressions
Connectors and useful expressions
 
Relatoria
RelatoriaRelatoria
Relatoria
 
Park – a – lot
Park – a – lotPark – a – lot
Park – a – lot
 
Välkommen till Airtime sales-
Välkommen till Airtime sales-Välkommen till Airtime sales-
Välkommen till Airtime sales-
 
Literate environment analysis
Literate environment analysisLiterate environment analysis
Literate environment analysis
 
Student Engagement
Student EngagementStudent Engagement
Student Engagement
 
Intel Edison: Beyond the Breadboard
Intel Edison: Beyond the BreadboardIntel Edison: Beyond the Breadboard
Intel Edison: Beyond the Breadboard
 
LINKed2015 - SERIF - A Semantic ExeRcise Interchange Format
LINKed2015 - SERIF - A Semantic ExeRcise Interchange FormatLINKed2015 - SERIF - A Semantic ExeRcise Interchange Format
LINKed2015 - SERIF - A Semantic ExeRcise Interchange Format
 
Mastering Your Transition to ASC-606 IFRS-15
Mastering Your Transition to ASC-606 IFRS-15Mastering Your Transition to ASC-606 IFRS-15
Mastering Your Transition to ASC-606 IFRS-15
 
Singapore model-composition-primary-3
Singapore model-composition-primary-3Singapore model-composition-primary-3
Singapore model-composition-primary-3
 
好文欣赏-星月的由来
好文欣赏-星月的由来好文欣赏-星月的由来
好文欣赏-星月的由来
 
Colecistitis aguda y crónica
Colecistitis aguda y crónicaColecistitis aguda y crónica
Colecistitis aguda y crónica
 
Chinese Comprehension 29
Chinese Comprehension 29Chinese Comprehension 29
Chinese Comprehension 29
 

Similar to Capturing the Long Term Impact of Changes (7)

Introduction to Interest Rate Models by Antoine Savine
Introduction to Interest Rate Models by Antoine SavineIntroduction to Interest Rate Models by Antoine Savine
Introduction to Interest Rate Models by Antoine Savine
 
Ee443 phase locked loop - presentation - schwappach and brandy
Ee443   phase locked loop - presentation - schwappach and brandyEe443   phase locked loop - presentation - schwappach and brandy
Ee443 phase locked loop - presentation - schwappach and brandy
 
programming
programmingprogramming
programming
 
SAT Planning for MPrimes
SAT Planning for MPrimesSAT Planning for MPrimes
SAT Planning for MPrimes
 
lec01_VT22.pdf
lec01_VT22.pdflec01_VT22.pdf
lec01_VT22.pdf
 
SP_BEE2143_C1.pptx
SP_BEE2143_C1.pptxSP_BEE2143_C1.pptx
SP_BEE2143_C1.pptx
 
Equations in sc motion 2012
Equations in sc motion 2012Equations in sc motion 2012
Equations in sc motion 2012
 

More from Kim Herzig

Empirically Detecting False Test Alarms Using Association Rules @ ICSE 2015
Empirically Detecting False Test Alarms Using Association Rules @ ICSE 2015Empirically Detecting False Test Alarms Using Association Rules @ ICSE 2015
Empirically Detecting False Test Alarms Using Association Rules @ ICSE 2015
Kim Herzig
 
Code Ownership and Software Quality: A Replication Study @ MSR 2015
Code Ownership and Software Quality: A Replication Study @ MSR 2015Code Ownership and Software Quality: A Replication Study @ MSR 2015
Code Ownership and Software Quality: A Replication Study @ MSR 2015
Kim Herzig
 
The Impact of Test Ownership and Team Structure on the Reliability and Effect...
The Impact of Test Ownership and Team Structure on the Reliability and Effect...The Impact of Test Ownership and Team Structure on the Reliability and Effect...
The Impact of Test Ownership and Team Structure on the Reliability and Effect...
Kim Herzig
 
Predicting Defects Using Change Genealogies (ISSE 2013)
Predicting Defects Using Change Genealogies (ISSE 2013)Predicting Defects Using Change Genealogies (ISSE 2013)
Predicting Defects Using Change Genealogies (ISSE 2013)
Kim Herzig
 
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
 
The Impact of Tangled Code Changes
The Impact of Tangled Code ChangesThe Impact of Tangled Code Changes
The Impact of Tangled Code Changes
Kim Herzig
 
Network vs. Code Metrics to Predict Defects: A Replication Study
Network vs. Code Metrics  to Predict Defects: A Replication StudyNetwork vs. Code Metrics  to Predict Defects: A Replication Study
Network vs. Code Metrics to Predict Defects: A Replication Study
Kim Herzig
 
Software Engineering Course 2009 - Mining Software Archives
Software Engineering Course 2009 - Mining Software ArchivesSoftware Engineering Course 2009 - Mining Software Archives
Software Engineering Course 2009 - Mining Software Archives
Kim Herzig
 

More from Kim Herzig (12)

Keynote AST 2016
Keynote AST 2016Keynote AST 2016
Keynote AST 2016
 
Empirically Detecting False Test Alarms Using Association Rules @ ICSE 2015
Empirically Detecting False Test Alarms Using Association Rules @ ICSE 2015Empirically Detecting False Test Alarms Using Association Rules @ ICSE 2015
Empirically Detecting False Test Alarms Using Association Rules @ ICSE 2015
 
The Art of Testing Less without Sacrificing Quality @ ICSE 2015
The Art of Testing Less without Sacrificing Quality @ ICSE 2015The Art of Testing Less without Sacrificing Quality @ ICSE 2015
The Art of Testing Less without Sacrificing Quality @ ICSE 2015
 
Code Ownership and Software Quality: A Replication Study @ MSR 2015
Code Ownership and Software Quality: A Replication Study @ MSR 2015Code Ownership and Software Quality: A Replication Study @ MSR 2015
Code Ownership and Software Quality: A Replication Study @ MSR 2015
 
Issre2014 test defectprediction
Issre2014 test defectpredictionIssre2014 test defectprediction
Issre2014 test defectprediction
 
The Impact of Test Ownership and Team Structure on the Reliability and Effect...
The Impact of Test Ownership and Team Structure on the Reliability and Effect...The Impact of Test Ownership and Team Structure on the Reliability and Effect...
The Impact of Test Ownership and Team Structure on the Reliability and Effect...
 
Predicting Defects Using Change Genealogies (ISSE 2013)
Predicting Defects Using Change Genealogies (ISSE 2013)Predicting Defects Using Change Genealogies (ISSE 2013)
Predicting Defects Using Change Genealogies (ISSE 2013)
 
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)
 
The Impact of Tangled Code Changes
The Impact of Tangled Code ChangesThe Impact of Tangled Code Changes
The Impact of Tangled Code Changes
 
Mining Cause Effect Chains from Version Archives - ISSRE 2011
Mining Cause Effect Chains from Version Archives - ISSRE 2011Mining Cause Effect Chains from Version Archives - ISSRE 2011
Mining Cause Effect Chains from Version Archives - ISSRE 2011
 
Network vs. Code Metrics to Predict Defects: A Replication Study
Network vs. Code Metrics  to Predict Defects: A Replication StudyNetwork vs. Code Metrics  to Predict Defects: A Replication Study
Network vs. Code Metrics to Predict Defects: A Replication Study
 
Software Engineering Course 2009 - Mining Software Archives
Software Engineering Course 2009 - Mining Software ArchivesSoftware Engineering Course 2009 - Mining Software Archives
Software Engineering Course 2009 - Mining Software Archives
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 

Capturing the Long Term Impact of Changes

  • 1. Capturing the Long-Term Impact Of Changes Kim Herzig • Saarland University Advisor: Prof. Andreas Zeller
  • 2. Cause Effect Chain Software System Initial Change
  • 3. Cause Effect Chain Software System Initial Change
  • 4. Cause Effect Chain Software System Initial Change
  • 5. Cause Effect Chain Software System Initial Change What is the long-term impact of the initial change?
  • 6. Cause Effect Chain Software System Initial Change What is the long-term impact of the initial change? • Quality • Maintainability • Stability • Effort
  • 7. Dependency Graph file2 file1 T1 T2 T3 T4 T5 time
  • 8. Dependency Graph file2 file1 + void foo(){ T1 T2 T3 T4 T5 time
  • 9. Dependency Graph file2 + x = foo(); file1 + void foo(){ T1 T2 T3 T4 T5 time
  • 10. Dependency Graph file2 + x = foo(); - void foo(){ file1 + void foo(){ + void foo(int){ T1 T2 T3 T4 T5 time
  • 11. Dependency Graph - x = foo() file2 + x = foo(); + x = foo(42) - void foo(){ file1 + void foo(){ + void foo(int){ T1 T2 T3 T4 T5 time
  • 12. Dependency Graph - x = foo() file2 + x = foo(); + x = foo(42) + y = foo(1) - void foo(){ file1 + void foo(){ + void foo(int){ T1 T2 T3 T4 T5 time
  • 13. Dependency Graph - x = foo() file2 + x = foo(); + x = foo(42) + y = foo(1) - void foo(){ file1 + void foo(){ + void foo(int){ T1 T2 T3 T4 T5 Directed Acyclic Graph time
  • 15. Change Dependencies Change C2 depends on change C1 Change C2 can only be applied after applying C1. T1 T2 ✓ ••• T1 T2 ••• ✗
  • 16. Change Dependencies Change C2 depends on 1. Analyzing source code changes change C1 (not every revision can be compiled) Change C2 can only be applied after applying C1. T1 T2 ✓ ••• T1 T2 ••• ✗
  • 17. Change Dependencies Change C2 depends on 1. Analyzing source code changes change C1 (not every revision can be compiled) 2. Extracting method definitions and Change C2 can only be method calls from changes applied after applying C1. (added, modified, deleted) T1 T2 ✓ ••• T1 T2 ••• ✗
  • 18. Change Dependencies Change C2 depends on 1. Analyzing source code changes change C1 (not every revision can be compiled) [1] 2. Extracting method definitions and Change C2 can only be method calls from changes applied after applying C1. (added, modified, deleted) T1 T2 3. Computing dependencies between ✓ ••• method definition and call changes T1 T2 (e.g. call depends on previous definition) ••• ✗ [1] Enabling static analysis for partial Java programs, Dagenais and Hendren, OOPSLA '08
  • 19. Using the Dependency Graph T1 T2 T3 T4 T5
  • 20. Using the Dependency Graph T1 T2 T3 T4 T5 Rollback! What could be affected?
  • 21. Using the Dependency Graph T1 T2 T3 T4 T5 introduced a bug Rollback! What else should be What could be affected? reviewed?
  • 22. Using the Dependency Graph T1 T2 T3 T4 T5 introduced a bug Rollback! What else should be What could be affected? reviewed? 1 2 3 4 5 Long Term Impact Dependent changes / all later applied changes (weighted by depth)
  • 23. Using the Dependency Graph T1 T2 T3 T4 T5 introduced a bug Rollback! What else should be What could be affected? reviewed? 1 2 3 4 5 1 2 3 4 5 Long Term Impact FanIn / FanOut Dependent changes / all later applied changes Number of vertices into T (weighted by depth) Number of vertices leaving T
  • 25. Research Questions Can we use dependency graphs to detect critical development activities?
  • 26. Research Questions Can we use dependency graphs to detect critical development activities? Correlate dependency graph measurements with quality, maintainability or stability?
  • 27. Research Questions Can we use dependency graphs to detect critical development activities? Correlate dependency graph measurements with quality, maintainability or stability? Can we improve current defect prediction models using dependency graphs?
  • 28. Research Questions Can we use dependency graphs to detect critical development activities? Correlate dependency graph measurements with quality, maintainability or stability? Can we improve current defect prediction models using dependency graphs? Can we extract process models from dependency graphs that allow risk and effort estimations?

Editor's Notes

  1. Developing means changing code. And code changes have an effect. -> Local impact: tests, features, ... But changes might lead to further changes. Example: Deprecating a method and introducing a replacement -> Cause effect chain
  2. Developing means changing code. And code changes have an effect. -> Local impact: tests, features, ... But changes might lead to further changes. Example: Deprecating a method and introducing a replacement -> Cause effect chain
  3. Developing means changing code. And code changes have an effect. -> Local impact: tests, features, ... But changes might lead to further changes. Example: Deprecating a method and introducing a replacement -> Cause effect chain
  4. Developing means changing code. And code changes have an effect. -> Local impact: tests, features, ... But changes might lead to further changes. Example: Deprecating a method and introducing a replacement -> Cause effect chain
  5. Developing means changing code. And code changes have an effect. -> Local impact: tests, features, ... But changes might lead to further changes. Example: Deprecating a method and introducing a replacement -> Cause effect chain
  6. Developing means changing code. And code changes have an effect. -> Local impact: tests, features, ... But changes might lead to further changes. Example: Deprecating a method and introducing a replacement -> Cause effect chain
  7. Developing means changing code. And code changes have an effect. -> Local impact: tests, features, ... But changes might lead to further changes. Example: Deprecating a method and introducing a replacement -> Cause effect chain
  8. Imagine the following project history: 5 transactions, 4 files (simple) [changes] Each transaction gets a node Dependencies between transactions get edges [explain edges]
  9. Imagine the following project history: 5 transactions, 4 files (simple) [changes] Each transaction gets a node Dependencies between transactions get edges [explain edges]
  10. Imagine the following project history: 5 transactions, 4 files (simple) [changes] Each transaction gets a node Dependencies between transactions get edges [explain edges]
  11. Imagine the following project history: 5 transactions, 4 files (simple) [changes] Each transaction gets a node Dependencies between transactions get edges [explain edges]
  12. Imagine the following project history: 5 transactions, 4 files (simple) [changes] Each transaction gets a node Dependencies between transactions get edges [explain edges]
  13. Imagine the following project history: 5 transactions, 4 files (simple) [changes] Each transaction gets a node Dependencies between transactions get edges [explain edges]
  14. Imagine the following project history: 5 transactions, 4 files (simple) [changes] Each transaction gets a node Dependencies between transactions get edges [explain edges]
  15. Imagine the following project history: 5 transactions, 4 files (simple) [changes] Each transaction gets a node Dependencies between transactions get edges [explain edges]
  16. Imagine the following project history: 5 transactions, 4 files (simple) [changes] Each transaction gets a node Dependencies between transactions get edges [explain edges]
  17. Imagine the following project history: 5 transactions, 4 files (simple) [changes] Each transaction gets a node Dependencies between transactions get edges [explain edges]
  18. Imagine the following project history: 5 transactions, 4 files (simple) [changes] Each transaction gets a node Dependencies between transactions get edges [explain edges]
  19. Long-term impact based on change dependency. What is that? -> Definition
  20. Long-term impact based on change dependency. What is that? -> Definition
  21. Long-term impact based on change dependency. What is that? -> Definition
  22. Long-term impact based on change dependency. What is that? -> Definition
  23. Long-term impact based on change dependency. What is that? -> Definition
  24. Long-term impact based on change dependency. What is that? -> Definition
  25. Long-term impact based on change dependency. What is that? -> Definition
  26. Long-term impact based on change dependency. What is that? -> Definition