• Aucun résultat trouvé

Genetic progress attained in the selection program of Florida breed of goats in Spain

2. Statistical analysis

A partir da análise preliminar realizada com a ferramenta ExMinerSOF em um am- biente de desenvolvimento real, mesmo que em um contexto reduzido, pudemos elencar alguns pontos de melhoria que possam torna-la mais robusta e eficaz para uso. Abaixo listamos as melhorias e trabalhos futuros:

• As stack traces mineradas têm o StackOveflow como fonte. Nós estamos cientes de que os relatórios de falha reportados por aplicações comerciais podem ser diferente dos que foram encontrados nesse estudo e que esse conjunto é uma pequena porcen- tagem de aplicações existentes. Para resolver essa ameaça, é possível implementar o processo de mineração como um componente para ser estendido por outros siste- mas de relatório. Portanto, a mineração se tornaria independente do repositório de origem, podendo ser o StackOverflow, GitHub ou outro.

• O modelo de base de dados também pode ser abstraído para conter dados sobre stack traces sem uma relação direta com os atributos de postagens do StackO- verflow. Dessa forma, qualquer aplicação usaria esse componente para armazenar rastreamentos de pilha de várias fontes, incluindo, por exemplo, seus próprios re- latórios de falha. Além disso, a ferramenta ainda poderia considerar não somente as interfaces excepcionais mineradas de forma dinâmica, mas também as interfaces excepcionais descobertas através de ferramentas de análise estática aplicadas a de- terminadas APIs. Assim, a ferramenta teria uma base de dados ainda mais rica para dar maior suporte as necessidades do desenvolvedor.

• Um outro incremento pode ser feito na forma como o contexto do desenvolvedor é identificado pela ferramenta ExMinerSOF. Outras particularidades poderiam ser usadas para compor o termo consultado proativamente pela ferramenta e para tornar mais rápida o retorno da recomendação ao desenvolvedor. Somado a isso, a utilização de heurísticas mais elaboradas, como a utilização de ranqueamento de resultados, proporcionaria sugestões mais diretas e que sejam realmente úteis ao desenvolvedor. • A forma como os dados são visualizados pelo desenvolvedor também poderiam ser

aprimorados. Alguns estudos usam a visualização de grafos para representar stack traces [8][17]. Essa visualização pode ajudar na compreensão do fluxo excepcional e outras informações a partir de uma recomendação.

• Sobre as análises, no futuro será possível realizar um experimento em ambiente real mais completo, verificando, por exemplo, o desempenho da ferramenta em relação ao tempo de espera das recomendações e outras métricas que possam caracterizar a sua utilidade. Além disso, será possível realizar um comparativo da ferramenta proposta com outras ferramentas, como as que foram mencionadas na Seção 6.2.

Referências

[1] AMINTABAR, Vahid; HEYDARNOORI, Abbas; GHAFARI, Mohammad. Excepti- onTracer: a solution recommender for exceptions in an integrated development envi- ronment. In: Proceedings of the 2015 IEEE 23rd International Conference on Program Comprehension. IEEE Press, 2015. p. 299-302.

[2] BARTH, Fabrício Jailson. Uma breve introdução ao tema Recuperação de Informa- ção.

[3] BLOCH, Joshua. Effective java. Pearson Education India, 2008.

[4] COELHO, Roberta; RASHID, Awais; VON STAA, Arndt; NOBLE, James; KU- LESZA, Uirá; LUCENA, Carlos. A catalogue of bug patterns for exception handling in aspect-oriented programs. In: Proceedings of the 15th Conference on Pattern Lan- guages of Programs. ACM, 2008. p. 23.

[5] COELHO, Roberta; ALMEIDA, Lucas; GOUSIOS, Georgios; VAN DEURSEN, Arie. Unveiling exception handling bug hazards in Android based on GitHub and Google code issues. In: Proceedings of the 12th Working Conference on Mining Software Repositories. IEEE Press, 2015. p. 134-145.

[6] CORDEIRO, Joel; ANTUNES, Bruno; GOMES, Paulo. Context-based recommen- dation to support problem solving in software development. In: Recommendation Systems for Software Engineering (RSSE), 2012 Third International Workshop on. IEEE, 2012. p. 85-89.

[7] CORDEIRO, Joel; ANTUNES, Bruno; GOMES, Paulo. Context-based search to overcome learning barriers in software development. In: Proceedings of the First International Workshop on Realizing AI Synergies in Software Engineering. IEEE Press, 2012. p. 47-51.

[8] DAL SASSO, Tommaso; MOCCI, Andrea; LANZA, Michele. Misery loves company: CrowdStacking traces to aid problem detection. In: Software Analysis, Evolution and Reengineering (SANER), 2015 IEEE 22nd International Conference on. IEEE, 2015. p. 131-140.

[9] DE SOUZA, Lucas BL; CAMPOS, Eduardo C.; MAIA, Marcelo de A. Ranking crowd knowledge to assist software development. In: Proceedings of the 22nd International Conference on Program Comprehension. ACM, 2014. p. 72-82.

[10] DHALIWAL, Tejinder; KHOMH, Foutse; ZOU, Ying. Classifying field crash reports for fixing bugs: A case study of Mozilla Firefox. In: Software Maintenance (ICSM), 2011 27th IEEE International Conference on. IEEE, 2011. p. 333-342.

[11] GOSLING, James. The Java language specification. Addison-Wesley Professional, 2000.

[12] JO, Jang-Wu; Chang, Byeong-Mo; Yic, Kwangkeun; e Choe, Kwang-Moo. An un- caught exception analysis for Java. Journal of systems and software, v. 72, n. 1, p. 59-69, 2004.

[13] KECHAGIA, Maria. Improvement of applications’ stability through robust APIs. In: Proceedings of the 29th ACM/IEEE international conference on Automated software engineering. ACM, 2014. p. 907-910.

[14] KECHAGIA, Maria; MITROPOULOS, Dimitris; SPINELLIS, Diomidis. Improving the quality of APIs through the analysis of software crash reports. In: OASIcs- OpenAccess Series in Informatics. Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik, 2013.

[15] KECHAGIA, Maria; SPINELLIS, Diomidis. Undocumented and unchecked: excep- tions that spell trouble. In: Proceedings of the 11th Working Conference on Mining Software Repositories. ACM, 2014. p. 312-315.

[16] KIM, Sunghun; ZIMMERMANN, Thomas; PREMRAJ, Rahul; BETTENBURG, Ni- colas; SHIVAJI, Shivkumar. Predicting method crashes with bytecode operations. In: Proceedings of the 6th India Software Engineering Conference. ACM, 2013. p. 3-12. [17] KIM, Sunghun; ZIMMERMANN, Thomas; NAGAPPAN, Nachiappan. Crash graphs: An aggregated view of multiple crashes to improve crash triage. In: Dependable Sys- tems & Networks (DSN), 2011 IEEE/IFIP 41st International Conference on. IEEE, 2011. p. 486-493.

[18] LATOZA, Thomas D.; VENOLIA, Gina; DELINE, Robert. Maintaining mental mo- dels: a study of developer work habits. In: Proceedings of the 28th international conference on Software engineering. ACM, 2006. p. 492-501.

[19] LINARES-VÁSQUEZ, Mario; BAVOTA, Gabriele; DI PENTA, Massimiliano; OLI- VETO, Rocco; POSHYVANYK, Denys. How do api changes trigger stack overflow discussions? a study on the android sdk. In: proceedings of the 22nd International Conference on Program Comprehension. ACM, 2014. p. 83-94.

[20] MARTIN, Robert C.; RIEHLE, Dirk; BUSCHMANN, Frank. Pattern languages of program design 3. 1998.

[21] MILLER, Robert; TRIPATHI, Anand. Issues with exception handling in object- oriented systems. ECOOP’97—Object-Oriented Programming, p. 85-103, 1997. [22] PARNIN, Chris; TREUD, Christoph; GRAMMEL; and STOREY, Margaret-

Anne.Crowd documentation: Exploring the coverage and the dynamics of API dis- cussions on Stack Overflow. Georgia Institute of Technology, Tech. Rep, 2012. [23] PONZANELLI, Luca; BACCHELLI, Alberto; LANZA, Mario. Leveraging crowd

knowledge for software comprehension and development. In: Software Maintenance and Reengineering (CSMR), 2013 17th European Conference on. IEEE, 2013. p. 57-66

[24] PONZANELLI, Luca; BAVOTA, Gabriele; DI PENTA, Massimiliano; OLIVETO, Rocco; LANZA, Michele. Mining StackOverflow to turn the IDE into a self-confident programming prompter. In: Proceedings of the 11th Working Conference on Mining Software Repositories. ACM, 2014. p. 102-111.

[25] RAHMAN, Md Mamunur; YEASMIN, Sabina; ROY, Chanchal K. Towards a context-aware IDE-based meta search engine for recommendation about program- ming errors and exceptions. In: Software Maintenance, Reengineering and Reverse Engineering (CSMR-WCRE), 2014 Software Evolution Week-IEEE Conference on. IEEE, 2014. p. 194-203.

[26] ROBILLARD, Martin; WALKER, Robert; ZIMMERMANN, Thomas. Recommen- dation systems for software engineering. Software, IEEE, v. 27, n. 4, p. 80-86, 2010. [27] SCHROTER, Adrian; BETTENBURG, Nicolas; PREMRAJ, Rahul. Do stack traces help developers fix bugs?. In: Mining Software Repositories (MSR), 2010 7th IEEE Working Conference on. IEEE, 2010. p. 118-121.

[28] SENA, Demóstenes; COELHO, Roberta; KULESZA, Uirá; BONIFACIO, Rodrigo. Understanding the exception handling strategies of Java libraries: an empirical study. In: Proceedings of the 13th International Workshop on Mining Software Repositories. ACM, 2016. p. 212-222.

[29] SINHA, Saurabh; SHAH, Hina; GORG, Carsten; JIANG, Shujuan; KIM, Mijung; and HARROLD, M. Jean. Fault localization and repair for Java runtime exceptions. In: Proceedings of the eighteenth international symposium on Software testing and analysis. ACM, 2009. p. 153-164.

[30] SINHA, Saurabh; HARROLD, Mary Jean. Criteria for testing exception-handling constructs in Java programs. In: Software Maintenance, 1999.(ICSM’99) Proceedings. IEEE International Conference on. IEEE, 1999. p. 265-274.

[31] THOMAS, David. The deplorable state of class libraries. Journal of Object Techno- logy, v. 1, n. 1, p. 21-27, 2002.

[32] TREUDE, Christoph; BARZILAY, Ohad; STOREY, Margaret-Anne. How do pro- grammers ask and answer questions on the web?: Nier track. In: Software Engineering (ICSE), 2011 33rd International Conference on. IEEE, 2011. p. 804-807.

[33] TREUDE, Christoph; ROBILLARD, Martin P. Augmenting API Documentation with Insights from Stack Overflow.

[34] VASILESCU, Bogdan; FILKOV, Vladimir; SEREBRENIK, Alexander. StackOver- flow and GitHub: Associations between software development and crowdsourced kno- wledge. In: Social Computing (SocialCom), 2013 International Conference on. IEEE, 2013. p. 188-195.

[35] WANG, Shaohua; KHOMH, Foutse; ZOU, Ying. Improving bug localization using correlations in crash reports. In: Mining Software Repositories (MSR), 2013 10th IEEE Working Conference on. IEEE, 2013. p. 247-256.

[36] WANG, Wei; GODFREY, Michael W. Detecting API usage obstacles: A study of iOS and Android developer questions. In: Proceedings of the 10th Working Conference on Mining Software Repositories. IEEE Press, 2013. p. 61-64.