SlideShare ist ein Scribd-Unternehmen logo
1 von 16
Downloaden Sie, um offline zu lesen
Can I Remove This Method?
How Live Feedback from the
Ecosystem Supports Co-Evolution
Manuel Leuenberger

manuel.leuenberger@inf.unibe.ch
IWST 2019
Software Composition Group

Universität Bern, CH
@maenuleu
me, a library developer
!2
Focus: Brick Dropdown
!3
A history of co-evolution
• push new dropdown to Brick

• Glamorous Toolkit CI passes

• all good?
!4
!5
UHMO depends on Brick
!6
Can I remove this method?
no senders within the image, nobody seems to use it
!7
But I am not sure
Who is using a method
in the ecosystem?
!8
Boris Spasojević. 2016. Developing Ecosystem-aware Tools. PhD thesis. University of Bern.
http://scg.unibe.ch/archive/phd/spasojevic-phd. pdf
!9
!10
Pros and Cons
+ integrate information from the ecosystem

+ serves as sanity checks for changes

+ live feedback on the impact of library changes on clients

- incomplete: 100% precision, unknown recall

- recall depends on degree of exercising library

- requires running || {devs} x {endorsed library clients} || images

- local vs. remote: logging? inspection? debugging?
!11
Propagate changes &
run examples
!12
<<image>>
UHMO + Brick
changes
<<image>>
Brick
example runner
Propagating changes
!13
Seamless + Epicea
Profiling examples
!14
• 191 examples in UHMO

• only interested in examples using dropdown

! run only examples calling dropdown methods

In the UHMO image:

1.instrument 75 methods in dropdown package

2.run all 191 examples, takes 11s

3.identify 51 examples calling dropdown methods

4.remove instrumentation from dropdown methods

5.run 51 UHMO examples in 5s on every change
Seamless + MetaLinks
Can I remove this method?
!15
No, but I know within seconds,
not days!
Next: Better co-evolution
• detecting breaking changes

• estimating change impact

• automatically migrate library clients
• provide migration process alongside library version

• code transformations, just as database migrations

• domain-specific tools to guide the process
!16
@maenuleu

Weitere ähnliche Inhalte

Ähnlich wie Can I Remove This Method? How Live Feedback from the Ecosystem Supports Co-Evolution

RDA BoF on Sustainability - my experience with ISA tools
RDA BoF on Sustainability - my experience with ISA toolsRDA BoF on Sustainability - my experience with ISA tools
RDA BoF on Sustainability - my experience with ISA toolsSusanna-Assunta Sansone
 
Laboratory_Proposal.pdf
Laboratory_Proposal.pdfLaboratory_Proposal.pdf
Laboratory_Proposal.pdfRomanbabuOinam
 
ICSME 2016 keynote: An ecosystemic and socio-technical view on software maint...
ICSME 2016 keynote: An ecosystemic and socio-technical view on software maint...ICSME 2016 keynote: An ecosystemic and socio-technical view on software maint...
ICSME 2016 keynote: An ecosystemic and socio-technical view on software maint...Tom Mens
 
Data Science: History repeated? – The heritage of the Free and Open Source GI...
Data Science: History repeated? – The heritage of the Free and Open Source GI...Data Science: History repeated? – The heritage of the Free and Open Source GI...
Data Science: History repeated? – The heritage of the Free and Open Source GI...Peter Löwe
 
User experience design portfolio, Harry Brenton
User experience design portfolio, Harry Brenton User experience design portfolio, Harry Brenton
User experience design portfolio, Harry Brenton Harry Brenton
 
User Involvement in Software Evolution Practice: A Case Study
User Involvement in Software Evolution Practice: A Case StudyUser Involvement in Software Evolution Practice: A Case Study
User Involvement in Software Evolution Practice: A Case StudyDennis Pagano
 
Sustainability in Scientific Software: Ecosystem complexity and Software Vis...
Sustainability in Scientific Software:Ecosystem complexityandSoftware Vis...Sustainability in Scientific Software:Ecosystem complexityandSoftware Vis...
Sustainability in Scientific Software: Ecosystem complexity and Software Vis...James Howison
 
On how new IT frontiers will impact everyday life: the NECSTLab example
On how new IT frontiers will impact everyday life: the NECSTLab exampleOn how new IT frontiers will impact everyday life: the NECSTLab example
On how new IT frontiers will impact everyday life: the NECSTLab exampleNECST Lab @ Politecnico di Milano
 
Cobweb: In Pursuit of Conclusions
Cobweb: In Pursuit of ConclusionsCobweb: In Pursuit of Conclusions
Cobweb: In Pursuit of ConclusionsCOBWEB Project
 
Web and Social Media Image Forensics for News Professionals
Web and Social Media Image Forensics for News ProfessionalsWeb and Social Media Image Forensics for News Professionals
Web and Social Media Image Forensics for News ProfessionalsSymeon Papadopoulos
 
Digital pathology and biobanks
Digital pathology and biobanksDigital pathology and biobanks
Digital pathology and biobanksYves Sucaet
 
MCN 2013 (ffrench) From Documentation to Discovery: Preservation Photographic...
MCN 2013 (ffrench) From Documentation to Discovery: Preservation Photographic...MCN 2013 (ffrench) From Documentation to Discovery: Preservation Photographic...
MCN 2013 (ffrench) From Documentation to Discovery: Preservation Photographic...John ffrench
 
Analysing the evolution of social aspects of open source software ecosystems
Analysing the evolution of social aspects of open source software ecosystemsAnalysing the evolution of social aspects of open source software ecosystems
Analysing the evolution of social aspects of open source software ecosystemsTom Mens
 
Bio js2 short_introduction
Bio js2 short_introductionBio js2 short_introduction
Bio js2 short_introductionLeylaJael Castro
 
Sir Siva Nce VISION
Sir Siva Nce VISIONSir Siva Nce VISION
Sir Siva Nce VISIONAshar Ahmed
 
Working With Image
Working With ImageWorking With Image
Working With ImageVicky Kumar
 

Ähnlich wie Can I Remove This Method? How Live Feedback from the Ecosystem Supports Co-Evolution (20)

RDA BoF on Sustainability - my experience with ISA tools
RDA BoF on Sustainability - my experience with ISA toolsRDA BoF on Sustainability - my experience with ISA tools
RDA BoF on Sustainability - my experience with ISA tools
 
Laboratory_Proposal.pdf
Laboratory_Proposal.pdfLaboratory_Proposal.pdf
Laboratory_Proposal.pdf
 
ICSME 2016 keynote: An ecosystemic and socio-technical view on software maint...
ICSME 2016 keynote: An ecosystemic and socio-technical view on software maint...ICSME 2016 keynote: An ecosystemic and socio-technical view on software maint...
ICSME 2016 keynote: An ecosystemic and socio-technical view on software maint...
 
Data Science: History repeated? – The heritage of the Free and Open Source GI...
Data Science: History repeated? – The heritage of the Free and Open Source GI...Data Science: History repeated? – The heritage of the Free and Open Source GI...
Data Science: History repeated? – The heritage of the Free and Open Source GI...
 
User experience design portfolio, Harry Brenton
User experience design portfolio, Harry Brenton User experience design portfolio, Harry Brenton
User experience design portfolio, Harry Brenton
 
User Involvement in Software Evolution Practice: A Case Study
User Involvement in Software Evolution Practice: A Case StudyUser Involvement in Software Evolution Practice: A Case Study
User Involvement in Software Evolution Practice: A Case Study
 
Sustainability in Scientific Software: Ecosystem complexity and Software Vis...
Sustainability in Scientific Software:Ecosystem complexityandSoftware Vis...Sustainability in Scientific Software:Ecosystem complexityandSoftware Vis...
Sustainability in Scientific Software: Ecosystem complexity and Software Vis...
 
On how new IT frontiers will impact everyday life: the NECSTLab example
On how new IT frontiers will impact everyday life: the NECSTLab exampleOn how new IT frontiers will impact everyday life: the NECSTLab example
On how new IT frontiers will impact everyday life: the NECSTLab example
 
Cobweb: In Pursuit of Conclusions
Cobweb: In Pursuit of ConclusionsCobweb: In Pursuit of Conclusions
Cobweb: In Pursuit of Conclusions
 
Web and Social Media Image Forensics for News Professionals
Web and Social Media Image Forensics for News ProfessionalsWeb and Social Media Image Forensics for News Professionals
Web and Social Media Image Forensics for News Professionals
 
Digital pathology and biobanks
Digital pathology and biobanksDigital pathology and biobanks
Digital pathology and biobanks
 
MCN 2013 (ffrench) From Documentation to Discovery: Preservation Photographic...
MCN 2013 (ffrench) From Documentation to Discovery: Preservation Photographic...MCN 2013 (ffrench) From Documentation to Discovery: Preservation Photographic...
MCN 2013 (ffrench) From Documentation to Discovery: Preservation Photographic...
 
Analysing the evolution of social aspects of open source software ecosystems
Analysing the evolution of social aspects of open source software ecosystemsAnalysing the evolution of social aspects of open source software ecosystems
Analysing the evolution of social aspects of open source software ecosystems
 
Bio js2 short_introduction
Bio js2 short_introductionBio js2 short_introduction
Bio js2 short_introduction
 
Sir Siva Nce VISION
Sir Siva Nce VISIONSir Siva Nce VISION
Sir Siva Nce VISION
 
Working With Image
Working With ImageWorking With Image
Working With Image
 
AUTH practice
AUTH practiceAUTH practice
AUTH practice
 
Data and model management in Systems Biology
Data and model management in Systems BiologyData and model management in Systems Biology
Data and model management in Systems Biology
 
PS-Science
PS-SciencePS-Science
PS-Science
 
PS-Science
PS-SciencePS-Science
PS-Science
 

Mehr von ESUG

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingESUG
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in PharoESUG
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapESUG
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsESUG
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector TuningESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FutureESUG
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the DebuggerESUG
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing ScoreESUG
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptESUG
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsESUG
 

Mehr von ESUG (20)

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 

Kürzlich hochgeladen

Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptrcbcrtm
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 

Kürzlich hochgeladen (20)

Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.ppt
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 

Can I Remove This Method? How Live Feedback from the Ecosystem Supports Co-Evolution

  • 1. Can I Remove This Method? How Live Feedback from the Ecosystem Supports Co-Evolution Manuel Leuenberger manuel.leuenberger@inf.unibe.ch IWST 2019 Software Composition Group Universität Bern, CH @maenuleu
  • 2. me, a library developer !2
  • 4. A history of co-evolution • push new dropdown to Brick • Glamorous Toolkit CI passes • all good? !4
  • 6. !6
  • 7. Can I remove this method? no senders within the image, nobody seems to use it !7 But I am not sure
  • 8. Who is using a method in the ecosystem? !8 Boris Spasojević. 2016. Developing Ecosystem-aware Tools. PhD thesis. University of Bern. http://scg.unibe.ch/archive/phd/spasojevic-phd. pdf
  • 9. !9
  • 10. !10
  • 11. Pros and Cons + integrate information from the ecosystem + serves as sanity checks for changes + live feedback on the impact of library changes on clients - incomplete: 100% precision, unknown recall - recall depends on degree of exercising library - requires running || {devs} x {endorsed library clients} || images - local vs. remote: logging? inspection? debugging? !11
  • 12. Propagate changes & run examples !12 <<image>> UHMO + Brick changes <<image>> Brick example runner
  • 14. Profiling examples !14 • 191 examples in UHMO • only interested in examples using dropdown ! run only examples calling dropdown methods In the UHMO image: 1.instrument 75 methods in dropdown package 2.run all 191 examples, takes 11s 3.identify 51 examples calling dropdown methods 4.remove instrumentation from dropdown methods 5.run 51 UHMO examples in 5s on every change Seamless + MetaLinks
  • 15. Can I remove this method? !15 No, but I know within seconds, not days!
  • 16. Next: Better co-evolution • detecting breaking changes • estimating change impact • automatically migrate library clients • provide migration process alongside library version • code transformations, just as database migrations • domain-specific tools to guide the process !16 @maenuleu