API Recommendation System for Software - Game Category
Resumo
Software development depends on Application Programming Interfaces (APIs) to achieve their goals. However, choosing the right APIs remains as a difficult ask for software engineers. Considering that recommendation systems are emerging to support software engineers in their decision-making task and Games industry has a huge economic and cultural success, we proposed a technique that considers Game category from SourceForge and recommends PIs to software engineers with software in initial (not using APIs) or advanced (using some APIs) stage of software development. We used collaborative filtering technique along with frequent Itemset mining technique for generating the corresponding large and top-N lists of APIs recommended. We evaluated lists performance based on two classification accuracy metrics (precision and recall) and one efficacy metric (recall rate), obtaining promising outcomes. Thus, the results of evaluation metrics showed that our technique could make useful API recommendations for software engineers with Game software that used a small number of APIs or did not use any API. Besides, our technique was able to put relevant APIs even in high-ranking positions, even in small top-N lists, of APIs recommended.
Palavras-chave:
API, Recommendation, System
Referências
Aarseth, E. Playing Research: Methodological Approaches to Game Analysis. In: Digital Arts & Culture Conference (p.7). Melbourne. 2003.
Acharya, M.; Xie, T.; Pei, J.; Xu, J. Mining API Patterns as Partial Orders from Source Code : From Usage Scenarios to Specifications. 2007.
Anand, D.; Bharadwaj, K. K. Utilizing Various Sparsity Measures for Enhancing Accuracy of Collaborative Recommender Systems Based on Local and Global Similarities. In: Expert Systems with Applications, 38(5), 5101-5109. 2011.
Bajracharya, S.; Ossher, J.; Lopes, C. Sourcerer: An Internet-Scale Software Repository. In: ICSE Workshop on Search-Driven Development-Users, Infrastructure, Tools and Evaluation. pp. 1-4. 2009.
Barbosa, Y. de A. M. Um Sistema de Recomendação de Código-Fonte para Suporte a Novatos. Universidade Federal de Pernambuco. Retrieved from http://repositorio.ufpe.br:8080/xmlui/handle/123456789/2737. 2011.
Bigdeli, E.; Bahmani, Z. Comparing Accuracy of Cosine-Based Similarity and Correlation-Based Similarity Algorithms in Tourism Recommender Systems. In: International Conference on Management of Innovation and Technology. pp. 469-474. 2008.
Bobadilla, J.; Hernando, A.; Ortega, F.; Bernal, J. A Framework for Collaborative Filtering Recommender Systems. In: Expert Systems with Applications,38(12), pp.14609-14623. 2011.
Cremonesi, P.; Garzotto, F.; Turrin, R. User-Centric vs. System-Centric Evaluation of Recommender Systems. In: Lecture Notes in Computer Science. pp. 334-351. 2013.
Cremonesi, P.; Turrin, R.; Lentini, E.; Matteucci, M. An Evaluation Methodology for Collaborative Recommender Systems. In: International Conference on Automated Solutions for Cross Media Content and Multi-Channel Distribution. pp. 224-231. 2008.
Dapeng, H.; Qianhui, L.; Jingmin, Z. An Improved Similarity Algorithm for Personalized Recommendation. In: International Forum on Computer Science-Technology and Applications. pp. 54-57. 2009.
Duala-Ekoko, E.; Robillard, M. P. Asking and Answering Questions about Unfamiliar APIs: An Exploratory Study. In: International Conference on Software Engineering. pp. 266-276. 2012.
Holmes, R., & Walker, R. J. Informing Eclipse API production and consumption. Proceedings of Workshop on Eclipse Technology eXchange – Eclipse. pp. 70–74. 2007.
Jannach, D.; Zanker, M.; Felfernig, A.; Friedrich, G. Recommender Systems: An Introduction. 2010.
Lopes, C.; Bajracharya, S.; Ossher, J.; Baldi, P. UCI Source Code Data Sets. Retrieved January 19, 2015, from http://www.ics.uci.edu/~lopes/datasets. 2010.
Maffort, C.; Valente, M. T.; Bigonha, M.; Hora, A.; Anquetil, N.; Menezes, J. Mining Architectural Patterns Using Association Rules. In: International Conference on Software Engineering and Knowledge Engineering. pp. 375-380. 2013.
McLaughlin, M. R. M.; Herlocker, J. L. J. A Collaborative Filtering Algorithm and Evaluation Metric that Accurately Model the User Experience. In: ACM SIGIR Conference on Research and Development in Information Retrieval. pp. 329-336. 2004.
Mileva, Y. M.; Dallmeier, V.; Burger, M.; Zeller, A. Mining Trends of Library Usage. In: Joint International and Annual ERCIM Workshops on Principles of Software Evolution and Software Evolution. pp. 57-62. 2009.
Niwattanakul, S.; Singthongchai, J.; Naenudorn, E.; Wanapu, S. Using of Jaccard Coefficient for Keywords Similarity. In: International MultiConference of Engineers and Computer Scientists. 2013.
Núnez-valdéz, E. R.; Aguilar, L. J.; Lovelle, J. M. C.; Martínez, O. S.; García-bustelo, B. C. P.; García-Diaz, V.; Montenegro Marin, C. E.; Espada, J. P. Plataforma de Recomendación de Contenidos para Libros Electrónicos Inteligentes Basada en el Comportamiento de los Usuarios. In: Ventana Informática. 14, pp. 25-40. 2012.
Park, S.; Pennock, D.; Madani, O.; Good, N.; DeCoste, D. Naïve Filterbots for Robust Cold-Start Recommendations. In: Conference on Knowledge Discovery and Data Mining. 2006.
Robillard, M.; Walker, R.; Zimmermann, T. Recommendation Systems for Software Engineering. In: IEEE Software, 27(4), pp. 80-86. 2010.
Robillard, M.; Walker, R.; Zimmermann, T. Recommendation Systems in Software Engineering. In: IEEE Software. 2014.
Schein, A. I.; Popescul, A.; Ungar, L. H.; Pennock, D. M. Methods and Metrics for Cold-Start Recommendations. In: Annual International ACM SIGIR Conference on Research and Development in Information Retrieval. 2002.
Son, L. H. Dealing with the New User Cold-Start Problem in Recommender Systems: A Comparative Review. In: Information Systems. 2014.
Sun, C.; Khoo, S.; Zhang, S. J. Graph-Based Detection of Library API Imitations. In: International Conference on Software Maintenance. pp. 183-192. 2011.
Teyton, C.; Falleri, J.-R.; Morandat, F.; Blanc, X. Find your Library Experts. In: Working Conference on Reverse Engineering. pp. 202-211. 2013.
The Java Tutorials. The JavaTM Tutorials. Retrieved June 20, 2014, from https://docs.oracle.com/javase/tutorial/java/package/usepkgs.html. 2014.
Thung, F.; Lo, D.; Lawall, J. Automated Library Recommendation. In: Working Conference on Reverse Engineering. pp. 182-191. 2013.
Thung, F.; Wang, S.; Lo, D.; Lawall, J. Automatic Recommendation of API Methods from Feature Requests. In: International Conference on Automated Software Engineering. pp. 290-300. 2013.
Acharya, M.; Xie, T.; Pei, J.; Xu, J. Mining API Patterns as Partial Orders from Source Code : From Usage Scenarios to Specifications. 2007.
Anand, D.; Bharadwaj, K. K. Utilizing Various Sparsity Measures for Enhancing Accuracy of Collaborative Recommender Systems Based on Local and Global Similarities. In: Expert Systems with Applications, 38(5), 5101-5109. 2011.
Bajracharya, S.; Ossher, J.; Lopes, C. Sourcerer: An Internet-Scale Software Repository. In: ICSE Workshop on Search-Driven Development-Users, Infrastructure, Tools and Evaluation. pp. 1-4. 2009.
Barbosa, Y. de A. M. Um Sistema de Recomendação de Código-Fonte para Suporte a Novatos. Universidade Federal de Pernambuco. Retrieved from http://repositorio.ufpe.br:8080/xmlui/handle/123456789/2737. 2011.
Bigdeli, E.; Bahmani, Z. Comparing Accuracy of Cosine-Based Similarity and Correlation-Based Similarity Algorithms in Tourism Recommender Systems. In: International Conference on Management of Innovation and Technology. pp. 469-474. 2008.
Bobadilla, J.; Hernando, A.; Ortega, F.; Bernal, J. A Framework for Collaborative Filtering Recommender Systems. In: Expert Systems with Applications,38(12), pp.14609-14623. 2011.
Cremonesi, P.; Garzotto, F.; Turrin, R. User-Centric vs. System-Centric Evaluation of Recommender Systems. In: Lecture Notes in Computer Science. pp. 334-351. 2013.
Cremonesi, P.; Turrin, R.; Lentini, E.; Matteucci, M. An Evaluation Methodology for Collaborative Recommender Systems. In: International Conference on Automated Solutions for Cross Media Content and Multi-Channel Distribution. pp. 224-231. 2008.
Dapeng, H.; Qianhui, L.; Jingmin, Z. An Improved Similarity Algorithm for Personalized Recommendation. In: International Forum on Computer Science-Technology and Applications. pp. 54-57. 2009.
Duala-Ekoko, E.; Robillard, M. P. Asking and Answering Questions about Unfamiliar APIs: An Exploratory Study. In: International Conference on Software Engineering. pp. 266-276. 2012.
Holmes, R., & Walker, R. J. Informing Eclipse API production and consumption. Proceedings of Workshop on Eclipse Technology eXchange – Eclipse. pp. 70–74. 2007.
Jannach, D.; Zanker, M.; Felfernig, A.; Friedrich, G. Recommender Systems: An Introduction. 2010.
Lopes, C.; Bajracharya, S.; Ossher, J.; Baldi, P. UCI Source Code Data Sets. Retrieved January 19, 2015, from http://www.ics.uci.edu/~lopes/datasets. 2010.
Maffort, C.; Valente, M. T.; Bigonha, M.; Hora, A.; Anquetil, N.; Menezes, J. Mining Architectural Patterns Using Association Rules. In: International Conference on Software Engineering and Knowledge Engineering. pp. 375-380. 2013.
McLaughlin, M. R. M.; Herlocker, J. L. J. A Collaborative Filtering Algorithm and Evaluation Metric that Accurately Model the User Experience. In: ACM SIGIR Conference on Research and Development in Information Retrieval. pp. 329-336. 2004.
Mileva, Y. M.; Dallmeier, V.; Burger, M.; Zeller, A. Mining Trends of Library Usage. In: Joint International and Annual ERCIM Workshops on Principles of Software Evolution and Software Evolution. pp. 57-62. 2009.
Niwattanakul, S.; Singthongchai, J.; Naenudorn, E.; Wanapu, S. Using of Jaccard Coefficient for Keywords Similarity. In: International MultiConference of Engineers and Computer Scientists. 2013.
Núnez-valdéz, E. R.; Aguilar, L. J.; Lovelle, J. M. C.; Martínez, O. S.; García-bustelo, B. C. P.; García-Diaz, V.; Montenegro Marin, C. E.; Espada, J. P. Plataforma de Recomendación de Contenidos para Libros Electrónicos Inteligentes Basada en el Comportamiento de los Usuarios. In: Ventana Informática. 14, pp. 25-40. 2012.
Park, S.; Pennock, D.; Madani, O.; Good, N.; DeCoste, D. Naïve Filterbots for Robust Cold-Start Recommendations. In: Conference on Knowledge Discovery and Data Mining. 2006.
Robillard, M.; Walker, R.; Zimmermann, T. Recommendation Systems for Software Engineering. In: IEEE Software, 27(4), pp. 80-86. 2010.
Robillard, M.; Walker, R.; Zimmermann, T. Recommendation Systems in Software Engineering. In: IEEE Software. 2014.
Schein, A. I.; Popescul, A.; Ungar, L. H.; Pennock, D. M. Methods and Metrics for Cold-Start Recommendations. In: Annual International ACM SIGIR Conference on Research and Development in Information Retrieval. 2002.
Son, L. H. Dealing with the New User Cold-Start Problem in Recommender Systems: A Comparative Review. In: Information Systems. 2014.
Sun, C.; Khoo, S.; Zhang, S. J. Graph-Based Detection of Library API Imitations. In: International Conference on Software Maintenance. pp. 183-192. 2011.
Teyton, C.; Falleri, J.-R.; Morandat, F.; Blanc, X. Find your Library Experts. In: Working Conference on Reverse Engineering. pp. 202-211. 2013.
The Java Tutorials. The JavaTM Tutorials. Retrieved June 20, 2014, from https://docs.oracle.com/javase/tutorial/java/package/usepkgs.html. 2014.
Thung, F.; Lo, D.; Lawall, J. Automated Library Recommendation. In: Working Conference on Reverse Engineering. pp. 182-191. 2013.
Thung, F.; Wang, S.; Lo, D.; Lawall, J. Automatic Recommendation of API Methods from Feature Requests. In: International Conference on Automated Software Engineering. pp. 290-300. 2013.
Publicado
24/10/2016
Como Citar
HERNÁNDEZ, Luisa; AFONSO JÚNIOR, Paulo; COSTA, Heitor.
API Recommendation System for Software - Game Category. In: SIMPÓSIO BRASILEIRO DE QUALIDADE DE SOFTWARE (SBQS), 15. , 2016, Maceió.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2016
.
p. 64-78.
DOI: https://doi.org/10.5753/sbqs.2016.15126.