{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,19]],"date-time":"2026-03-19T16:37:37Z","timestamp":1773938257869,"version":"3.50.1"},"reference-count":47,"publisher":"Elsevier BV","license":[{"start":{"date-parts":[[2018,11,1]],"date-time":"2018-11-01T00:00:00Z","timestamp":1541030400000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.elsevier.com\/tdm\/userlicense\/1.0\/"},{"start":{"date-parts":[[2018,11,1]],"date-time":"2018-11-01T00:00:00Z","timestamp":1541030400000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.elsevier.com\/legal\/tdmrep-license"}],"content-domain":{"domain":["elsevier.com","sciencedirect.com"],"crossmark-restriction":true},"short-container-title":["Journal of Systems and Software"],"published-print":{"date-parts":[[2018,11]]},"DOI":"10.1016\/j.jss.2018.08.032","type":"journal-article","created":{"date-parts":[[2018,8,18]],"date-time":"2018-08-18T19:30:57Z","timestamp":1534620657000},"page":"164-179","update-policy":"https:\/\/doi.org\/10.1016\/elsevier_cm_policy","source":"Crossref","is-referenced-by-count":60,"special_numbering":"C","title":["Improving reusability of software libraries through usage pattern mining"],"prefix":"10.1016","volume":"145","author":[{"given":"Mohamed Aymen","family":"Saied","sequence":"first","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0003-4708-0362","authenticated-orcid":false,"given":"Ali","family":"Ouni","sequence":"additional","affiliation":[]},{"given":"Houari","family":"Sahraoui","sequence":"additional","affiliation":[]},{"given":"Raula Gaikovina","family":"Kula","sequence":"additional","affiliation":[]},{"given":"Katsuro","family":"Inoue","sequence":"additional","affiliation":[]},{"given":"David","family":"Lo","sequence":"additional","affiliation":[]}],"member":"78","reference":[{"key":"10.1016\/j.jss.2018.08.032_bib0001","series-title":"European Conference on Software Maintenance and Reengineering","first-page":"307","article-title":"Moving to smaller libraries via clustering and genetic algorithms","author":"Antoniol","year":"2003"},{"key":"10.1016\/j.jss.2018.08.032_bib0002","series-title":"Software Maintenance, 2003. ICSM 2003. Proceedings. International Conference on","first-page":"235","article-title":"Library miniaturization using static and dynamic information","author":"Antoniol","year":"2003"},{"key":"10.1016\/j.jss.2018.08.032_bib0003","series-title":"International Conference on Software Maintenance and Evolution (ICSME)","first-page":"71","article-title":"Cscc: Simple, efficient, context sensitive code completion","author":"Asaduzzaman","year":"2014"},{"key":"10.1016\/j.jss.2018.08.032_sbref0004","series-title":"Recommendation Systems in Software Engineering","first-page":"245","author":"Avazpour","year":"2014"},{"key":"10.1016\/j.jss.2018.08.032_bib0005","series-title":"Joint Meeting of the European Software Engineering Conf. and the ACM SIGSOFT Symposium on The Foundations of Software Engineering","first-page":"213","article-title":"Learning from examples to improve code completion systems","author":"Bruch","year":"2009"},{"key":"10.1016\/j.jss.2018.08.032_bib0006","series-title":"International Conference on Software Engineering (ICSE)","first-page":"782","article-title":"Synthesizing API usage examples","author":"Buse","year":"2012"},{"key":"10.1016\/j.jss.2018.08.032_bib0007","series-title":"Artificial Intelligence and Statistics","first-page":"81","article-title":"Relational topic models for document networks","author":"Chang","year":"2009"},{"key":"10.1016\/j.jss.2018.08.032_sbref0008","series-title":"Statistical Power Analysis for the Behavioral Sciences","author":"Cohen","year":"1988"},{"key":"10.1016\/j.jss.2018.08.032_bib0009","series-title":"International Conference on Program Comprehension","first-page":"152","article-title":"Multi-dimensional exploration of API usage","author":"De Roover","year":"2013"},{"key":"10.1016\/j.jss.2018.08.032_bib0010","series-title":"European Conference on Object-oriented Programming","first-page":"79","article-title":"Using structure-based recommendations to facilitate discoverability in APIs","author":"Duala-Ekoko","year":"2011"},{"key":"10.1016\/j.jss.2018.08.032_bib0011","series-title":"International Conf. on Software Engineering","first-page":"632","article-title":"How do API documentation and static typing affect API usability?","author":"Endrikat","year":"2014"},{"key":"10.1016\/j.jss.2018.08.032_bib0012","series-title":"International Conference on Knowledge Discovery and Data Mining","first-page":"226","article-title":"A density-based algorithm for discovering clusters in large spatial databases with noise","author":"Ester","year":"1996"},{"key":"10.1016\/j.jss.2018.08.032_bib0013","series-title":"Formal Concept Analysis: Mathematical Foundations","author":"Ganter","year":"2012"},{"key":"10.1016\/j.jss.2018.08.032_bib0014","series-title":"International Conference on Program Comprehension","first-page":"91","article-title":"Obstacles in using frameworks and APIs: an exploratory study of programmers\u2019 newsgroup discussions","author":"Hou","year":"2011"},{"key":"10.1016\/j.jss.2018.08.032_bib0015","series-title":"International Conference on Software Maintenance","first-page":"233","article-title":"An evaluation of the strategies of sorting, filtering, and grouping API methods for code completion","author":"Hou","year":"2011"},{"key":"10.1016\/j.jss.2018.08.032_bib0016","series-title":"Software Engineering Companion (ICSE-C), 2017 IEEE\/ACM 39th International Conference on","first-page":"274","article-title":"Mining complex temporal API usage patterns: an evolutionary approach","author":"Huppe","year":"2017"},{"key":"10.1016\/j.jss.2018.08.032_bib0017","series-title":"Working Conference on Software Visualization (VISSOFT)","first-page":"127","article-title":"Visualizing the evolution of systems and their library dependencies","author":"Kula","year":"2014"},{"issue":"1","key":"10.1016\/j.jss.2018.08.032_bib0018","doi-asserted-by":"crossref","first-page":"384","DOI":"10.1007\/s10664-017-9521-5","article-title":"Do developers update their library dependencies?","volume":"23","author":"Kula","year":"2018","journal-title":"Emp. Softw. Eng."},{"key":"10.1016\/j.jss.2018.08.032_bib0019","series-title":"ACM SIGSOFT Software Engineering Notes","first-page":"306","article-title":"Pr-miner: automatically extracting implicit programming rules and detecting violations in large software code","volume":"Vol. 30","author":"Li","year":"2005"},{"key":"10.1016\/j.jss.2018.08.032_bib0020","series-title":"International Conference on Software Engineering (ICSE)","first-page":"111","article-title":"Portfolio: Finding relevant functions and their usage","author":"McMillan","year":"2011"},{"key":"10.1016\/j.jss.2018.08.032_bib0021","series-title":"Working Conference on Reverse Engineering","first-page":"401","article-title":"Documenting APIs with examples: lessons learned with the apiminer platform","author":"Montandon","year":"2013"},{"key":"10.1016\/j.jss.2018.08.032_bib0022","series-title":"Automated Software Engineering","first-page":"646","article-title":"Export: Detecting and visualizing API usages in large source code repositories","author":"Moritz","year":"2013"},{"key":"10.1016\/j.jss.2018.08.032_bib0023","series-title":"International Conference on Software Engineering (ICSE)","first-page":"69","article-title":"Graph-based pattern-oriented, context-sensitive source code completion","author":"Nguyen","year":"2012"},{"key":"10.1016\/j.jss.2018.08.032_bib0024","doi-asserted-by":"crossref","first-page":"55","DOI":"10.1016\/j.infsof.2016.11.007","article-title":"Search-based software library recommendation using multi-objective optimization","volume":"83","author":"Ouni","year":"2017","journal-title":"Inf. Softw. Technol."},{"key":"10.1016\/j.jss.2018.08.032_bib0025","series-title":"Tech. Rep","article-title":"Crowd Documentation: Exploring the Coverage and the Dynamics of API Discussions on Stack Overflow","author":"Parnin","year":"2012"},{"key":"10.1016\/j.jss.2018.08.032_bib0026","series-title":"Working Conference on Reverse Engineering (WCRE)","first-page":"319","article-title":"Knowledge-based library re-factoring for an open source project","author":"Penta","year":"2002"},{"key":"10.1016\/j.jss.2018.08.032_bib0027","series-title":"International Conference on Quality Software","first-page":"328","article-title":"Cohesion metrics for predicting maintainability of service-oriented software","author":"Perepletchikov","year":"2007"},{"key":"10.1016\/j.jss.2018.08.032_bib0028","series-title":"Software Maintenance (ICSM), 2012 28th IEEE International Conference on","first-page":"378","article-title":"Measuring software library stability through historical version analysis","author":"Raemaekers","year":"2012"},{"key":"10.1016\/j.jss.2018.08.032_bib0029","series-title":"Source Code Analysis and Manipulation (SCAM), 2014 IEEE 14th International Working Conference on","first-page":"215","article-title":"Semantic versioning versus breaking changes: A study of the maven repository","author":"Raemaekers","year":"2014"},{"issue":"6","key":"10.1016\/j.jss.2018.08.032_bib0030","doi-asserted-by":"crossref","first-page":"27","DOI":"10.1109\/MS.2009.193","article-title":"What makes APIs hard to learn? answers from developers","volume":"26","author":"Robillard","year":"2009","journal-title":"IEEE Softw."},{"key":"10.1016\/j.jss.2018.08.032_bib0031","series-title":"International Conference on Program Comprehension (ICPC)","first-page":"71","article-title":"Could we infer unordered API usage patterns only using the library source code?","author":"Saied","year":"2015"},{"key":"10.1016\/j.jss.2018.08.032_bib0032","series-title":"Proceedings of the 2015 IEEE 23rd International Conference on Program Comprehension","first-page":"71","article-title":"Could we infer unordered API usage patterns only using the library source code?","author":"Saied","year":"2015"},{"key":"10.1016\/j.jss.2018.08.032_bib0033","series-title":"International Conference on Software Analysis, Evolution and Reengineering (SANER)","first-page":"23","article-title":"Mining multi-level API usage patterns","author":"Saied","year":"2015"},{"key":"10.1016\/j.jss.2018.08.032_bib0034","series-title":"Software Visualization (VISSOFT), 2015 IEEE 3rd Working Conference on","first-page":"155","article-title":"Visualization based API usage patterns refining","author":"Saied","year":"2015"},{"key":"10.1016\/j.jss.2018.08.032_bib0035","series-title":"Program Comprehension (ICPC), 2016 IEEE 24th International Conference on","first-page":"1","article-title":"A cooperative approach for combining client-based and library-based API usage pattern mining","author":"Saied","year":"2016"},{"key":"10.1016\/j.jss.2018.08.032_bib0036","series-title":"International Conference on Software Analysis, Evolution and Reengineering (SANER)","first-page":"33","article-title":"An observational study on API usage constraints and their documentation","author":"Saied","year":"2015"},{"issue":"3","key":"10.1016\/j.jss.2018.08.032_bib0037","doi-asserted-by":"crossref","first-page":"19","DOI":"10.1145\/3068335","article-title":"DBSCAN Revisited, revisited: why and how you should (still) use DBSCAN","volume":"42","author":"Schubert","year":"2017","journal-title":"ACM Trans. Database Syst. (TODS)"},{"key":"10.1016\/j.jss.2018.08.032_bib0038","unstructured":"Szathmary, L., Napoli, A., Kuznetsov, S. O., 2006. Zart: A multifunctional itemset mining algorithm."},{"key":"10.1016\/j.jss.2018.08.032_bib0039","series-title":"ACIS International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel\/Distributed Computing (SNPD)","first-page":"543","article-title":"Using co-change histories to improve bug localization performance","author":"Tantithamthavorn","year":"2013"},{"key":"10.1016\/j.jss.2018.08.032_bib0040","series-title":"International Symposium on Software Reliability Engineering Workshops (ISSREW)","first-page":"108","article-title":"Mining a change history to quickly identify bug locations: A case study of the Eclipse project","author":"Tantithamthavorn","year":"2013"},{"key":"10.1016\/j.jss.2018.08.032_bib0041","doi-asserted-by":"crossref","unstructured":"Thung, F., Lo, D., Lawall, J., 2013. Automated library recommendation, 182\u2013191.","DOI":"10.1109\/WCRE.2013.6671293"},{"key":"10.1016\/j.jss.2018.08.032_bib0042","series-title":"International Conf. on Software Engineering","first-page":"804","article-title":"Temporal analysis of API usage concepts","author":"Uddin","year":"2012"},{"key":"10.1016\/j.jss.2018.08.032_bib0043","series-title":"Working Conference on Mining Software Repositories (MSR)","first-page":"319","article-title":"Mining succinct and high-coverage API usage patterns from source code","author":"Wang","year":"2013"},{"key":"10.1016\/j.jss.2018.08.032_bib0044","series-title":"International Conference on Automated Software Engineering (ICSE)","first-page":"592","article-title":"APIExample: An effective web search based usage example recommendation system for java APIs","author":"Wang","year":"2011"},{"issue":"18","key":"10.1016\/j.jss.2018.08.032_bib0045","doi-asserted-by":"crossref","first-page":"4692","DOI":"10.1016\/j.physa.2008.03.017","article-title":"Measuring the preferential attachment mechanism in citation networks","volume":"387","author":"Wang","year":"2008","journal-title":"Physica A"},{"key":"10.1016\/j.jss.2018.08.032_bib0046","series-title":"Working Conference on Mining Software Repositories","first-page":"61","article-title":"Detecting API usage obstacles: A study of iOS and Android developer questions","author":"Wang","year":"2013"},{"key":"10.1016\/j.jss.2018.08.032_bib0047","series-title":"European Conference on Object-Oriented Programming","first-page":"318","article-title":"MAPO: Mining and recommending API usage patterns","author":"Zhong","year":"2009"}],"container-title":["Journal of Systems and Software"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:S0164121218301699?httpAccept=text\/xml","content-type":"text\/xml","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:S0164121218301699?httpAccept=text\/plain","content-type":"text\/plain","content-version":"vor","intended-application":"text-mining"}],"deposited":{"date-parts":[[2025,9,27]],"date-time":"2025-09-27T23:19:53Z","timestamp":1759015193000},"score":1,"resource":{"primary":{"URL":"https:\/\/linkinghub.elsevier.com\/retrieve\/pii\/S0164121218301699"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2018,11]]},"references-count":47,"alternative-id":["S0164121218301699"],"URL":"https:\/\/doi.org\/10.1016\/j.jss.2018.08.032","relation":{},"ISSN":["0164-1212"],"issn-type":[{"value":"0164-1212","type":"print"}],"subject":[],"published":{"date-parts":[[2018,11]]},"assertion":[{"value":"Elsevier","name":"publisher","label":"This article is maintained by"},{"value":"Improving reusability of software libraries through usage pattern mining","name":"articletitle","label":"Article Title"},{"value":"Journal of Systems and Software","name":"journaltitle","label":"Journal Title"},{"value":"https:\/\/doi.org\/10.1016\/j.jss.2018.08.032","name":"articlelink","label":"CrossRef DOI link to publisher maintained version"},{"value":"article","name":"content_type","label":"Content Type"},{"value":"\u00a9 2018 Elsevier Inc. All rights reserved.","name":"copyright","label":"Copyright"}]}}