{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,7,4]],"date-time":"2026-07-04T15:25:18Z","timestamp":1783178718392,"version":"3.54.6"},"reference-count":50,"publisher":"Springer Science and Business Media LLC","issue":"3","license":[{"start":{"date-parts":[[2022,3,17]],"date-time":"2022-03-17T00:00:00Z","timestamp":1647475200000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.springer.com\/tdm"},{"start":{"date-parts":[[2022,3,17]],"date-time":"2022-03-17T00:00:00Z","timestamp":1647475200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Empir Software Eng"],"published-print":{"date-parts":[[2022,5]]},"DOI":"10.1007\/s10664-021-10096-0","type":"journal-article","created":{"date-parts":[[2022,3,17]],"date-time":"2022-03-17T12:02:51Z","timestamp":1647518571000},"update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":20,"title":["AndroEvolve: automated Android API update with data flow analysis and variable denormalization"],"prefix":"10.1007","volume":"27","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-1625-3777","authenticated-orcid":false,"given":"Stefanus A.","family":"Haryono","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Ferdian","family":"Thung","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"David","family":"Lo","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Lingxiao","family":"Jiang","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-1684-1264","authenticated-orcid":false,"given":"Julia","family":"Lawall","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Hong Jin","family":"Kang","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Lucas","family":"Serrano","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-0000-8569","authenticated-orcid":false,"given":"Gilles","family":"Muller","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"297","published-online":{"date-parts":[[2022,3,17]]},"reference":[{"key":"10096_CR1","doi-asserted-by":"crossref","unstructured":"Asyrofi MH, Thung F, Lo D, Jiang L (2020) AUSearch: Accurate API usage search in GitHub repositories with type resolution. In: IEEE International Conference on Software Analysis, Evolution and Reengineering","DOI":"10.1109\/SANER48275.2020.9054809"},{"key":"10096_CR2","unstructured":"Bakeman R, Gottman J (1986) Observing interaction: An introduction to sequential analysis"},{"key":"10096_CR3","doi-asserted-by":"crossref","unstructured":"Bod\u00edk R, Gupta R (1997) Partial dead code elimination using slicing transformations. In: Proceedings of the ACM SIGPLAN 1997 Conference on Programming Language Design and Implementation, PLDI \u201997. Association for Computing Machinery, New York, pp 159\u2013170","DOI":"10.1145\/258915.258930"},{"key":"10096_CR4","doi-asserted-by":"crossref","unstructured":"Brito G, Hora A, Valente MT, Robbes R (2016) Do developers deprecate APIs with replacement messages? a large-scale analysis on Java systems. In: SANER, vol 1. IEEE, pp 360\u2013369","DOI":"10.1109\/SANER.2016.99"},{"key":"10096_CR5","doi-asserted-by":"crossref","unstructured":"Brunel J, Doligez D, Hansen RR, Lawall JL, Muller G (2009) A foundation for flow-based program matching: using temporal logic and model checking. In: Principles of Programming Languages (POPL). ACM, pp 114\u2013126","DOI":"10.1145\/1594834.1480897"},{"key":"10096_CR6","doi-asserted-by":"publisher","first-page":"546","DOI":"10.1109\/TSE.2009.70","volume":"36","author":"R Buse","year":"2010","unstructured":"Buse R, Weimer W (2010) Learning a metric for code readability. IEEE Trans Softw Eng 36:546\u2013558","journal-title":"IEEE Trans Softw Eng"},{"key":"10096_CR7","doi-asserted-by":"publisher","first-page":"213","DOI":"10.1037\/h0026256","volume":"70 4","author":"J Cohen","year":"1968","unstructured":"Cohen J (1968) Weighted kappa: nominal scale agreement with provision for scaled disagreement or partial credit. Psychol Bullet 70 4:213\u201320","journal-title":"Psychol Bullet"},{"key":"10096_CR8","doi-asserted-by":"publisher","first-page":"172296","DOI":"10.1109\/ACCESS.2020.3025460","volume":"8","author":"Z Cui","year":"2020","unstructured":"Cui Z, Jia M, Chen X, Zheng L, Liu X (2020) Improving software fault localization by combining spectrum and mutation. IEEE Access 8:172296\u2013172307. https:\/\/doi.org\/10.1109\/ACCESS.2020.3025460","journal-title":"IEEE Access"},{"key":"10096_CR9","doi-asserted-by":"crossref","unstructured":"Fazzini M, Xin Q, Orso A (2019) Automated API-usage update for Android apps. In: ISSTA. ACM, pp 204\u2013215","DOI":"10.1145\/3293882.3330571"},{"key":"10096_CR10","doi-asserted-by":"crossref","unstructured":"Ghandour WJ, Akkary H, Masri W (2010) The potential of using dynamic information flow analysis in data value prediction. In: Proceedings of the 19th International Conference on Parallel Architectures and Compilation Techniques, PACT \u201910. Association for Computing Machinery, New York, pp 431\u2013442","DOI":"10.1145\/1854273.1854327"},{"key":"10096_CR11","doi-asserted-by":"crossref","unstructured":"Gokhale A, Ganapathy V, Padmanaban Y (2013) Inferring likely mappings between APIs. In: Proceedings of the 2013 International Conference on Software Engineering, ICSE \u201913. IEEE Press, pp 82\u201391","DOI":"10.1109\/ICSE.2013.6606554"},{"key":"10096_CR12","doi-asserted-by":"crossref","unstructured":"Gupta R, Benson DA, Fang JZ (1997) Path profile guided partial dead code elimination using predication. In: Proceedings 1997 International Conference on Parallel Architectures and Compilation Techniques, pp 102\u2013113","DOI":"10.1109\/PACT.1997.644007"},{"key":"10096_CR13","doi-asserted-by":"crossref","unstructured":"Han D, Zhang C, Fan X, Hindle A, Wong K, Stroulia E (2012) Understanding Android fragmentation with topic analysis of vendor-specific bugs. In: 2012 19th Working Conference on Reverse Engineering. IEEE, pp 83\u201392","DOI":"10.1109\/WCRE.2012.18"},{"key":"10096_CR14","doi-asserted-by":"crossref","unstructured":"Haryono SA, Thung F, Kang HJ, Serrano L, Muller G, Lawall J, Lo D, Jiang L (2020) Automatic Android deprecated-API usage update by learning from single updated example. In: IEEE International Conference on Program Comprehension","DOI":"10.1145\/3387904.3389285"},{"key":"10096_CR15","doi-asserted-by":"crossref","unstructured":"Hoffmann J, Ussath M, Holz T, Spreitzenbarth M (2013) Slicing droids: Program slicing for Smali code. In: Proceedings of the 28th Annual ACM Symposium on Applied Computing, SAC \u201913. Association for Computing Machinery, New York, pp 1844\u20131851","DOI":"10.1145\/2480362.2480706"},{"key":"10096_CR16","doi-asserted-by":"publisher","unstructured":"Hoffmann J, Ussath M, Holz T, Spreitzenbarth M (2013) Slicing Droids: Program slicing for Smali code. In: Proceedings of the 28th Annual ACM Symposium on Applied Computing, SAC \u201913. https:\/\/doi.org\/10.1145\/2480362.2480706. Association for Computing Machinery, New York, pp 1844\u20131851","DOI":"10.1145\/2480362.2480706"},{"key":"10096_CR17","doi-asserted-by":"crossref","unstructured":"Hora A, Robbes R, Anquetil N, Etien A, Ducasse S, Valente MT (2015) How do developers react to API evolution? The Pharo ecosystem case. In: 2015 IEEE International Conference on Software Maintenance and Evolution (ICSME), pp 251\u2013260","DOI":"10.1109\/ICSM.2015.7332471"},{"key":"10096_CR18","doi-asserted-by":"crossref","unstructured":"Jacobellis J, Meng N, Kim M (2013) LASE: An example-based program transformation tool for locating and applying systematic edits. In: 2013 35th International Conference on Software Engineering (ICSE), pp 1319\u20131322","DOI":"10.1109\/ICSE.2013.6606707"},{"key":"10096_CR19","unstructured":"Kang HJ, Thung F, Lawall J, Muller G, Jiang L, Lo D (2019) Semantic patches for Java program transformation (experience report). In: 33rd European Conference on Object-Oriented Programming (ECOOP 2019). Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik"},{"key":"10096_CR20","volume-title":"Data flow analysis: Theory and practice","author":"U Khedker","year":"2009","unstructured":"Khedker U, Sanyal A, Karkare B (2009) Data flow analysis: Theory and practice, 1st edn. CRC Press, Inc., USA","edition":"1st edn."},{"key":"10096_CR21","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1145\/3345628","volume":"28","author":"Y Kim","year":"2019","unstructured":"Kim Y, Mun S, Yoo S, Kim M (2019) Precise learn-to-rank fault localization using dynamic and static features of target programs. ACM Trans Softw Eng Methodol 28:1\u201334. https:\/\/doi.org\/10.1145\/3345628","journal-title":"ACM Trans Softw Eng Methodol"},{"issue":"1","key":"10096_CR22","doi-asserted-by":"publisher","first-page":"159","DOI":"10.2307\/2529310","volume":"33","author":"JR Landis","year":"1977","unstructured":"Landis JR, Koch GG (1977) The measurement of observer agreement for categorical data. Biometrics 33(1):159\u2013174","journal-title":"Biometrics"},{"key":"10096_CR23","unstructured":"Lawall J, Muller G (2018) Coccinelle: 10 years of automated evolution in the Linux kernel. In: USENIX Annual Technical Conference, pp 601\u2013614"},{"key":"10096_CR24","doi-asserted-by":"crossref","unstructured":"Li J, Wang C, Xiong Y, Hu Z (2015) SWIN: Towards type-safe Java program adaptation between apis, pp 91\u2013102","DOI":"10.1145\/2678015.2682534"},{"key":"10096_CR25","doi-asserted-by":"crossref","unstructured":"Li L, Bissyand\u00e9 TF, Wang H, Klein J (2018) Cid: Automating the detection of API-related compatibility issues in Android apps. In: ISSTA. ACM, pp 153\u2013163","DOI":"10.1145\/3213846.3213857"},{"key":"10096_CR26","doi-asserted-by":"crossref","unstructured":"Li L, Gao J, Bissyand\u00e9 TF, Ma L, Xia X, Klein J (2018) Characterising deprecated Android APIs. In: Proceedings of the 15th International Conference on Mining Software Repositories (MSR). ACM, pp 254\u2013264","DOI":"10.1145\/3196398.3196419"},{"key":"10096_CR27","doi-asserted-by":"crossref","unstructured":"McDonnell T, Ray B, Kim M (2013) An empirical study of API stability and adoption in the Android ecosystem. In: 2013 IEEE International Conference on Software Maintenance. IEEE, pp 70\u201379","DOI":"10.1109\/ICSM.2013.18"},{"key":"10096_CR28","doi-asserted-by":"crossref","unstructured":"Meng N, Kim M, McKinley KS (2013) LASE: Locating and applying systematic edits by learning from examples. In: ICSE. IEEE Press, pp 502\u2013511","DOI":"10.1109\/ICSE.2013.6606596"},{"key":"10096_CR29","doi-asserted-by":"publisher","unstructured":"Mi Q, Keung J, Xiao Y, Mensah S, Gao Y (2018) Improving code readability classification using convolutional neural networks, vol 104. https:\/\/doi.org\/10.1016\/j.infsof.2018.07.006","DOI":"10.1016\/j.infsof.2018.07.006"},{"key":"10096_CR30","doi-asserted-by":"crossref","unstructured":"Padioleau Y, Lawall J, Hansen RR, Muller G (2008) Documenting and automating collateral evolutions in Linux device drivers. In: European Conference on Computer Systems (EuroSys). ACM, pp 247\u2013260","DOI":"10.1145\/1357010.1352618"},{"key":"10096_CR31","doi-asserted-by":"publisher","first-page":"e1845","DOI":"10.1002\/smr.1845","volume":"29","author":"R Pandita","year":"2017","unstructured":"Pandita R, Jetley R, Sudarsan S, Menzies T, Williams L (2017) TMAP: Discovering relevant API methods through text mining of api documentation. J Softw Evol Process 29:e1845. https:\/\/doi.org\/10.1002\/smr.1845","journal-title":"J Softw Evol Process"},{"key":"10096_CR32","doi-asserted-by":"publisher","unstructured":"Posnett D, Hindle A, Devanbu P (2011) A simpler model of software readability, pp 73\u201382. https:\/\/doi.org\/10.1145\/1985441.1985454","DOI":"10.1145\/1985441.1985454"},{"key":"10096_CR33","doi-asserted-by":"crossref","unstructured":"Robbes R, Lungu M, R\u00f6thlisberger D (2012) How do developers react to API deprecation?: the case of a Smalltalk ecosystem. In: FSE. ACM, p 56","DOI":"10.1145\/2393596.2393662"},{"key":"10096_CR34","doi-asserted-by":"crossref","unstructured":"Rolim R, Soares G, D\u2019Antoni L, Polozov O, Gulwani S, Gheyi R, Suzuki R, Hartmann B (2017) Learning syntactic program transformations from examples. In: ICSE. IEEE Press, pp 404\u2013415","DOI":"10.1109\/ICSE.2017.44"},{"issue":"4","key":"10096_CR35","first-page":"2158","volume":"23","author":"AA Sawant","year":"2018","unstructured":"Sawant AA, Robbes R, Bacchelli A (2018) On the reaction to deprecation of clients of 4 + 1 popular Java APIs and the JDK. EMSE 23(4):2158\u20132197","journal-title":"EMSE"},{"key":"10096_CR36","doi-asserted-by":"crossref","unstructured":"Scalabrino S, Bavota G, Vendome C, Linares-V\u00e1squez M, Poshyvanyk D, Oliveto R (2017) Automatically assessing code understandability: How far are we?. In: 2017 32nd IEEE\/ACM International Conference on Automated Software Engineering (ASE), pp 417\u2013427","DOI":"10.1109\/ASE.2017.8115654"},{"key":"10096_CR37","doi-asserted-by":"crossref","unstructured":"Scalabrino S, Linares-V\u00e1squez M, Poshyvanyk D, Oliveto R (2016) Improving code readability models with textual features. In: 2016 IEEE 24th International Conference on Program Comprehension (ICPC), pp 1\u201310","DOI":"10.1109\/ICPC.2016.7503707"},{"key":"10096_CR38","doi-asserted-by":"crossref","unstructured":"Scalabrino S, Linares-V\u00e1squez M, Oliveto R, Poshyvanyk D (2018) A comprehensive model for code readability. J Softw Evol Process 30","DOI":"10.1002\/smr.1958"},{"key":"10096_CR39","doi-asserted-by":"crossref","unstructured":"Thung F, Haryono SA, Serrano L, Muller G, Lawall J, Lo D, Jiang L (2020) Automated deprecated-API usage update for Android apps: How far are we?. In: IEEE International Conference on Software Analysis, Evolution and Reengineering","DOI":"10.1109\/SANER48275.2020.9054860"},{"key":"10096_CR40","doi-asserted-by":"publisher","unstructured":"Strobl R, Tron\u00edc~ek Z (2013) Migration from deprecated API in Java, pp 85\u201386. https:\/\/doi.org\/10.1145\/2508075.2508093","DOI":"10.1145\/2508075.2508093"},{"key":"10096_CR41","doi-asserted-by":"publisher","first-page":"395","DOI":"10.2307\/2982890","volume":"192","author":"G Upton","year":"1992","unstructured":"Upton G (1992) Fisher\u2019s exact test. J R Stat Soc Ser A (Stat Soc) 192:395\u2013402. https:\/\/doi.org\/10.2307\/2982890","journal-title":"J R Stat Soc Ser A (Stat Soc)"},{"key":"10096_CR42","unstructured":"van Bruggen D, Tomassetti F, Howell R, Langkabel M, Smith N, Bosch A, Skoruppa M, Maximilien C, ThLeu, Panayiotis, (@skirsch79) SK, Simon, Beleites J, Tibackx W, LJP, Rou\u00e9l A, edefazio, Schipper D, Mathiponds, you want to know W, Beckett R, ptitjes, kotari4u, Wyrich M, Morais R, bresai, Ty, Lebouc R, Implex1v, Haumacher B (2020) javaparser\/javaparser: Release javaparser- parent-3.15.22"},{"key":"10096_CR43","doi-asserted-by":"crossref","unstructured":"Visser E (2001) Stratego: A language for program transformation based on rewriting strategies. In: Proceedings of the 12th International Conference on Rewriting Techniques and Applications, RTA \u201901. Springer, pp 357\u2013362","DOI":"10.1007\/3-540-45127-7_27"},{"key":"10096_CR44","doi-asserted-by":"crossref","unstructured":"Wei L, Liu Y, Cheung S-C (2016) Taming Android fragmentation: Characterizing and detecting compatibility issues for Android apps. In: ASE. IEEE, pp 226\u2013237","DOI":"10.1145\/2970276.2970312"},{"issue":"4","key":"10096_CR45","doi-asserted-by":"publisher","first-page":"352","DOI":"10.1109\/TSE.1984.5010248","volume":"SE-10","author":"M Weiser","year":"1984","unstructured":"Weiser M (1984) Program slicing. IEEE Trans Softw Eng SE-10(4):352\u2013357","journal-title":"IEEE Trans Softw Eng"},{"key":"10096_CR46","doi-asserted-by":"publisher","unstructured":"Xi Y, Shen L, Gui Y, Zhao W (2019) Migrating deprecated api to documented replacement: Patterns and tool, pp 1\u201310. https:\/\/doi.org\/10.1145\/3361242.3361246","DOI":"10.1145\/3361242.3361246"},{"key":"10096_CR47","doi-asserted-by":"crossref","unstructured":"Yang G, Jones J, Moninger A, Che M (2018) How do Android operating system updates impact apps?. In: Proceedings of the 5th International Conference on Mobile Software Engineering and Systems. ACM, pp 156\u2013160","DOI":"10.1145\/3197231.3197258"},{"key":"10096_CR48","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1109\/TSE.2019.2911283","volume":"PP","author":"M Zhang","year":"2019","unstructured":"Zhang M, Li Y, Li X, Chen L, Zhang Y, Zhang L, Khurshid S (2019) An empirical study of boosting spectrum-based fault localization via pagerank. IEEE Trans Softw Eng PP:1\u20131. https:\/\/doi.org\/10.1109\/TSE.2019.2911283","journal-title":"IEEE Trans Softw Eng"},{"key":"10096_CR49","doi-asserted-by":"crossref","unstructured":"Zhou J, Walker RJ (2016) API deprecation: a retrospective analysis and detection method for code examples on the web. In: ICSE. ACM, pp 266\u2013277","DOI":"10.1145\/2950290.2950298"},{"key":"10096_CR50","doi-asserted-by":"crossref","unstructured":"Zhou X, Lee Y, Zhang N, Naveed M, Wang X (2014) The peril of fragmentation: Security hazards in Android device driver customizations. Proc - IEEE Symp Secur Privacy:409\u2013423","DOI":"10.1109\/SP.2014.33"}],"container-title":["Empirical Software Engineering"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10664-021-10096-0.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1007\/s10664-021-10096-0\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10664-021-10096-0.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,4,23]],"date-time":"2022-04-23T10:16:31Z","timestamp":1650708991000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/s10664-021-10096-0"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2022,3,17]]},"references-count":50,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2022,5]]}},"alternative-id":["10096"],"URL":"https:\/\/doi.org\/10.1007\/s10664-021-10096-0","relation":{},"ISSN":["1382-3256","1573-7616"],"issn-type":[{"value":"1382-3256","type":"print"},{"value":"1573-7616","type":"electronic"}],"subject":[],"published":{"date-parts":[[2022,3,17]]},"assertion":[{"value":"24 November 2021","order":1,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"17 March 2022","order":2,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}}],"article-number":"73"}}