| dc.creator | Silva, Arthur Vinicius Bezerra da |  | 
| dc.date.accessioned | 2025-10-30T18:46:43Z |  | 
| dc.date.available | 2025-10-30T18:46:43Z |  | 
| dc.date.issued | 2025-09-23 |  | 
| dc.identifier.citation | SILVA, Arthur Vinicius Bezerra da et al. Software Dependency Version Migration: A Rapid Review on Motivations, Techniques, Tools and Challenges. 2025. 12 f. Trabalho de Conclusão de Curso (Análise e Desenvolvimento de Sistemas) - Instituto Federal de Educação, Ciência e Tecnologia de Pernambuco, Campus Paulista, Paulista, 2025. | pt_BR | 
| dc.identifier.uri | https://repositorio.ifpe.edu.br/xmlui/handle/123456789/1911 |  | 
| dc.format.extent | 12 p. | pt_BR | 
| dc.language | en | pt_BR | 
| dc.relation | Kumar, S.H.B.I.; Sampaio, L.R.; Martin, A.; Brito, A.; Fetzer,
C.. 2024. A Comprehensive Study on the Impact of Vulnerable
Dependencies on Open-Source Software. Proceedings of the
International Symposium on Software Reliability Engineering
(ISSRE).
[S2] Nguyen H.A.; Nguyen T.T.; Wilson Jr. G.; Nguyen A.T.; Kim
M.; Nguyen T.N.. 2010. A Graph-based Approach to API
Usage Adaptation. Proceedings of the Conference on Object-
Oriented Programming Systems, Languages, and Applications,
OOPSLA.
[S3] Meng S.; Wang X.; Zhang L.; Mei H.. 2012. A History-Based
Matching Approach to Identification of Framework Evolution.
Proceedings - International Conference on Software Engineering.
[S4] Ketkar A.; Ramos D.; Clapp L.; Barik R.; Ramanathan M.K..
2024. A Lightweight Polyglot Code Transformation Language.
Proceedings of the ACM on Programming Languages.
[S5] Du X.; Ma J.. 2022. AexPy: Detecting API Breaking Changes
in Python Packages. Proceedings - International Symposium
on Software Reliability Engineering, ISSRE.
[S6] Navarro N.; Alamir S.; Babkin P.; Shah S.. 2023. An Automated
Code Update Tool for Python Packages. Proceedings -
2023 IEEE International Conference on Software Maintenance
and Evolution, ICSME 2023.
[S7] Jayasuriya D.; Ou S.; Hegde S.; Terragni V.; Dietrich J.; Blincoe
K.. 2025. An extended study of syntactic breaking changes in
the wild. Empirical Software Engineering.
10
[S8] Haryono S.A.; Thung F.; Lo D.; Jiang L.; Lawall J.; Kang H.J.;
Serrano L.; Muller G.. 2022. AndroEvolve automated Android
API update with data flow analysis and variable denormalization.
Empirical Software Engineering.
[S9] Haryono S.A.; Thung F.; Lo D.; Jiang L.; Lawall J.; Jin Kang
H.; Serrano L.; Muller G.. 2021. AndroEvolve Automated Update
for Android Deprecated-API Usages. Proceedings - International
Conference on Software Engineering.
[S10] Brito A.; Xavier L.; Hora A.; Valente M.T.. 2018. APIDiff:
Detecting API breaking changes. 25th IEEE International
Conference on Software Analysis, Evolution and Reengineering,
SANER 2018 - Proceedings.
[S11] Gao X.; Radhakrishna A.; Soares G.; Shariffdeen R.; Gulwani
S.; Roychoudhury A.. 2021. APIfix: Output-oriented program
synthesis for combating breaking changes in libraries. Proceedings
of the ACM on Programming Languages.
[S12] Fazzini M.; Xin Q.; Orso A.. 2020. APIMigrator: An APIusage
migration tool for Android apps. Proceedings - 2020
IEEE/ACM 7th International Conference on Mobile Software
Engineering and Systems, MOBILESoft 2020.
[S13] Robillard M.P.; Bodden E.; Kawrykow D.; Mezini M.; Ratchford
T.. 2013. Automated API property inference techniques.
IEEE Transactions on Software Engineering.
[S14] Fazzini M.; Xin Q.; Orso A.. 2019. Automated API-Usage
update for android apps. ISSTA 2019 - Proceedings of the 28th
ACM SIGSOFT International Symposium on Software Testing
and Analysis.
[S15] Thung F.; Haryono S.A.; Serrano L.; Muller G.; Lawall J.; Lo
D.; Jiang L.. 2020. Automated Deprecated-API Usage Update
for Android Apps: How Far are We?. SANER 2020 - Proceedings
of the 2020 IEEE 27th International Conference on
Software Analysis, Evolution, and Reengineering.
[S16] Dig D.; Johnson R.. 2006. Automated upgrading of componentbased
applications. Proceedings of the Conference on Object-
Oriented Programming Systems, Languages, and Applications,
OOPSLA.
[S17] Haryono S.A.; Thung F.; Kang H.J.; Serrano L.; Muller G.;
Lawall J.; Lo D.; Jiang L.. 2020. Automatic android deprecatedapi
usage update by learning from single updated example.
IEEE International Conference on Program Comprehension.
[S18] Duan Y.; Gao L.; Hu J.; Yin H.. 2019. Automatic generation
of non-intrusive updates for third-party libraries in Android applications.
RAID 2019 Proceedings - 22nd International Symposium
on Research in Attacks, Intrusions and Defenses.
[S19] Almeida A.; Xavier L.; Valente M.T.. 2024. Automatic Library
Migration Using Large Language Models: First Results. International
Symposium on Empirical Software Engineering and
Measurement.
[S20] Perkins J.H.. 2005. Automatically generating refactorings to
support API evolution. ACM SIGPLAN/SIGSOFT Workshop
on Program Analysis for Software Tools and Engineering.
[S21] Reyes F.; Baudry B.; Monperrus M.. 2024. Breaking-Good:
Explaining Breaking Dependency Updates with Build Analysis.
Proceedings - 2024 IEEE International Conference on Source
Code Analysis and Manipulation, SCAM 2024.
[S22] Henkel J.; Diwan A.. 2005. CatchUp! capturing and replaying
refactorings to support API evolution. Proceedings - 27th
International Conference on Software Engineering, ICSE05.
[S23] Haryono S.A.; Thung F.; Lo D.; Lawall J.; Jiang L.. 2021.
Characterization and Automatic Updates of Deprecated Machine-
Learning API Usages. Proceedings - 2021 IEEE International
Conference on Software Maintenance and Evolution, ICSME
2021.
[S24] Savga L.; Rudolf M.; G¨otz S.. 2008. ComeBack! A refactoringbased
tool for binary-compatible framework upgrade. Proceedings
- International Conference on Software Engineering.
[S25] Zhong H.; Meng N.. 2024. Compiler-Directed Migrating API
Callsite of Client Code. Proceedings - International Conference
on Software Engineering.
[S26] Scalabrino S.; Bavota G.; Linares-Vasquez M.; Lanza M.; Oliveto
R.. 2019. Data-driven solutions to detect API compatibility issues
in android: An empirical study. IEEE International Working
Conference on Mining Software Repositories.
[S27] Ducasse S.; Polito G.; Zaitsev O.; Denker M.; Tesone P.. 2022.
Deprewriter: On the fly rewriting method deprecations. Journal
of Object Technology.
[S28] Møller A.; Nielsen B.B.; Torp M.T.. 2020. Detecting locations
in JavaScript programs affected by breaking library changes.
Proceedings of the ACM on Programming Languages.
[S29] Kula R.G.; German D.M.; Ouni A.; Ishio T.; Inoue K. 2018.
Do developers update their library dependencies: An empirical
study on the impact of security advisories on library migration.
Empirical Software Engineering.
[S30] Salza P.; Palomba F.; Di Nucci D.; D’Uva C.; De Lucia A.; Ferrucci
F.. 2018. Do developers update third-party libraries in
mobile apps. Proceedings - International Conference on Software
Engineering.
[S31] Leuenberger M.. 2019. Exploring example-driven migration.
ACM International Conference Proceeding Series.
[S32] Lamothe M.; Shang W.. 2018. Exploring the use of automated
API migrating techniques in practice An experience report on
Android. Proceedings - International Conference on Software
Engineering.
[S33] Winter V.L.; Mametjanov A.. 2007. Generative programming
techniques for Java library migration. GPCE’07 - Proceedings
of the Sixth International Conference on Generative Programming
and Component Engineering.
[S34] Zhang Z.; Zhu H.; Wen M.; Tao Y.; Liu Y.; Xiong Y.. 2020.
How Do Python Framework APIs Evolve? An Exploratory
Study. SANER 2020 - Proceedings of the 2020 IEEE 27th International
Conference on Software Analysis, Evolution, and
Reengineering.
[S35] Zaitsev O.; Ducasse S.; Anquetil N.; Thiefaine A.. 2022. How
Libraries Evolve: A Survey of Two Industrial Companies and an
Open-Source Community. Proceedings - Asia-Pacific Software
Engineering Conference, APSEC.
[S36] Serbout S.; Pautasso C.. 2024. How Many Web APIs Evolve
Following Semantic Versioning?. Lecture Notes in Computer
Science (including subseries Lecture Notes in Artificial Intelligence
and Lecture Notes in Bioinformatics).
[S37] Venturini D.; Cogo F.R.; Polato I.; Gerosa M.A.; Wiese I.S..
2023. I Depended on You and You Broke Me: An Empirical
Study of Manifesting Breaking Changes in Client Packages.
ACM Transactions on Software Engineering and Methodology.
[S38] Narasimhan K.; Reichenbach C.; Lawall J.. 2017. Interactive
data representation Migration: Exploiting program dependence
to aid program transformation. PEPM 2017 - Proceedings of
the 2017 ACM SIGPLAN Workshop on Partial Evaluation and
Program Manipulation, co-located with POPL 2017.
[S39] Xu S.; Dong Z.; Meng N.. 2019. Meditor: Inference and application
of API migration edits. IEEE International Conference
on Program Comprehension.
[S40] Xi Y.; Shen L.; Gui Y.; Zhao W.. 2019. Migrating deprecated
API to documented replacement: Patterns and tool. ACM International
Conference Proceeding Series.
[S41] ˇStrobl R.; Tron´ıˇcek Z.. 2013. Migration from deprecated API
in java. SPLASH 2013 - Proceedings of the 2013 Companion
Publication for Conference on Systems, Programming, and Applications:
Software for Humanity.
Haryono S.A.; Thung F.; Lo D.; Lawall J.; Jiang L.. 2021. MLCatchUp:
Automated Update of Deprecated Machine-Learning
APIs in Python. Proceedings - 2021 IEEE International Conference
on Software Maintenance and Evolution, ICSME 2021.
[S43] Wu W.. 2011. Modeling framework API evolution as a multiobjective
optimization problem. IEEE International Conference
on Program Comprehension.
[S44] Alrubaye H.; Mkaouer M.W.; Ouni A.. 2019. On the use of
information retrieval to automate the detection of third-party
Java library migration at the method level. IEEE International
Conference on Program Comprehension.
[S45] S¸avga I.; Rudolf M.; G¨otz S.; Aßmann U.. 2008. Practical
refactoring-based framework upgrade. GPCE’08: Proceedings
of the ACM SIGPLAN 7th International Conference on Generative
Programming and Component Engineering.
[S46] Dilhara M.; Dig D.; Ketkar A.. 2023. PYEVOLVE: Automating
Frequent Code Changes in Python ML Systems. Proceedings
- International Conference on Software Engineering.
[S47] Dig D.; Negara S.; Johnson R.; Mohindra V.. 2008. ReBA:
Refactoring-aware binary adaptation of evolving libraries. Proceedings
- International Conference on Software Engineering.
[S48] Schmiedmayer P.; Bauer A.; Bruegge B.. 2023. Reducing the
Impact of Breaking Changes toWeb Service Clients DuringWeb
API Evolution. Proceedings - 2023 IEEE/ACM 10th International
Conference on Mobile Software Engineering and Systems,
MOBILESoft 2023.
[S49] Kapur P.; Cossette B.; Walker R.J.. 2010. Refactoring references
for library migration. ACM SIGPLAN Notices.
[S50] Balaban I.; Tip F.; Fuhrer R.. 2005. Refactoring support
for class library migration. Proceedings of the Conference on
Object-Oriented Programming Systems, Languages, and Applications,
OOPSLA.
[S51] Tsantalis N.; Ketkar A.; Dig D.. 2022. RefactoringMiner 2.0.
IEEE Transactions on Software Engineering.
[S52] Zhu C.; Saha R.K.; Prasad M.R.; Khurshid S.. 2021. Restoring
the Executability of Jupyter Notebooks by Automatic Upgrade
of Deprecated APIs. Proceedings - 2021 36th IEEE/ACM
International Conference on Automated Software Engineering,
ASE 2021.
[S53] Nielsen B.B.; Torp M.T.; Moller A.. 2021. Semantic Patches
for Adaptation of JavaScript Programs to Evolving Libraries.
Proceedings - International Conference on Software Engineering.
[S54] Kang H.J.; Thung F.; Lawall J.; Muller G.; Jiang L.; Lo D..
2019. Semantic patches for java program transformation. Leibniz
International Proceedings in Informatics, LIPIcs.
[S55] Dagenais B.; Robillard M.P.. 2009. SemDiff: Analysis and
recommendation support for API evolution. Proceedings - International
Conference on Software Engineerings.
[S56] Ni A.; Ramos D.; Yang A.Z.H.; Lynce I.; Manquinho V.; Martins
R.; Le Goues C.. 2021. SOAR: A synthesis approach for
data science API refactoring. Proceedings - International Conference
on Software Engineering.
[S57] Salza P.; Palomba F.; Di Nucci D.; De Lucia A.; Ferrucci F..
2020. Third-party libraries in mobile apps: When, how, and
why developers update them. Empirical Software Engineering.
[S58] Sawant A.A.; Robbes R.; Bacchelli A.. 2019. To react, or not
to react: Patterns of reaction to API deprecation. Empirical
Software Engineering.
[S59] Thung F.; Kang H.J.; Jiang L.; Lo D.. 2019. Towards Generating
Transformation Rules without Examples for Android API
Replacement. Proceedings - 2019 IEEE International Conference
on Software Maintenance and Evolution, ICSME 2019.
[S60] Yamaguchi D.; Iwatsuka T.. 2022. Two-Stage Patch Synthesis
for API Migration from Single API Usage Example. Proceedings
- Asia-Pacific Software Engineering Conference, APSEC.
[S61] Jayasuriya D.; Terragni V.; Dietrich J.; Ou S.; Blincoe K.. 2023.
Understanding Breaking Changes in the Wild. ISSTA 2023 -
Proceedings of the 32nd ACM SIGSOFT International Symposium
on Software Testing and Analysis.
[S62] Yasumatsu T.; Watanabe T.; Kanei F.; Shioji E.; Akiyama M.;
Mori T.. 2019. Understanding the responsiveness of mobile app
developers to software library updates. CODASPY 2019 - Proceedings
of the 9th ACM Conference on Data and Application
Security and Privacy.
[S63] Dig D.. 2005. Using refactorings to automatically update
component-based applications. Proceedings of the Conference
on Object-Oriented Programming Systems, Languages, and Applications,
OOPSLA. | pt_BR | 
| dc.rights | Acesso Aberto | pt_BR | 
| dc.rights | An error occurred on the license name. | * | 
| dc.rights.uri | An error occurred getting the license - uri. | * | 
| dc.subject | Library Migration | pt_BR | 
| dc.subject | Code Migration Tools | pt_BR | 
| dc.subject | Dependency Management | pt_BR | 
| dc.subject | Software Evolution | pt_BR | 
| dc.subject | Migration Challenges | pt_BR | 
| dc.title | Software Dependency Version Migration: A Rapid Review on Motivations, Techniques, Tools and Challenges. | pt_BR | 
| dc.type | Article | pt_BR | 
| dc.creator.Lattes | http://lattes.cnpq.br/2905271256020832 | pt_BR | 
| dc.contributor.advisor1 | Cartaxo, Bruno Falcão de Souza |  | 
| dc.contributor.advisor1Lattes | http://lattes.cnpq.br/3125607007070020 | pt_BR | 
| dc.contributor.referee1 | Kamei, Fernando Kenji |  | 
| dc.contributor.referee2 | Silva, Rodrigo Cesar Lira da |  | 
| dc.contributor.referee1Lattes | http://lattes.cnpq.br/5033020411757389 | pt_BR | 
| dc.contributor.referee2Lattes | http://lattes.cnpq.br/242224050349612 | pt_BR | 
| dc.publisher.department | Paulista | pt_BR | 
| dc.publisher.country | Brasil | pt_BR | 
| dc.subject.cnpq | CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO | pt_BR | 
| dc.description.resumo | Modern software development relies heavily on frequent updates to dependencies (e.g. third-party libraries, frameworks and APIs), which introduce the need for consistent and efficient migration practices to avoid breaking changes. As these dependencies evolve, developers face the challenge of adapting their code-bases to maintain compatibility, security, and performance. Goal: We investigate the current landscape of dependency version migration, focusing on identifying the motivations, techniques, tools, and challenges to conduct such activity. The study also aims to understand the strategies to detect the need for dependency migration and the trade-offs involved in these decisions. Method: We conducted a rapid review of the literature using the Scopus search engine, which returned 2,637 papers in February 2025. After applying predefined inclusion and exclusion criteria, we ended up with 63 included studies, which we extracted data to answer each of the research questions. Results: The findings indicate that developers rarely migrate dependencies unless strongly motivated by bug fixes, compatibility, or security fixes. The strategies to identify dependencies that require updates rely on automated tools or methods. Typically, strategies to detect breaking changes are manual inspection or the use of specialized tools. Several tools and strategies have been proposed to support dependency updates, many of which rely on static analysis, rule-based transformations, or example-driven techniques. However, these tools often involve trade-offs between precision, usability, and manual effort. Conclusions: This review highlights that dependency migration is not a common practice and when it happens it is for reasons of fixes and compatibility. The proposed strategies to identify dependencies that need to be updated rely on automated tools, on the other hand, the strategies to identify braking changes varies between cases using manual and cases using automation. Furthermore, there is no silver bullet solution in the dependency migration techniques, they have different proposals and specificity. | pt_BR | 
| dc.creator.name2 | Teixeira, Leopoldo Motta |  | 
| dc.creator.Lattes2 | http://lattes.cnpq.br/2117651910340729 | pt_BR | 
| dc.creator.ID3 | 0000-0002-7557-9091 | pt_BR | 
| dc.creator.Lattes3 | http://lattes.cnpq.br/2841032013026879 | pt_BR | 
| dc.creator.name3 | Assunção, Wesley Klewerton Guez |  |