{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,4,30]],"date-time":"2025-04-30T05:09:25Z","timestamp":1745989765106,"version":"3.37.3"},"reference-count":54,"publisher":"Springer Science and Business Media LLC","issue":"1","license":[{"start":{"date-parts":[[2023,12,26]],"date-time":"2023-12-26T00:00:00Z","timestamp":1703548800000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2023,12,26]],"date-time":"2023-12-26T00:00:00Z","timestamp":1703548800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"funder":[{"DOI":"10.13039\/501100001711","name":"Swiss National Science Foundation","doi-asserted-by":"crossref","award":["Hi-Fi | SNSF #200021_182060"],"award-info":[{"award-number":["Hi-Fi | SNSF #200021_182060"]}],"id":[{"id":"10.13039\/501100001711","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Empir Software Eng"],"published-print":{"date-parts":[[2024,1]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>When a method throws an exception\u2014 its <jats:italic>exception precondition<\/jats:italic>\u2014is a crucial element of the method\u2019s documentation that clients should know to properly use it. Unfortunately, exceptional behavior is often poorly documented, and sensitive to changes in a project\u2019s implementation details that can be onerous to keep synchronized with the documentation. We present <jats:sc>wit<\/jats:sc>, an automated technique that extracts the exception preconditions of Java methods and constructors. <jats:sc>wit<\/jats:sc> uses static analysis to analyze the paths in a method\u2019s implementation that lead to throwing an exception. <jats:sc>wit<\/jats:sc>\u2019s analysis is precise, in that it only reports exception preconditions that are correct and correspond to feasible exceptional behavior. It is also lightweight: it only needs the source code of the class (or classes) to be analyzed\u2014 without building or running the whole project. To this end, its design uses heuristics that give up some completeness (<jats:sc>wit<\/jats:sc> cannot infer all exception preconditions) in exchange for precision and ease of applicability. We ran <jats:sc>wit<\/jats:sc> on the JDK and 46 Java projects, where it discovered 30 487 exception preconditions in 24 461 methods, taking less than two seconds per analyzed public method on average. A manual analysis of a significant sample of these exception preconditions confirmed that <jats:sc>wit<\/jats:sc> is 100% precise, and demonstrated that it can document the exceptional behavior of Java methods.<\/jats:p>","DOI":"10.1007\/s10664-023-10392-x","type":"journal-article","created":{"date-parts":[[2023,12,26]],"date-time":"2023-12-26T03:02:06Z","timestamp":1703559726000},"update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":2,"title":["Lightweight precise automatic extraction of exception preconditions in java methods"],"prefix":"10.1007","volume":"29","author":[{"ORCID":"https:\/\/orcid.org\/0009-0002-2187-683X","authenticated-orcid":false,"given":"Diego","family":"Marcilio","sequence":"first","affiliation":[]},{"given":"Carlo A.","family":"Furia","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2023,12,26]]},"reference":[{"key":"10392_CR1","doi-asserted-by":"publisher","unstructured":"Astorga A, Srisakaokul S, Xiao X, Xie T, (2018) PreInfer: Automatic inference of preconditions via symbolic analysis. In 48th annual IEEE, IFIP international conference on dependable systems and networks, DSN, (2018) Luxembourg City, Luxembourg, June 25\u201328, 2018, pp 678\u2013689. IEEE Computer Society. https:\/\/doi.org\/10.1109\/DSN.2018.00074","DOI":"10.1109\/DSN.2018.00074"},{"key":"10392_CR2","volume-title":"Handbook of Satisfiability","author":"C Barrett","year":"2009","unstructured":"Barrett C, Sebastiani R, Seshia S, Tinelli C (2009) Satisfiability modulo theories. In: Biere A, Heule MJH, Van Maaren H, Walsh T (eds) Handbook of Satisfiability. IOS Press"},{"key":"10392_CR3","doi-asserted-by":"publisher","unstructured":"Blasi A, Goffi A, Kuznetsov K, Gorla A, Ernst MD, Pezz\u00e8 M, Castellanos SD, (2018) Translating code comments to procedure specifications. ISSTA, (2018) page 242\u2013253, New York, NY, USA. Association for Computing Machinery. https:\/\/doi.org\/10.1145\/3213846.3213872","DOI":"10.1145\/3213846.3213872"},{"key":"10392_CR4","doi-asserted-by":"publisher","unstructured":"Chandra S, Fink SJ, Sridharan M (2009) Snugglebug: a powerful approach to weakest preconditions. In Michael Hind and Amer Diwan, editors, Proceedings of the 2009 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2009, Dublin, Ireland, June 15-21, 2009, pp 363\u2013374. ACM. https:\/\/doi.org\/10.1145\/1542476.1542517","DOI":"10.1145\/1542476.1542517"},{"key":"10392_CR5","doi-asserted-by":"publisher","unstructured":"Claessen K, Hughes J (2000) QuickCheck: a lightweight tool for random testing of Haskell programs. In Martin Odersky and Philip Wadler, editors, Proceedings of the Fifth ACM SIGPLAN International Conference on Functional Programming (ICFP \u201900), Montreal, Canada, September 18-21, 2000, pp 268\u2013279. ACM. https:\/\/doi.org\/10.1145\/351240.351266","DOI":"10.1145\/351240.351266"},{"key":"10392_CR6","doi-asserted-by":"crossref","unstructured":"Cousot P, Cousot R (1977) Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In proceedings of the 4th annual ACM symposium on principles of programming languages (POPL\u201978), pp 238\u2013252","DOI":"10.1145\/512950.512973"},{"key":"10392_CR7","doi-asserted-by":"publisher","unstructured":"Cousot P, Cousot R, F\u00e4hndrich M, Logozzo F (2013) Automatic inference of necessary preconditions. In Roberto Giacobazzi, Josh Berdine, and Isabella Mastroeni, editors, Verification, Model Checking, and Abstract Interpretation, 14th International Conference, VMCAI 2013, Rome, Italy, January 20-22, 2013. Proceedings, volume 7737 of Lecture Notes in Computer Science, Springer, pp 128\u2013148. https:\/\/doi.org\/10.1007\/978-3-642-35873-9_10","DOI":"10.1007\/978-3-642-35873-9_10"},{"key":"10392_CR8","doi-asserted-by":"crossref","unstructured":"Cousot P, Halbwachs N (1978) Automatic discovery of linear restraints among variables of a program. In POPL, pp 84\u201396","DOI":"10.1145\/512760.512770"},{"key":"10392_CR9","doi-asserted-by":"crossref","unstructured":"Csallner C, Smaragdakis Y (2006) Dynamically discovering likely interface invariants. In ICSE, pp 861\u2013864","DOI":"10.1145\/1134285.1134435"},{"key":"10392_CR10","doi-asserted-by":"crossref","unstructured":"Csallner C, Tillmann N, Smaragdakis Y (2008) DySy: Dynamic symbolic execution for invariant inference. In ICSE, pp 281\u2013290","DOI":"10.1145\/1368088.1368127"},{"key":"10392_CR11","unstructured":"Daniel WW (1999) Biostatistics: A Foundation for Analysis in the Health Sciences. Wiley, 7 edition"},{"issue":"2","key":"10392_CR12","doi-asserted-by":"publisher","first-page":"99","DOI":"10.1109\/32.908957","volume":"27","author":"MD Ernst","year":"2001","unstructured":"Ernst MD, Cockrell J, Griswold WG, Notkin D (2001) Dynamically discovering likely program invariants to support program evolution. IEEE Trans Software Eng 27(2):99\u2013123","journal-title":"IEEE Trans Software Eng"},{"key":"10392_CR13","doi-asserted-by":"publisher","unstructured":"Forward A, Lethbridge T (2002) The relevance of software documentation, tools and technologies: a survey. In Proceedings of the 2002 ACM symposium on document engineering, McLean, Virginia, USA, November 8-9, 2002, pp 26\u201333. ACM. https:\/\/doi.org\/10.1145\/585058.585065","DOI":"10.1145\/585058.585065"},{"issue":"3","key":"10392_CR14","doi-asserted-by":"publisher","first-page":"611","DOI":"10.1007\/s10664-013-9288-2","volume":"20","author":"G Fraser","year":"2015","unstructured":"Fraser G, Arcuri A (2015) 1600 faults in 100 projects: automatically finding faults while achieving high coverage with EvoSuite. Empir Softw Eng 20(3):611\u2013639. https:\/\/doi.org\/10.1007\/s10664-013-9288-2","journal-title":"Empir Softw Eng"},{"key":"10392_CR15","doi-asserted-by":"publisher","unstructured":"Goffi A, Gorla A, Ernst MD, Pezz\u00e8 M (2016) Automatic generation of oracles for exceptional behaviors. In Proceedings of the 25th international symposium on software testing and analysis, ISSTA 2016, page 213-224, New York, NY, USA, Association for Computing Machinery. https:\/\/doi.org\/10.1145\/2931037.2931061","DOI":"10.1145\/2931037.2931061"},{"key":"10392_CR16","doi-asserted-by":"publisher","unstructured":"Hassan F, Mostafa S, Lam ESL, Wang X (2017) Automatic building of java projects in software repositories: A study on feasibility and challenges. In 2017 ACM\/IEEE International symposium on empirical software engineering and measurement (ESEM), pp 38\u201347. https:\/\/doi.org\/10.1109\/ESEM.2017.11","DOI":"10.1109\/ESEM.2017.11"},{"key":"10392_CR17","doi-asserted-by":"crossref","unstructured":"Hu X, Li G, Xia X, Lo D, Jin Z (2018) Deep code comment generation. In 2018 IEEE\/ACM 26th international conference on program comprehension (ICPC), pp 200\u201320010","DOI":"10.1145\/3196321.3196334"},{"key":"10392_CR18","doi-asserted-by":"publisher","unstructured":"Kechagia M, Devroey X, Panichella A, Gousios G, Van Deursen A (2019) Effective and efficient api misuse detection via exception propagation and search-based testing. In Proceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis, ISSTA 2019, New York, NY, USA, pp 192-203, Association for Computing Machinery. https:\/\/doi.org\/10.1145\/3293882.3330552","DOI":"10.1145\/3293882.3330552"},{"key":"10392_CR19","doi-asserted-by":"publisher","unstructured":"Kechagia M, Mechtaev S, Sarro F, Harman M (2021) Evaluating automatic program repair capabilities to repair api misuses. IEEE Trans Softw Eng (01):1\u20131, mar 5555. https:\/\/doi.org\/10.1109\/TSE.2021.3067156","DOI":"10.1109\/TSE.2021.3067156"},{"key":"10392_CR20","doi-asserted-by":"crossref","unstructured":"Kuzmina N, Paul J, Gamboa R, Caldwell J (2008) Extending dynamic constraint detection with disjunctive constraints. In WODA, pp 57\u201363","DOI":"10.1145\/1401827.1401839"},{"key":"10392_CR21","doi-asserted-by":"crossref","unstructured":"Le Goues C, Weimer W (2009) Specification mining with few false positives. In international conference on tools and algorithms for the construction and analysis of systems, Springer, pp 292\u2013306","DOI":"10.1007\/978-3-642-00768-2_26"},{"key":"10392_CR22","doi-asserted-by":"publisher","unstructured":"Liskov BH, Wing JM (1994) A behavioral notion of subtyping. ACM Trans Program Lang Syst 16(6):1811\u20131841. https:\/\/doi.org\/10.1145\/197320.197383","DOI":"10.1145\/197320.197383"},{"key":"10392_CR23","doi-asserted-by":"crossref","unstructured":"Logozzo F (2004) Automatic inference of class invariants. In VMCAI, volume 2937 of LNCS, Springer, pp 211\u2013222","DOI":"10.1007\/978-3-540-24622-0_18"},{"key":"10392_CR24","doi-asserted-by":"publisher","unstructured":"Marcilio D, Furia CA (2021) How Java programmers test exceptional behavior. In 18th IEEE\/ACM International Conference on Mining Software Repositories, MSR 2021, Madrid, Spain, May 17-19, 2021, pp 207\u2013218. IEEE. https:\/\/doi.org\/10.1109\/MSR52588.2021.00033","DOI":"10.1109\/MSR52588.2021.00033"},{"key":"10392_CR25","doi-asserted-by":"publisher","unstructured":"Marcilio D, Furia CA (2022) What is thrown? lightweight precise automatic extraction of exception preconditions in java methods. In IEEE International Conference on Software Maintenance and Evolution, ICSME 2022, Limassol, Cyprus, October 3-7, 2022, pp 340-351. IEEE. https:\/\/doi.org\/10.1109\/ICSME55016.2022.00038","DOI":"10.1109\/ICSME55016.2022.00038"},{"key":"10392_CR26","doi-asserted-by":"publisher","unstructured":"Mendon\u00e7a de Moura L, Bj\u00f8rner N (2008) Z3: an efficient SMT solver. In C. R. Ramakrishnan and Jakob Rehof, editors, Tools and Algorithms for the Construction and Analysis of Systems, 14th International Conference, TACAS 2008, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2008, Budapest, Hungary, March 29-April 6, 2008. Proceedings, volume 4963 of Lecture Notes in Computer Science, Springer, pp 337\u2013340. https:\/\/doi.org\/10.1007\/978-3-540-78800-3_24","DOI":"10.1007\/978-3-540-78800-3_24"},{"key":"10392_CR27","doi-asserted-by":"publisher","DOI":"10.7717\/peerj-cs.103","volume":"3","author":"A Meurer","year":"2017","unstructured":"Meurer A, Smith CP, Paprocki M, \u010cert\u00edk O, Kirpichev SB, Rocklin M, Kumar A, Ivanov S, Moore JK, Singh S, Rathnayake T, Vig S, Granger BE, Muller RP, Bonazzi F, Gupta H, Vats S, Johansson F, Pedregosa F, Curry MJ, Terrel AR, Rou\u010dka S, Saboo A, Fernando I, Kulal S, Cimrman R, Scopatz A (2017) Sympy: symbolic computing in python. PeerJ Comput Sci 3:e103. https:\/\/doi.org\/10.7717\/peerj-cs.103","journal-title":"PeerJ Comput Sci"},{"key":"10392_CR28","unstructured":"Meyer B (1997) Object-oriented software construction. Prentice Hall, 2nd edition"},{"key":"10392_CR29","doi-asserted-by":"publisher","unstructured":"Nassif M, Hernandez A, Sridharan A, Robillard MP (2021) Generating unit tests for documentation. IEEE Trans Softw Eng 1\u20131. https:\/\/doi.org\/10.1109\/TSE.2021.3087087","DOI":"10.1109\/TSE.2021.3087087"},{"key":"10392_CR30","doi-asserted-by":"publisher","unstructured":"Nguyen HA, Dyer R, Nguyen TN, Rajan H, (2014) Mining preconditions of apis in large-scale code corpus. FSE, (2014) page 166\u2013177, New York, NY, USA. Association for Computing Machinery. https:\/\/doi.org\/10.1145\/2635868.2635924","DOI":"10.1145\/2635868.2635924"},{"key":"10392_CR31","doi-asserted-by":"publisher","unstructured":"Nguyen T, Kapur D, Weimer W, Forrest S (2014) DIG: A dynamic invariant generator for polynomial and array invariants. ACM Trans Softw Eng Methodol 23(4):30:1\u201330:30. https:\/\/doi.org\/10.1145\/2556782","DOI":"10.1145\/2556782"},{"key":"10392_CR32","doi-asserted-by":"publisher","unstructured":"Pandita R, Xusheng Xiao, Hao Zhong, Tao Xie, Stephen Oney, and Amit Paradkar. Inferring method specifications from natural language api descriptions. In 2012 34th international conference on software engineering (ICSE), pages 815\u2013825. https:\/\/doi.org\/10.1109\/ICSE.2012.6227137","DOI":"10.1109\/ICSE.2012.6227137"},{"key":"10392_CR33","doi-asserted-by":"publisher","unstructured":"Phan H, Nguyen HA, Nguyen TN, Rajan H (2017) Statistical learning for inference between implementations and documentation. In 39th IEEE\/ACM international conference on software engineering: new ideas and emerging technologies results track, ICSE-NIER 2017, Buenos Aires, Argentina, May 20-28, 2017, pages 27\u201330. IEEE Computer Society. https:\/\/doi.org\/10.1109\/ICSE-NIER.2017.9","DOI":"10.1109\/ICSE-NIER.2017.9"},{"key":"10392_CR34","doi-asserted-by":"publisher","unstructured":"Ramanathan MK, Grama A, Jagannathan S (2007) Path-sensitive inference of function precedence protocols. In proceedings of the 29th international conference on software engineering, ICSE \u201907, page 240\u2013250, USA. IEEE Computer Society. https:\/\/doi.org\/10.1109\/ICSE.2007.63","DOI":"10.1109\/ICSE.2007.63"},{"key":"10392_CR35","doi-asserted-by":"publisher","unstructured":"Ramanathan MK, Grama A, Jagannathan S (2007) Static specification inference using predicate mining. In Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI \u201907, page 123\u2013134, New York, NY, USA. Association for Computing Machinery. https:\/\/doi.org\/10.1145\/1250734.1250749","DOI":"10.1145\/1250734.1250749"},{"key":"10392_CR36","doi-asserted-by":"publisher","unstructured":"Raymond PL Buse and Weimer W (2008) Automatic documentation inference for exceptions. In Barbara G. Ryder and Andreas Zeller, editors, Proceedings of the ACM\/SIGSOFT International Symposium on Software Testing and Analysis, ISSTA 2008, Seattle, WA, USA, July 20-24, 2008, pp 273\u2013282. ACM. https:\/\/doi.org\/10.1145\/1390630.1390664","DOI":"10.1145\/1390630.1390664"},{"issue":"2","key":"10392_CR37","doi-asserted-by":"publisher","first-page":"191","DOI":"10.1145\/941566.941569","volume":"12","author":"MP Robillard","year":"2003","unstructured":"Robillard MP, Murphy GC (2003) Static analysis to support the evolution of exception structure in object-oriented systems. 12(2):191\u2013221. https:\/\/doi.org\/10.1145\/941566.941569","journal-title":"Static analysis to support the evolution of exception structure in object-oriented systems."},{"issue":"5","key":"10392_CR38","doi-asserted-by":"publisher","first-page":"613","DOI":"10.1109\/TSE.2012.63","volume":"39","author":"MP Robillard","year":"2013","unstructured":"Robillard MP, Bodden E, Kawrykow D, Mezini M, Ratchford T (2013) Automated api property inference techniques. IEEE Trans Softw Eng 39(5):613\u2013637. https:\/\/doi.org\/10.1109\/TSE.2012.63","journal-title":"IEEE Trans Softw Eng"},{"key":"10392_CR39","doi-asserted-by":"publisher","unstructured":"Seghir NM, Schrammel P (2014) Necessary and sufficient preconditions via eager abstraction. In Jacques Garrigue, editor, Programming Languages and Systems - 12th Asian Symposium, APLAS 2014, Singapore, November 17-19, 2014, Proceedings, volume 8858 of Lecture Notes in Computer Science, pages 236-254. Springer. https:\/\/doi.org\/10.1007\/978-3-319-12736-1_13","DOI":"10.1007\/978-3-319-12736-1_13"},{"key":"10392_CR40","doi-asserted-by":"publisher","unstructured":"Shoham S, Yahav E, Fink S, Pistoia M (2007) Static specification mining using automata-based abstractions. In Proceedings of the 2007 International Symposium on Software Testing and Analysis, ISSTA \u201907, page 174-184, New York, NY, USA, 2007. Association for Computing Machinery. https:\/\/doi.org\/10.1145\/1273463.1273487","DOI":"10.1145\/1273463.1273487"},{"key":"10392_CR41","doi-asserted-by":"publisher","unstructured":"Tan SH, Marinov D, Tan L, Leavens GT (2012) @tcomment: Testing javadoc comments to detect comment-code inconsistencies. In 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation, pages 260\u2013269. https:\/\/doi.org\/10.1109\/ICST.2012.106","DOI":"10.1109\/ICST.2012.106"},{"key":"10392_CR42","doi-asserted-by":"publisher","unstructured":"Thummalapenta S, Xie T (2009) Alattin: Mining alternative patterns for detecting neglected conditions. In 2009 IEEE\/ACM international conference on automated software engineering, pages 283\u2013294. https:\/\/doi.org\/10.1109\/ASE.2009.72","DOI":"10.1109\/ASE.2009.72"},{"key":"10392_CR43","doi-asserted-by":"crossref","unstructured":"Tillmann N, Chen F, Schulte W (2006) Discovering likely method specifications. In ICFEM, volume 4260 of LNCS, pages 717\u2013736. Springer","DOI":"10.1007\/11901433_39"},{"key":"10392_CR44","doi-asserted-by":"crossref","unstructured":"Tschannen J, Furia CA, Nordio M, Meyer B (2014) Program checking with less hassle. In Proceedings of the 5th Working Conference on Verified Software: Theories, Tools and Experiments (VSTTE 2013), volume 8164 of Lecture Notes in Computer Science, pages 149\u2013169. Springer","DOI":"10.1007\/978-3-642-54108-7_8"},{"key":"10392_CR45","doi-asserted-by":"publisher","unstructured":"Wang C, Peng X, Liu M, Xing Z, Bai X, Xie B, Wang T (2019) A learning-based approach for automatic construction of domain glossary from source code and documentation. In Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ESEC\/FSE 2019, page 97\u2013108, New York, NY, USA. Association for Computing Machinery. https:\/\/doi.org\/10.1145\/3338906.3338963","DOI":"10.1145\/3338906.3338963"},{"key":"10392_CR46","doi-asserted-by":"publisher","unstructured":"Wasylkowski A, Zeller A (2009) Mining temporal specifications from object usage. In Proceedings of the 2009 IEEE\/ACM International Conference on Automated Software Engineering, ASE \u201909, page 295\u2013306, USA. IEEE Computer Society. https:\/\/doi.org\/10.1109\/ASE.2009.30","DOI":"10.1109\/ASE.2009.30"},{"key":"10392_CR47","doi-asserted-by":"crossref","unstructured":"Wei Y, Furia CA, Kazmin N, Meyer B (2011) Inferring better contracts. In Richard N. Taylor, Harald Gall, and Nenad Medvidovi\u0107, editors, proceedings of the 33rd international conference on software engineering (ICSE\u201911), pages 191\u2013200. ACM","DOI":"10.1145\/1985793.1985820"},{"key":"10392_CR48","doi-asserted-by":"publisher","unstructured":"Weimer W, Necula GC (2004) Finding and preventing run-time error handling mistakes. In John M. Vlissides and Douglas C. Schmidt, editors, Proceedings of the 19th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2004, October 24-28, 2004, Vancouver, BC, Canada, pp 419\u2013431. ACM.https:\/\/doi.org\/10.1145\/1028976.1029011","DOI":"10.1145\/1028976.1029011"},{"key":"10392_CR49","doi-asserted-by":"publisher","unstructured":"Wen M, Liu Y, Wu R, Xie X, Cheung S-C, Su Z (2019) Exposing library api misuses via mutation analysis. In 2019 IEEE\/ACM 41st international conference on software engineering (ICSE), pages 866\u2013877. https:\/\/doi.org\/10.1109\/ICSE.2019.00093","DOI":"10.1109\/ICSE.2019.00093"},{"key":"10392_CR50","doi-asserted-by":"publisher","unstructured":"Zeng H, Chen J, Shen B, Zhong H (2021) Mining api constraints from library and client to detect api misuses. In 2021 28th asia-pacific software engineering conference (APSEC), pages 161\u2013170. https:\/\/doi.org\/10.1109\/APSEC53868.2021.00024","DOI":"10.1109\/APSEC53868.2021.00024"},{"key":"10392_CR51","doi-asserted-by":"publisher","unstructured":"Zhang C, Yang J, Zhang Y, Fan J, Zhang X, Zhao J, Ou P (2012) Automatic parameter recommendation for practical api usage. In 2012 34th international conference on software engineering (ICSE), pages 826\u2013836. https:\/\/doi.org\/10.1109\/ICSE.2012.6227136","DOI":"10.1109\/ICSE.2012.6227136"},{"issue":"10","key":"10392_CR52","doi-asserted-by":"publisher","first-page":"803","DOI":"10.1145\/2544173.2509523","volume":"48","author":"H Zhong","year":"2013","unstructured":"Zhong H, Su Z (2013) Detecting api documentation errors. 48(10):803\u2013816. https:\/\/doi.org\/10.1145\/2544173.2509523","journal-title":"Detecting api documentation errors."},{"key":"10392_CR53","doi-asserted-by":"publisher","unstructured":"Zhong H, Meng N, Li Z, Jia L (2020) An empirical study on api parameter rules. In proceedings of the ACM\/IEEE 42nd international conference on software engineering, ICSE \u201920, page 899-911, New York, NY, USA, 2020. Association for Computing Machinery. https:\/\/doi.org\/10.1145\/3377811.3380922","DOI":"10.1145\/3377811.3380922"},{"key":"10392_CR54","doi-asserted-by":"publisher","unstructured":"Zhou Y, Wang C, Yan X, Chen T, Panichella S, Gall H (2020) Automatic detection and repair recommendation of directive defects in java api documentation. IEEE Trans Softw Eng 46(9):1004\u20131023. https:\/\/doi.org\/10.1109\/TSE.2018.2872971","DOI":"10.1109\/TSE.2018.2872971"}],"container-title":["Empirical Software Engineering"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10664-023-10392-x.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1007\/s10664-023-10392-x\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10664-023-10392-x.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2024,1,20]],"date-time":"2024-01-20T03:16:56Z","timestamp":1705720616000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/s10664-023-10392-x"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,12,26]]},"references-count":54,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2024,1]]}},"alternative-id":["10392"],"URL":"https:\/\/doi.org\/10.1007\/s10664-023-10392-x","relation":{},"ISSN":["1382-3256","1573-7616"],"issn-type":[{"type":"print","value":"1382-3256"},{"type":"electronic","value":"1573-7616"}],"subject":[],"published":{"date-parts":[[2023,12,26]]},"assertion":[{"value":"11 September 2023","order":1,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"26 December 2023","order":2,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}},{"order":1,"name":"Ethics","group":{"name":"EthicsHeading","label":"Declarations"}},{"value":"The authors declared that they have no conflict of interest.","order":2,"name":"Ethics","group":{"name":"EthicsHeading","label":"Conflict of Interest"}}],"article-number":"30"}}