Mostrar registro simples

dc.creatorSilva, Arthur Vinicius Bezerra da
dc.date.accessioned2025-10-30T18:46:43Z
dc.date.available2025-10-30T18:46:43Z
dc.date.issued2025-09-23
dc.identifier.citationSILVA, 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.urihttps://repositorio.ifpe.edu.br/xmlui/handle/123456789/1911
dc.format.extent12 p.pt_BR
dc.languageenpt_BR
dc.relationKumar, 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.rightsAcesso Abertopt_BR
dc.rightsAn error occurred on the license name.*
dc.rights.uriAn error occurred getting the license - uri.*
dc.subjectLibrary Migrationpt_BR
dc.subjectCode Migration Toolspt_BR
dc.subjectDependency Managementpt_BR
dc.subjectSoftware Evolutionpt_BR
dc.subjectMigration Challengespt_BR
dc.titleSoftware Dependency Version Migration: A Rapid Review on Motivations, Techniques, Tools and Challenges.pt_BR
dc.typeArticlept_BR
dc.creator.Latteshttp://lattes.cnpq.br/2905271256020832pt_BR
dc.contributor.advisor1Cartaxo, Bruno Falcão de Souza
dc.contributor.advisor1Latteshttp://lattes.cnpq.br/3125607007070020pt_BR
dc.contributor.referee1Kamei, Fernando Kenji
dc.contributor.referee2Silva, Rodrigo Cesar Lira da
dc.contributor.referee1Latteshttp://lattes.cnpq.br/5033020411757389pt_BR
dc.contributor.referee2Latteshttp://lattes.cnpq.br/242224050349612pt_BR
dc.publisher.departmentPaulistapt_BR
dc.publisher.countryBrasilpt_BR
dc.subject.cnpqCIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAOpt_BR
dc.description.resumoModern 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.name2Teixeira, Leopoldo Motta
dc.creator.Lattes2http://lattes.cnpq.br/2117651910340729pt_BR
dc.creator.ID30000-0002-7557-9091pt_BR
dc.creator.Lattes3http://lattes.cnpq.br/2841032013026879pt_BR
dc.creator.name3Assunção, Wesley Klewerton Guez


Arquivos deste item

Thumbnail
Thumbnail

Este item aparece na(s) seguinte(s) coleção(s)

Mostrar registro simples