{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,7,1]],"date-time":"2026-07-01T03:10:36Z","timestamp":1782875436320,"version":"3.54.5"},"reference-count":93,"publisher":"Springer Science and Business Media LLC","issue":"2","license":[{"start":{"date-parts":[[2021,8,17]],"date-time":"2021-08-17T00:00:00Z","timestamp":1629158400000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2021,8,17]],"date-time":"2021-08-17T00:00:00Z","timestamp":1629158400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"funder":[{"DOI":"10.13039\/501100012320","name":"Otto-von-Guericke-Universit\u00e4t Magdeburg","doi-asserted-by":"crossref","id":[{"id":"10.13039\/501100012320","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Autom Softw Eng"],"published-print":{"date-parts":[[2021,11]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Lack of experience, inadequate documentation, and sub-optimal API design frequently cause developers to make mistakes when re-using third-party implementations. Such <jats:italic>API misuses<\/jats:italic> can result in unintended behavior, performance losses, or software crashes. Therefore, current research aims to automatically detect such misuses by comparing the way a developer used an API to previously inferred patterns of the correct API usage. While research has made significant progress, these techniques have not yet been adopted in practice. In part, this is due to the lack of a process capable of seamlessly integrating with software development processes. Particularly, existing approaches do not consider how to collect relevant source code samples from which to infer patterns. In fact, an inadequate collection can cause API usage pattern miners to infer irrelevant patterns which leads to false alarms instead of finding true API misuses. In this paper, we target this problem (a) by providing a method that increases the likelihood of finding relevant and true-positive patterns concerning a given set of code changes and agnostic to a concrete static, intra-procedural mining technique and (b) by introducing a concept for just-in-time API misuse detection which analyzes changes at the time of commit. Particularly, we introduce different, lightweight code search and filtering strategies and evaluate them on two real-world API misuse datasets to determine their usefulness in finding relevant intra-procedural API usage patterns. Our main results are (1) commit-based search with subsequent filtering effectively decreases the amount of code to be analyzed, (2) in particular method-level filtering is superior to file-level filtering, (3) project-internal and project-external code search find solutions for different types of misuses and thus are complementary, (4) incorporating prior knowledge of the misused API into the search has a negligible effect.<\/jats:p>","DOI":"10.1007\/s10515-021-00294-x","type":"journal-article","created":{"date-parts":[[2021,8,17]],"date-time":"2021-08-17T10:03:01Z","timestamp":1629194581000},"update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":15,"title":["Guided pattern mining for API misuse detection by change-based code analysis"],"prefix":"10.1007","volume":"28","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-0147-3526","authenticated-orcid":false,"given":"Sebastian","family":"Nielebock","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-9906-0323","authenticated-orcid":false,"given":"Robert","family":"Heum\u00fcller","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Kevin Michael","family":"Schott","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-6186-4142","authenticated-orcid":false,"given":"Frank","family":"Ortmeier","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"297","published-online":{"date-parts":[[2021,8,17]]},"reference":[{"key":"294_CR1","doi-asserted-by":"publisher","unstructured":"Agrawal, A., Menzies, T.: Is \u201dBetter Data\u201d Better Than \u201dBetter Data Miners\u201d?: On the Benefits of Tuning SMOTE for Defect Prediction. In: Proceedings of the 40th International Conference on Software Engineering (ICSE), ACM, New York, NY, USA, pp. 1050\u20131061 (2018). https:\/\/doi.org\/10.1145\/3180155.3180197","DOI":"10.1145\/3180155.3180197"},{"issue":"2","key":"294_CR2","doi-asserted-by":"publisher","first-page":"207","DOI":"10.1145\/170036.170072","volume":"22","author":"R Agrawal","year":"1993","unstructured":"Agrawal, R., Imieli\u0144ski, T., Swami, A.: Mining association rules between sets of items in large databases. SIGMOD Rec. 22(2), 207\u2013216 (1993). https:\/\/doi.org\/10.1145\/170036.170072","journal-title":"SIGMOD Rec."},{"key":"294_CR3","doi-asserted-by":"publisher","unstructured":"Allamanis, M., Sutton, C.: Mining Idioms from Source Code. In: Proceedings of the 22nd International Symposium on the Foundation of Software Engineering (FSE), ACM, New York, NY, USA, pp. 472\u2013483 (2014). https:\/\/doi.org\/10.1145\/2635868.2635901","DOI":"10.1145\/2635868.2635901"},{"key":"294_CR4","unstructured":"Amann, S.: A Systematic Approach to Benchmark and Improve Automated Static Detection of Java-API Misuses. PhD thesis, Technische Universit\u00e4t Darmstadt (2018). URL http:\/\/tubiblio.ulb.tu-darmstadt.de\/106302\/"},{"key":"294_CR5","doi-asserted-by":"publisher","unstructured":"Amann, S., Nadi, S., Nguyen, H.A., Nguyen, T.N., Mezini, M.: MUBench: A Benchmark for API-misuse Detectors. In: Proceedings of the 13th International Working in Mining Software Repositories (MSR), ACM, New York, NY, USA, pp. 464\u2013467 (2016). https:\/\/doi.org\/10.1145\/2901739.2903506","DOI":"10.1145\/2901739.2903506"},{"key":"294_CR6","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2018.2827384","author":"S Amann","year":"2018","unstructured":"Amann, S., Nguyen, H.A., Nadi, S., Nguyen, T.N., Mezini, M.: A systematic evaluation of static API-misuse detectors. IEEE Trans. Softw. Eng. (2018). https:\/\/doi.org\/10.1109\/TSE.2018.2827384","journal-title":"IEEE Trans. Softw. Eng."},{"key":"294_CR7","doi-asserted-by":"publisher","unstructured":"Amann, S., Nguyen, H.A., Nadi, S., Nguyen, T.N., Mezini, M.: Investigating Next Steps in Static API-Misuse Detection. In: Proceedings of the 16th International Working on Mining Software Repositories (MSR), IEEE Press, pp. 265-275 (2019). https:\/\/doi.org\/10.1109\/MSR.2019.00053","DOI":"10.1109\/MSR.2019.00053"},{"key":"294_CR8","doi-asserted-by":"publisher","unstructured":"Ammons, G., Bod\u00edk, R., Larus, J.R.: Mining specifications. In: Proceedings of the 29th Symposium Principles of Programming Language (POPL), ACM, New York, NY, USA, pp. 4\u201316 (2002). https:\/\/doi.org\/10.1145\/503272.503275","DOI":"10.1145\/503272.503275"},{"key":"294_CR9","doi-asserted-by":"publisher","unstructured":"An, L., Khomh, F.: An Empirical Study of Crash-inducing Commits in Mozilla Firefox. In: Proceedings of the 11th International Conference on Predictive Models in Software Engineering (Promise), ACM, New York, NY, USA, pp. 5:1\u20135:10 (2015). https:\/\/doi.org\/10.1145\/2810146.2810152","DOI":"10.1145\/2810146.2810152"},{"key":"294_CR10","doi-asserted-by":"publisher","unstructured":"Asyrofi, M.H., Thung, F., Lo, D., Jiang, L.: AUSearch: Accurate API Usage Search in GitHub Repositories with Type Resolution. In: Proceeding 27th International Conference on Software Analytic Evolution, Reeng. (SANER), pp. 637\u2013641 (2020). https:\/\/doi.org\/10.1109\/SANER48275.2020.9054809","DOI":"10.1109\/SANER48275.2020.9054809"},{"key":"294_CR11","doi-asserted-by":"publisher","unstructured":"Chan, W.K., Cheng, H., Lo, D.: Searching Connected API Subgraph via Text Phrases. In: Proceedings 20th International Symposium Found Software Engineering (FSE), ACM, p. 10 (2012), https:\/\/doi.org\/10.1145\/2393596.2393606","DOI":"10.1145\/2393596.2393606"},{"key":"294_CR12","doi-asserted-by":"publisher","unstructured":"Chen, C., Xing, Z., Liu, Y., Ong, K.L.X.: Mining Likely Analogical APIs across Third-Party Libraries via Large-Scale Unsupervised API Semantics Embedding. IEEE Transactions Software Engineering, pp. 1\u20131 (2019). https:\/\/doi.org\/10.1109\/TSE.2019.2896123","DOI":"10.1109\/TSE.2019.2896123"},{"issue":"1","key":"294_CR13","doi-asserted-by":"publisher","first-page":"37","DOI":"10.1177\/001316446002000104","volume":"20","author":"J Cohen","year":"1960","unstructured":"Cohen, J.: A coefficient of agreement for nominal scales. Educ. Psychol. Meas. 20(1), 37\u201346 (1960). https:\/\/doi.org\/10.1177\/001316446002000104","journal-title":"Educ and Psychol Meas"},{"key":"294_CR14","doi-asserted-by":"publisher","unstructured":"Dyer, R., Nguyen, H.A., Rajan, H., Nguyen, T.N.: Boa: A Language and Infrastructure for Analyzing Ultra-large-scale Software Repositories. In: Proceedings 35th International Conference Software Engineering (ICSE), IEEE Press, Piscataway, NJ, USA, pp. 422\u2013431 (2013). https:\/\/doi.org\/10.1109\/ICSE.2013.6606588","DOI":"10.1109\/ICSE.2013.6606588"},{"issue":"2","key":"294_CR15","doi-asserted-by":"publisher","first-page":"99","DOI":"10.1109\/32.908957","volume":"27","author":"MD Ernst","year":"2001","unstructured":"Ernst, M.D., Cockrell, J., Griswold, W.G., Notkin, D.: Dynamically discovering likely program invariants to support program evolution. IEEE Trans. Softw. Eng. 27(2), 99\u2013123 (2001). https:\/\/doi.org\/10.1109\/32.908957","journal-title":"IEEE Trans Softw Eng"},{"key":"294_CR16","doi-asserted-by":"publisher","unstructured":"Ernst, M.D., Perkins, J.H., Guo, P.J., McCamant, S., Pacheco, C., Tschantz, M.S., Xiao, C.: The daikon system for dynamic detection of likely invariants. Sci. Comput. Progr. 69(1), 35\u201345 (2007). https:\/\/doi.org\/10.1016\/j.scico.2007.01.015, Special Issue on Experimental Software and Toolkits","DOI":"10.1016\/j.scico.2007.01.015"},{"key":"294_CR17","doi-asserted-by":"publisher","unstructured":"Frolin S\u00a0Ocariza, J., Bajaj, K., Pattabiraman, K., Mesbah, A.: An Empirical Study of Client-Side JavaScript Bugs. In: Proceeding 7th International Symposium on Empirical Software Engineering and Measurement (ESEM), pp. 55\u201364 (2013). https:\/\/doi.org\/10.1109\/ESEM.2013.18","DOI":"10.1109\/ESEM.2013.18"},{"key":"294_CR18","doi-asserted-by":"publisher","unstructured":"Gabel, M., Su, Z.: Javert: Fully Automatic Mining of General Temporal Properties from Dynamic Traces. In: Proceedings 16th International Symposium Found Software Engineering (FSE), ACM, pp. 339\u2013349 (2008). https:\/\/doi.org\/10.1145\/1453101.1453150","DOI":"10.1145\/1453101.1453150"},{"key":"294_CR19","doi-asserted-by":"publisher","unstructured":"Gallardo-Valencia, R.E., Sim, S.E.: Internet-Scale Code Search. In: Proceedings 1st Work. Search-Driven Dev.-Users, Infrastruct., Tools Evaluation (SUITE), IEEE, pp. 49\u201352 (2009). https:\/\/doi.org\/10.1109\/SUITE.2009.5070022","DOI":"10.1109\/SUITE.2009.5070022"},{"key":"294_CR20","doi-asserted-by":"publisher","unstructured":"Gousios, G.: The GHTorrent Dataset and Tool Suite. In: Proceedings 10th International Work Min Software Repository (MSR), pp. 233\u2013236 (2013). https:\/\/doi.org\/10.1109\/MSR.2013.6624034","DOI":"10.1109\/MSR.2013.6624034"},{"key":"294_CR21","doi-asserted-by":"publisher","unstructured":"Gu, X., Zhang, H., Kim, S. :Deep Code Search. In: Proceeding 40th International Conference Software Engineering (ICSE), IEEE, pp. 933\u2013944 (2018). https:\/\/doi.org\/10.1145\/3180155.3180167","DOI":"10.1145\/3180155.3180167"},{"key":"294_CR22","doi-asserted-by":"publisher","unstructured":"Guo, Z., Li, Y., Ma, W., Zhou, Y., Lu, H., Chen, L., Xu, B.: Boosting crash-inducing change localization with rank-performance-based feature subset selection. Empir. Softw. Eng. pp. 1\u201346 (2020). https:\/\/doi.org\/10.1007\/s10664-020-09802-1","DOI":"10.1007\/s10664-020-09802-1"},{"key":"294_CR23","doi-asserted-by":"publisher","unstructured":"Holmes, R., Murphy, G.C.: Using Structural Context to Recommend Source Code Examples. In: Proceedings 27th International Conference Software Engineering (ICSE), ACM, New York, NY, USA, pp. 117\u2013125 (2005). https:\/\/doi.org\/10.1145\/1062455.1062491","DOI":"10.1145\/1062455.1062491"},{"key":"294_CR24","doi-asserted-by":"publisher","unstructured":"Hou, D., Li, L.: Obstacles in Using Frameworks and APIs: An Exploratory Study of Programmers\u2019 Newsgroup Discussions. In: Proceedings 19th International Conference Program Comprehension. (ICPC), IEEE, pp. 91\u2013100 (2011). https:\/\/doi.org\/10.1109\/ICPC.2011.21","DOI":"10.1109\/ICPC.2011.21"},{"key":"294_CR25","doi-asserted-by":"publisher","unstructured":"Huang, Q., Xia, X., Xing, Z., Lo, D., Wang, X.: API Method Recommendation without Worrying about the Task-API Knowledge Gap. In: Proceedings 33rd International Conference Automatic Software Engineering (ASE), ACM, New York, NY, USA, pp. 293-304 (2018). https:\/\/doi.org\/10.1145\/3238147.3238191","DOI":"10.1145\/3238147.3238191"},{"key":"294_CR26","doi-asserted-by":"publisher","unstructured":"Jiang, L., Misherghi, G., Su, Z., Glondu, S.: DECKARD: Scalable and Accurate Tree-Based Detection of Code Clones. In: Proceedings 29th International Conference Software Engineering (ICSE), IEEE Computer Society, pp. 96\u2013105 (2007). https:\/\/doi.org\/10.1109\/ICSE.2007.30","DOI":"10.1109\/ICSE.2007.30"},{"issue":"6","key":"294_CR27","doi-asserted-by":"publisher","first-page":"757","DOI":"10.1109\/TSE.2012.70","volume":"39","author":"Y Kamei","year":"2013","unstructured":"Kamei, Y., Shihab, E., Adams, B., Hassan, A.E., Mockus, A., Sinha, A., Ubayashi, N.: A large-scale empirical study of just-in-time quality assurance. IEEE Trans. Softw. Eng. 39(6), 757\u2013773 (2013). https:\/\/doi.org\/10.1109\/TSE.2012.70","journal-title":"IEEE Trans Softw Eng"},{"key":"294_CR28","doi-asserted-by":"publisher","unstructured":"Kang, H.J., Lo, D.: Active learning of discriminative subgraph patterns for API misuse detection. IEEE Trans. Softw. Eng. (2021). https:\/\/doi.org\/10.1109\/TSE.2021.3069978","DOI":"10.1109\/TSE.2021.3069978"},{"key":"294_CR29","doi-asserted-by":"publisher","unstructured":"Kechagia, M., Mechtaev, S., Sarro, F., Harman, M.: Evaluating automatic program repair capabilities to repair API misuses. IEEE Trans. Softw. Eng. (2021). https:\/\/doi.org\/10.1109\/TSE.2021.3067156","DOI":"10.1109\/TSE.2021.3067156"},{"key":"294_CR30","unstructured":"Kim, J., Lee, S., Hwang, S.W., Kim, S.: Towards an Intelligent Code Search Engine. In: Proceedings 24th AAAI Conference Artificial Intelligence (AAAI) (2010). URL https:\/\/www.aaai.org\/ocs\/index.php\/AAAI\/AAAI10\/paper\/download\/1691\/2212"},{"key":"294_CR31","doi-asserted-by":"publisher","unstructured":"Kim, M., Notkin, D.: Discovering and Representing Systematic Code Changes. In: Proceedings 31st International Conference Software Engineering (ICSE), IEEE Computer Society, USA, pp. 309-319 (2009). https:\/\/doi.org\/10.1109\/ICSE.2009.5070531","DOI":"10.1109\/ICSE.2009.5070531"},{"key":"294_CR32","doi-asserted-by":"publisher","unstructured":"Kim, S., Pan, K., Whitehead, E.E.J.: Memories of Bug Fixes. In: Proceedings 14th International Symposium Found Software Engineering (FSE), ACM, New York, NY, USA, pp. 35-45 (2006). https:\/\/doi.org\/10.1145\/1181775.1181781","DOI":"10.1145\/1181775.1181781"},{"key":"294_CR33","doi-asserted-by":"publisher","unstructured":"Kim, S., E James Whitehead, J., Zhang, Y.: Classifying software changes: clean or buggy? IEEE Trans. Softw. Eng. 34(2), 181\u2013196 (2008). https:\/\/doi.org\/10.1109\/TSE.2007.70773","DOI":"10.1109\/TSE.2007.70773"},{"key":"294_CR34","unstructured":"Koschke, R.: Survey of Research on Software Clones. In: Koschke, R., Merlo, E., Walenstein, A. (eds.) Dagstuhl Semin. Proc.: Duplic., Redundancy, and Similarity Softw., Internationales Begegnungs- und Forschungszentrum f\u00fcr Informatik (IBFI), Schloss Dagstuhl, Germany, Dagstuhl, Germany, no. 06301 in Dagstuhl Seminar Proceedings (2007), URL http:\/\/drops.dagstuhl.de\/opus\/volltexte\/2007\/962"},{"key":"294_CR35","doi-asserted-by":"publisher","unstructured":"Le, T.D.B., Lo, D.: Beyond Support and Confidence: Exploring Interestingness Measures for Rule-Based Specification Mining. In: Proceedings 22nd International Conference Software Analytical Evolution, Reeng. (SANER), pp. 331\u2013340 (2015). https:\/\/doi.org\/10.1109\/SANER.2015.7081843","DOI":"10.1109\/SANER.2015.7081843"},{"key":"294_CR36","doi-asserted-by":"publisher","unstructured":"Le, X.B.D., Lo, D., Le Goues, C.: History Driven Program Repair. In: Proceedings 23rd International Conference Software Analytical Evolution Reeng. (SANER), vol\u00a01, pp. 213\u2013224 (2016). https:\/\/doi.org\/10.1109\/SANER.2016.76","DOI":"10.1109\/SANER.2016.76"},{"issue":"1","key":"294_CR37","doi-asserted-by":"publisher","first-page":"175","DOI":"10.1109\/TSE.2011.5","volume":"38","author":"C Le Goues","year":"2012","unstructured":"Le Goues, C., Weimer, W.: Measuring code quality to improve specification mining. IEEE Trans. Softw. Eng. 38(1), 175\u2013190 (2012). https:\/\/doi.org\/10.1109\/TSE.2011.5","journal-title":"IEEE Trans Softw Eng"},{"issue":"12","key":"294_CR38","doi-asserted-by":"publisher","first-page":"56","DOI":"10.1145\/3318162","volume":"62","author":"C Le Goues","year":"2019","unstructured":"Le Goues, C., Pradel, M., Roychoudhury, A.: Automated program repair. Commun. ACM 62(12), 56\u201365 (2019). https:\/\/doi.org\/10.1145\/3318162","journal-title":"Commun ACM"},{"key":"294_CR39","doi-asserted-by":"publisher","unstructured":"Lemos, O.A.L., Bajracharya, S.K., Ossher, J., Morla, R.S., Masiero, P.C., Baldi, P., Lopes, C.V.: CodeGenie: Using Test-Cases to Search and Reuse Source Code. In: Proceedings 22nd International Conference Automatic Software Engineering (ASE), ACM, pp. 525\u2013526 (2007). https:\/\/doi.org\/10.1145\/1321631.1321726","DOI":"10.1145\/1321631.1321726"},{"key":"294_CR40","doi-asserted-by":"publisher","unstructured":"Li, Z., Zhou, Y.: PR-Miner: Automatically Extracting Implicit Programming Rules and Detecting Violations in Large Software Code. In: Proceedings 5th European Software Engineering Conference\/Found Software Engineering (ESEC\/FSE), ACM, pp. 306\u2013315 (2005). https:\/\/doi.org\/10.1145\/1095430.1081755","DOI":"10.1145\/1095430.1081755"},{"key":"294_CR41","doi-asserted-by":"publisher","unstructured":"Livshits, B., Zimmermann, T.: DynaMine: Finding Common Error Patterns by Mining Software Revision Histories. In: Proceedings 5th European Software Engineering Conference \/Found Software Engineering (ESEC\/FSE), ACM, vol 30, pp. 296\u2013305 (2005). https:\/\/doi.org\/10.1145\/1095430.1081754","DOI":"10.1145\/1095430.1081754"},{"key":"294_CR42","doi-asserted-by":"publisher","unstructured":"Long, F., Rinard, M.: Automatic Patch Generation by Learning Correct Code. In: Proceedings 43rd Symposium Principles Program Language (POPL), ACM, New York, NY, USA, pp. 298-312 (2016). https:\/\/doi.org\/10.1145\/2837614.2837617","DOI":"10.1145\/2837614.2837617"},{"key":"294_CR43","doi-asserted-by":"publisher","unstructured":"Lv, F., Zhang, H., Lou, J.g., Wang, S., Zhang, D., Zhao, J.: CodeHow: Effective Code Search Based on API Understanding and Extended Boolean Model. In: Proceedings 30th International Conference Automatic Software Engineering (ASE), IEEE Press, pp. 260-270 (2015). https:\/\/doi.org\/10.1109\/ASE.2015.42","DOI":"10.1109\/ASE.2015.42"},{"key":"294_CR44","doi-asserted-by":"publisher","unstructured":"Mandelin, D., Xu, L., Bod\u00edk, R., Kimelman, D.: Jungloid Mining: Helping to Navigate the API Jungle. In: Proceedings 26th ACM SIGPLAN Conference Programming Language Design Implementation (PLDI), ACM, New York, NY, USA, pp. 48\u201361 (2005). https:\/\/doi.org\/10.1145\/1065010.1065018","DOI":"10.1145\/1065010.1065018"},{"key":"294_CR45","doi-asserted-by":"publisher","unstructured":"McMillan, C., Grechanik, M., Poshyvanyk, D., Xie, Q., Fu, C.: Portfolio: Finding Relevant Functions and Their Usage. In: Proceedings 33rd Internatioal Conference Software Engineering (ICSE), ACM, New York, NY, USA, pp. 111-120 (2011). https:\/\/doi.org\/10.1145\/1985793.1985809","DOI":"10.1145\/1985793.1985809"},{"issue":"2","key":"294_CR46","doi-asserted-by":"publisher","first-page":"169","DOI":"10.1002\/bltj.2229","volume":"5","author":"A Mockus","year":"2000","unstructured":"Mockus, A., Weiss, D.M.: Predicting risk of software changes. Bell Labs Tech. J. 5(2), 169\u2013180 (2000). https:\/\/doi.org\/10.1002\/bltj.2229","journal-title":"Bell Labs Tech J"},{"key":"294_CR47","doi-asserted-by":"publisher","unstructured":"Moreno, L., Bavota, G., Di\u00a0Penta, M., Oliveto, R., Marcus, A.: How Can I Use This Method? In: Proceedings 37th International Conference Software Engineering (ICSE), IEEE, vol\u00a01, pp. 880\u2013890 (2015). https:\/\/doi.org\/10.1109\/ICSE.2015.98","DOI":"10.1109\/ICSE.2015.98"},{"key":"294_CR48","doi-asserted-by":"publisher","unstructured":"Murali, V., Chaudhuri, S., Jermaine, C.: Bayesian Specification Learning for Finding API Usage Errors. In: Proceedings 11th European Software Engineering Conference\/Found Software Engineering (ESEC\/FSE), ACM, pp. 151\u2013162 (2017). https:\/\/doi.org\/10.1145\/3106237.3106284","DOI":"10.1145\/3106237.3106284"},{"key":"294_CR49","doi-asserted-by":"publisher","unstructured":"Nadi, S., Kr\u00fcger, S., Mezini, M., Bodden, E.: Jumping through Hoops: Why Do Java Developers Struggle with Cryptography APIs? In: Proceedings of the 38th International Conference on Software Engineering, (ICSE), ACM, New York, NY, USA, pp. 935-946 (2016), https:\/\/doi.org\/10.1145\/2884781.2884790","DOI":"10.1145\/2884781.2884790"},{"key":"294_CR50","doi-asserted-by":"publisher","unstructured":"Nguyen, T.D., Nguyen, A.T., Phan, H.D., Nguyen, T.N.: Exploring API Embedding for API Usages and Applications. In: Proceedings 39th International Conference Software Engineering (ICSE), IEEE, pp. 438-449 (2017). https:\/\/doi.org\/10.1109\/ICSE.2017.47","DOI":"10.1109\/ICSE.2017.47"},{"key":"294_CR51","doi-asserted-by":"publisher","unstructured":"Nguyen, T.T., Nguyen, H.A., Pham, N.H., Al-Kofahi, J.M., Nguyen, T.N.: Graph-based mining of multiple object usage patterns. In: Proceedings 7th European Software Engineering Conference\/Found Software Engineering (ESEC\/FSE), ACM, New York, NY, USA, pp. 383\u2013392 (2009). https:\/\/doi.org\/10.1145\/1595696.1595767","DOI":"10.1145\/1595696.1595767"},{"key":"294_CR52","doi-asserted-by":"publisher","unstructured":"Nielebock, S., Heum\u00fcller, R., Ortmeier, F.: Commits As a Basis for API Misuse Detection. In: Proceedings 7th International Work on Software Min ACM, New York, NY, USA, pp. 20\u201323 (2018). https:\/\/doi.org\/10.1145\/3242887.3242890","DOI":"10.1145\/3242887.3242890"},{"key":"294_CR53","doi-asserted-by":"publisher","unstructured":"Nielebock, S., Heum\u00fcller, R., Kr\u00fcger, J., Ortmeier, F.: Cooperative API Misuse Detection Using Correction Rules. In: ACM (ed.) Proceedings 42nd International Conference Software Engineering (ICSE), ACM (2020a). https:\/\/doi.org\/10.1145\/3377816.3381735, ICSE-NIER track - forthcoming","DOI":"10.1145\/3377816.3381735"},{"key":"294_CR54","doi-asserted-by":"publisher","unstructured":"Nielebock, S., Heum\u00fcller, R., Kr\u00fcger, J., Ortmeier, F.: Using API-Embedding for API-Misuse Repair. In: ACM (ed.) Proceedings 1st International Work Automation Program Repair (APR) (2020b). https:\/\/doi.org\/10.1145\/3387940.3392171, forthcoming","DOI":"10.1145\/3387940.3392171"},{"key":"294_CR55","doi-asserted-by":"publisher","unstructured":"Nielebock, S., Blockhaus, P., Kr\u00fcger, J., Ortmeier, F.: AndroidCompass: A Dataset of Android Compatibility Checks in Code Repositories. In: Proceedings 18th International Work Min Software Repository (MSR), pp. 535\u2013539 (2021). https:\/\/doi.org\/10.1109\/MSR52588.2021.00069","DOI":"10.1109\/MSR52588.2021.00069"},{"key":"294_CR56","unstructured":"Oliveira, D.S., Lin, T., Rahman, M.S., Akefirad, R., Ellis, D., Perez, E., Bobhate, R., DeLong, L.A., Cappos, J., Brun, Y.: API Blindspots: Why Experienced Developers Write Vulnerable Code. In: Proceedings 14th Symposium on Usable Privacy and Security (SOUPS), USENIX Association, Baltimore, MD, pp. 315\u2013328 (2018)"},{"key":"294_CR57","doi-asserted-by":"publisher","unstructured":"Pasquier, N., Bastide, Y., Taouil, R., Lakhal, L.: Discovering Frequent Closed Itemsets for Association Rules. In: Beeri, C., Buneman, P. (eds.) Proceedings 7th International Conference Database Theory (ICDT), Springer Berlin Heidelberg, Berlin, Heidelberg, pp. 398\u2013416 (1999). https:\/\/doi.org\/10.1007\/3-540-49257-7_25https:\/\/doi.org\/10.1007\/3-540-49257-7_25","DOI":"10.1007\/3-540-49257-7_25 10.1007\/3-540-49257-7_25"},{"issue":"6","key":"294_CR58","doi-asserted-by":"publisher","first-page":"463","DOI":"10.1109\/32.295894","volume":"20","author":"S Paul","year":"1994","unstructured":"Paul, S., Prakash, A.: A framework for source code search using program patterns. IEEE Trans. Softw. Eng. 20(6), 463\u2013475 (1994). https:\/\/doi.org\/10.1109\/32.295894","journal-title":"IEEE Trans Softw Eng"},{"key":"294_CR59","doi-asserted-by":"publisher","unstructured":"Pradel, M., Gross, T.R.: Automatic Generation of Object Usage Specifications from Large Method Traces. In: Proceedings 24th International Conference Automation Software Engineering (ASE), IEEE Computer Society, pp. 371\u2013382 (2009). https:\/\/doi.org\/10.1109\/ASE.2009.60","DOI":"10.1109\/ASE.2009.60"},{"key":"294_CR60","doi-asserted-by":"publisher","unstructured":"Rahman, M.M., Roy, C.K., Lo, D.: RACK: Automatic API Recommendation Using Crowdsourced Knowledge. In: Proceedings 23rd International Conference Software Analytical Evolution, Reeng. (SANER), IEEE, vol\u00a01, pp. 349\u2013359 (2016). https:\/\/doi.org\/10.1109\/SANER.2016.80","DOI":"10.1109\/SANER.2016.80"},{"key":"294_CR61","doi-asserted-by":"publisher","unstructured":"Rahman, M.M., Barson, J., Paul, S., Kayani, J., Lois, F.A., Quezada, S.F., Parnin, C., Stolee, K.T., Ray, B.: Evaluating How Developers Use General-Purpose Web-Search for Code Retrieval. In: Proceedings of the 15th International Conference on Mining Software Repositories (MSR), ACM, New York, NY, USA, pp. 465-475 (2018). https:\/\/doi.org\/10.1145\/3196398.3196425","DOI":"10.1145\/3196398.3196425"},{"key":"294_CR62","doi-asserted-by":"publisher","unstructured":"Reiss, S.P.: Semantics-Based Code Search. In: Proceedings 31st International Conference Software Engineering (ICSE), IEEE Computer Society, pp. 243\u2013253 (2009). https:\/\/doi.org\/10.1109\/ICSE.2009.5070525","DOI":"10.1109\/ICSE.2009.5070525"},{"issue":"6","key":"294_CR63","doi-asserted-by":"publisher","first-page":"703","DOI":"10.1007\/s10664-010-9150-8","volume":"16","author":"MP Robillard","year":"2011","unstructured":"Robillard, M.P., Deline, R.: A field study of API learning obstacles. Empir. Softw. Eng. 16(6), 703\u2013732 (2011). https:\/\/doi.org\/10.1007\/s10664-010-9150-8","journal-title":"Empir Softw Eng"},{"issue":"5","key":"294_CR64","doi-asserted-by":"publisher","first-page":"613","DOI":"10.1109\/TSE.2012.63","volume":"39","author":"MP Robillard","year":"2013","unstructured":"Robillard, M.P., Bodden, E., Kawrykow, D., Mezini, M., Ratchford, T.: Automated API property inference techniques. IEEE Trans. Softw. Eng. 39(5), 613\u2013637 (2013). https:\/\/doi.org\/10.1109\/TSE.2012.63","journal-title":"IEEE Trans Softw Eng"},{"issue":"7","key":"294_CR65","doi-asserted-by":"publisher","first-page":"470","DOI":"10.1016\/j.scico.2009.02.007","volume":"74","author":"CK Roy","year":"2009","unstructured":"Roy, C.K., Cordy, J.R., Koschke, R.: Comparison and evaluation of code clone detection techniques and tools: a qualitative approach. Sci. Comput. Progr. 74(7), 470\u2013495 (2009). https:\/\/doi.org\/10.1016\/j.scico.2009.02.007","journal-title":"Sci Comput Program"},{"key":"294_CR66","doi-asserted-by":"publisher","unstructured":"Sadowski, C., Stolee, K.T., Elbaum, S.: How Developers Search for Code: A Case Study. In: Proceedings 10th European Software Engineering Conference\/Found Software Engineering (ESEC\/FSE), ACM, pp. 191\u2013201 (2015). https:\/\/doi.org\/10.1145\/2786805.2786855","DOI":"10.1145\/2786805.2786855"},{"key":"294_CR67","doi-asserted-by":"publisher","unstructured":"Sahavechaphan, N., Claypool, K.: XSnippet: Mining For Sample Code. In: Proceedings 21st Conference Object-Oriented Program., System, Language. Application. (OOPSLA), ACM, New York, NY, USA, pp. 413\u2013430 (2006). https:\/\/doi.org\/10.1145\/1167473.1167508","DOI":"10.1145\/1167473.1167508"},{"key":"294_CR68","doi-asserted-by":"publisher","first-page":"106213","DOI":"10.1016\/j.infsof.2019.106213","volume":"119","author":"MA Saied","year":"2020","unstructured":"Saied, M.A., Raelijohn, E., Batot, E., Famelis, M., Sahraoui, H.: Towards assisting developers in API usage by automated recovery of complex temporal patterns 119, 106213 (2020). https:\/\/doi.org\/10.1016\/j.infsof.2019.106213","journal-title":"Towards assisting developers in API usage by automated recovery of complex temporal patterns"},{"key":"294_CR69","doi-asserted-by":"publisher","unstructured":"Saini V, Farmahinifarahani F, Lu Y, Baldi P, Lopes CV.: Oreo: Detection of Clones in the Twilight Zone. In: Proceedings 26th European Software Engineering Conference\/Found Software Engineering (ESEC\/FSE), ACM, New York, NY, USA, pp. 354\u2013365 (2018). https:\/\/doi.org\/10.1145\/3236024.3236026","DOI":"10.1145\/3236024.3236026"},{"key":"294_CR70","doi-asserted-by":"publisher","unstructured":"Sajnani, H., Saini, V., Svajlenko, J., Roy, C.K., Lopes, C.V.: SourcererCC: Scaling Code Clone Detection to Big-Code. In: Proceedings 38th International Conference Software Engineering (ICSE), IEEE, pp. 1157\u20131168 (2016). https:\/\/doi.org\/10.1145\/2884781.2884877","DOI":"10.1145\/2884781.2884877"},{"key":"294_CR71","doi-asserted-by":"publisher","unstructured":"Saul, Z.M., Filkov, V., Devanbu, P., Bird, C. Recommending Random Walks. In: Proceedings 6th European Software Engineering Conference\/Found. Software Engineering (ESEC\/FSE), ACM, New York, NY, USA, pp. 15\u201324 (2007). https:\/\/doi.org\/10.1145\/1287624.1287629","DOI":"10.1145\/1287624.1287629"},{"key":"294_CR72","doi-asserted-by":"publisher","unstructured":"Siegmund, J., Siegmund, N., Apel, S.: Views on Internal and External Validity in Empirical Software Engineering. In: Proceedings 37th International Conference Software Engineering (ICSE), vol\u00a01, pp. 9\u201319 (2015). https:\/\/doi.org\/10.1109\/ICSE.2015.24","DOI":"10.1109\/ICSE.2015.24"},{"key":"294_CR73","doi-asserted-by":"publisher","unstructured":"\u015aliwerski, J., Zimmermann, T., Zeller, A.: When Do Changes Induce Fixes? In: Proceedings 2nd International Work Min Software Repository (MSR), ACM, New York, NY, USA, pp. 1\u20135 (2005). https:\/\/doi.org\/10.1145\/1082983.1083147","DOI":"10.1145\/1082983.1083147"},{"key":"294_CR74","doi-asserted-by":"publisher","unstructured":"Stolee, K.T., Elbaum, S., Dobos, D.: Solving the search for source code. ACM Trans. Softw. Eng. Methodol. 23(3), (2014). https:\/\/doi.org\/10.1145\/2581377","DOI":"10.1145\/2581377"},{"key":"294_CR75","doi-asserted-by":"publisher","unstructured":"Sun, B., Shu, G., Podgurski, A., Li, S., Zhang, S., Yang, J.: Propagating Bug Fixes with Fast Subgraph Matching. In: Proceedings 21st International Symposium Software Reliable Engineering (ISSRE), pp. 21\u201330 (2010). https:\/\/doi.org\/10.1109\/ISSRE.2010.36","DOI":"10.1109\/ISSRE.2010.36"},{"key":"294_CR76","doi-asserted-by":"publisher","unstructured":"Thummalapenta, S., Xie, T.: Parseweb: A Programmer Assistant for Reusing Open Source Code on the Web. In: Proceedings 22nd International Conference Automation Software Engineering (ASE), ACM, New York, NY, USA, pp. 204\u2013213 (2007). https:\/\/doi.org\/10.1145\/1321631.1321663","DOI":"10.1145\/1321631.1321663"},{"key":"294_CR77","doi-asserted-by":"publisher","unstructured":"Thung, F., Lo, D., Lawall, J.: Automated Library Recommendation. In: Proceedings 20th Work Conference Reverse Engineering (WCRE), pp. 182\u2013191 (2013a). https:\/\/doi.org\/10.1109\/WCRE.2013.6671293","DOI":"10.1109\/WCRE.2013.6671293"},{"key":"294_CR78","doi-asserted-by":"publisher","unstructured":"Thung, F., Wang, S., Lo, D., Lawall, J.: Automatic Recommendation of API Methods from Feature Requests. In: Proceedings 28th International Conference Automation Software Engineering (ASE), IEEE Press, pp. 290\u2013300 (2013b). https:\/\/doi.org\/10.1109\/ASE.2013.6693088","DOI":"10.1109\/ASE.2013.6693088"},{"issue":"3\u20134","key":"294_CR79","doi-asserted-by":"publisher","first-page":"263","DOI":"10.1007\/s10515-011-0084-1","volume":"18","author":"A Wasylkowski","year":"2011","unstructured":"Wasylkowski, A., Zeller, A.: Mining temporal specifications from object usage. Autom. Softw. Eng. 18(3\u20134), 263\u2013292 (2011). https:\/\/doi.org\/10.1007\/s10515-011-0084-1","journal-title":"Autom Softw Eng"},{"key":"294_CR80","doi-asserted-by":"publisher","unstructured":"Wasylkowski, A., Zeller, A., Lindig, C.: Detecting Object Usage Anomalies. In: Proceedings 6th European Software Engineering Conference\/Found. Software Engineering (ESEC\/FSE), ACM, pp. 35\u201344 (2007). https:\/\/doi.org\/10.1145\/1287624.1287632","DOI":"10.1145\/1287624.1287632"},{"key":"294_CR81","doi-asserted-by":"publisher","unstructured":"Weimer, W., Necula, G.C.: Mining Temporal Specifications for Error Detection. In: Halbwachs, N., Zuck, L.D. (eds.) Proceedings 11th International Conference Tools Algorithms Construct Analytical System (TACAS), Springer Berlin Heidelberg, Berlin, Heidelberg, pp. 461\u2013476 (2005). https:\/\/doi.org\/10.1007\/978-3-540-31980-1_30","DOI":"10.1007\/978-3-540-31980-1_30"},{"key":"294_CR82","doi-asserted-by":"publisher","unstructured":"White, M., Tufano, M., Vendome, C., Poshyvanyk, D.: Deep Learning Code Fragments for Code Clone Detection. In: Proceedings 31st International Conference Automation Software Engineering (ASE), ACM, pp. 87\u201398 (2016). https:\/\/doi.org\/10.1145\/2970276.2970326","DOI":"10.1145\/2970276.2970326"},{"key":"294_CR83","doi-asserted-by":"publisher","DOI":"10.1007\/s10664-017-9567-4","author":"R Wu","year":"2017","unstructured":"Wu, R., Wen, M., Cheung, S.C., Zhang, H.: ChangeLocator: locate crash-inducing changes based on crash reports. Empir. Softw. Eng. (2017). https:\/\/doi.org\/10.1007\/s10664-017-9567-4","journal-title":"Empir Softw Eng"},{"issue":"6","key":"294_CR84","doi-asserted-by":"publisher","first-page":"3149","DOI":"10.1007\/s10664-017-9514-4","volume":"22","author":"X Xia","year":"2017","unstructured":"Xia, X., Bao, L., Lo, D., Kochhar, P.S., Hassan, A.E., Xing, Z.: What do developers search for on the web? Empir. Softw. Eng. 22(6), 3149\u20133185 (2017). https:\/\/doi.org\/10.1007\/s10664-017-9514-4","journal-title":"Empir Softw Eng"},{"key":"294_CR85","doi-asserted-by":"publisher","unstructured":"Xin, Q., Reiss, S.P.: Leveraging Syntax-Related Code for Automated Program Repair. In: Proceedings 32nd International Conference Automation Software Engineering (ASE), IEEE Press, pp. 660-670 (2017). https:\/\/doi.org\/10.1109\/ASE.2017.8115676","DOI":"10.1109\/ASE.2017.8115676"},{"key":"294_CR86","doi-asserted-by":"publisher","unstructured":"Xin, Q., Reiss, S.P.: Better Code Search and Reuse for Better Program Repair. In: Proceedings 6th, IEEE Press, pp. 10-17 (2019). https:\/\/doi.org\/10.1109\/GI.2019.00012","DOI":"10.1109\/GI.2019.00012"},{"key":"294_CR87","doi-asserted-by":"publisher","unstructured":"Yang, J., Evans, D.: Automatically Inferring Temporal Properties for Program Evolution. In: Proceedings 15th International Symposium Software Reliable Engineering (ISSRE), IEEE, pp. 340\u2013351 (2004). https:\/\/doi.org\/10.1109\/ISSRE.2004.11","DOI":"10.1109\/ISSRE.2004.11"},{"key":"294_CR88","doi-asserted-by":"publisher","unstructured":"Yang, J., Evans, D., Bhardwaj, D., Bhat, T., Das, M.: Perracotta: Mining Temporal API Rules from Imperfect Traces. In: Proceedings 28th International Conference Software Engineering (ICSE), ACM, pp. 282\u2013291 (2006). https:\/\/doi.org\/10.1145\/1134285.1134325","DOI":"10.1145\/1134285.1134325"},{"issue":"2","key":"294_CR89","doi-asserted-by":"publisher","first-page":"217","DOI":"10.2307\/2983604","volume":"1","author":"F Yates","year":"1934","unstructured":"Yates, F.: Contingency tables involving small numbers and the chi2 test. Suppl. J. R. Stat. Soc. 1(2), 217\u2013235 (1934). https:\/\/doi.org\/10.2307\/2983604","journal-title":"Suppl J R Stat Soc"},{"key":"294_CR90","doi-asserted-by":"publisher","unstructured":"Zhong, H., Su, Z.: An Empirical Study on Real Bug Fixes. In: Proceedings 37th International Conference Software Engineering (ICSE), IEEE\/ACM, IEEE Press, pp. 913\u2013923 (2015). https:\/\/doi.org\/10.1109\/ICSE.2015.101","DOI":"10.1109\/ICSE.2015.101"},{"key":"294_CR91","doi-asserted-by":"publisher","unstructured":"Zhong, H., Xie, T., Zhang, L., Pei, J., Mei, H.: MAPO: Mining and Recommending API Usage Patterns. Proceedings 23rd European Conference Object-Oriented Program (ECOOP), pp. 318\u2013343 (2009). https:\/\/doi.org\/10.1007\/978-3-642-03013-0_15","DOI":"10.1007\/978-3-642-03013-0_15"},{"key":"294_CR92","doi-asserted-by":"publisher","unstructured":"Zhou, Y., Gu, R., Chen, T., Huang, Z., Panichella, S., Gall, H.: Analyzing APIs Documentation and Code to Detect Directive Defects. In: Proceedings 39th International Conference Software Engineering (ICSE), pp. 27\u201337 (2017). https:\/\/doi.org\/10.1109\/ICSE.2017.11","DOI":"10.1109\/ICSE.2017.11"},{"key":"294_CR93","doi-asserted-by":"publisher","unstructured":"Zibran, M.F., Eishita, F.Z., Roy, C.K.: Useful, But Usable? Factors Affecting the Usability of APIs. In: Proceedings 18th Work Conference Reverse Engineering (WCRE), IEEE, pp. 151\u2013155 (2011), https:\/\/doi.org\/10.1109\/WCRE.2011.26","DOI":"10.1109\/WCRE.2011.26"}],"container-title":["Automated Software Engineering"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10515-021-00294-x.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1007\/s10515-021-00294-x\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10515-021-00294-x.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2021,10,23]],"date-time":"2021-10-23T01:26:50Z","timestamp":1634952410000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/s10515-021-00294-x"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2021,8,17]]},"references-count":93,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2021,11]]}},"alternative-id":["294"],"URL":"https:\/\/doi.org\/10.1007\/s10515-021-00294-x","relation":{},"ISSN":["0928-8910","1573-7535"],"issn-type":[{"value":"0928-8910","type":"print"},{"value":"1573-7535","type":"electronic"}],"subject":[],"published":{"date-parts":[[2021,8,17]]},"assertion":[{"value":"1 August 2020","order":1,"name":"received","label":"Received","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"1 August 2021","order":2,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"17 August 2021","order":3,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}}],"article-number":"15"}}