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

Control systems lab task
Control systems lab taskControl systems lab task
Control systems lab taskARIF HUSSAIN
 
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 algortihmSajid Marwat
 
Operations on Continuous Time Signals
Operations on Continuous Time SignalsOperations on Continuous Time Signals
Operations on Continuous Time SignalsAl-Amin Islam
 
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...Adelaide789
 
DIT-Radix-2-FFT in SPED
DIT-Radix-2-FFT in SPEDDIT-Radix-2-FFT in SPED
DIT-Radix-2-FFT in SPEDAjay Kumar
 
Transfer functions, poles and zeros.
Transfer functions, poles and zeros.Transfer functions, poles and zeros.
Transfer functions, poles and zeros.ARIF HUSSAIN
 
fft using labview
fft using labviewfft using labview
fft using labviewkiranrockz
 
Asymptotic analysis
Asymptotic analysisAsymptotic analysis
Asymptotic analysisSoujanya V
 
Eeb317 principles of telecoms 2015
Eeb317 principles of telecoms 2015Eeb317 principles of telecoms 2015
Eeb317 principles of telecoms 2015Pritchardmabutho
 
Advance Data Structure
Advance Data StructureAdvance Data Structure
Advance Data StructureRamzi Alqrainy
 
Tele4653 l5
Tele4653 l5Tele4653 l5
Tele4653 l5Vin Voro
 
Modulation & d emodul tion
Modulation & d emodul tionModulation & d emodul tion
Modulation & d emodul tionMurali Krishna
 
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 & Systemstaha25
 
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...wrogiest
 

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

Park – a – lot
Park – a – lotPark – a – lot
Park – a – lotDhruv Aarora
 
Välkommen till Airtime sales-
Välkommen till Airtime sales-Välkommen till Airtime sales-
Välkommen till Airtime sales-Ellinor Engström
 
Literate environment analysis
Literate environment analysisLiterate environment analysis
Literate environment analysisjeaneanmcgee
 
Intel Edison: Beyond the Breadboard
Intel Edison: Beyond the BreadboardIntel Edison: Beyond the Breadboard
Intel Edison: Beyond the Breadboardyeokm1
 
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 FormatBen De Meester
 
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-15Intacct Corporation
 
Singapore model-composition-primary-3
Singapore model-composition-primary-3Singapore model-composition-primary-3
Singapore model-composition-primary-3Kathleen Ong
 
好文欣赏-星月的由来
好文欣赏-星月的由来好文欣赏-星月的由来
好文欣赏-星月的由来Kathleen Ong
 
Colecistitis aguda y crónica
Colecistitis aguda y crónicaColecistitis aguda y crónica
Colecistitis aguda y crónicaKarla González
 
Chinese Comprehension 29
Chinese Comprehension 29Chinese Comprehension 29
Chinese Comprehension 29Kathleen Ong
 

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

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 SavineAntoine 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 brandyLoren Schwappach
 
SAT Planning for MPrimes
SAT Planning for MPrimesSAT Planning for MPrimes
SAT Planning for MPrimesFariz Darari
 
SP_BEE2143_C1.pptx
SP_BEE2143_C1.pptxSP_BEE2143_C1.pptx
SP_BEE2143_C1.pptxIffahSkmd
 
Equations in sc motion 2012
Equations in sc motion 2012Equations in sc motion 2012
Equations in sc motion 2012Rajeev Lochan
 

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

Keynote AST 2016
Keynote AST 2016Keynote AST 2016
Keynote AST 2016Kim 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 2015Kim Herzig
 
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 2015Kim 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 2015Kim Herzig
 
Issre2014 test defectprediction
Issre2014 test defectpredictionIssre2014 test defectprediction
Issre2014 test defectpredictionKim 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 ChangesKim Herzig
 
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 2011Kim 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 StudyKim 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 ArchivesKim 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

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 

Recently uploaded (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 

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