A Method Based on Naming Similarity to Identify Reuse Opportunities

  • Johnatan Oliveira Federal University of Minas Gerais (UFMG)
  • Eduardo Fernandes Federal University of Minas Gerais (UFMG)
  • Maurício Souza Federal University of Minas Gerais (UFMG)
  • Eduardo Figueiredo Federal University of Minas Gerais (UFMG)

Resumo


Software reuse is a development strategy in which existing software components, called reusable assets, are used in the development of new software systems. There are many advantages of reuse in software development, such as minimization of development efforts and improvement of software quality. New methods for reusable asset extraction are essential to achieve these advantages. Extraction methods may be used in different contexts including software product lines derivation. However, few methods have been proposed in literature for reusable asset extraction and recommendation of these reuse opportunities. In this paper, we propose a method for extraction of reuse opportunities based on naming similarity of two types of object-oriented entities: classes and methods. Our method, called JReuse, computes a similarity function to identify similarly named classes and methods from a set of software systems from a domain. These classes and methods compose a repository with reuse opportunities. We also present a prototype tool to support the extraction by applying our method. We evaluate the method with 38 e-commerce information systems mined from GitHub. As a result, we observe that our method is able to identify classes and methods that are relevant in the e-commerce domain.

Palavras-chave: Software reuse, reusable assets, naming similarity, tool

Referências

Aires, N. B., Sales, P., Lopes, L. V., van Vessen Jr, M., Machado, E. F., & da Silva, C. F. (2015). Proposta do Uso de Análise de Sentimento no Desenvolvimento de uma nova Métrica de Sustentabilidade. In: Simpósio Brasileiro de Sistemas de Informação. SBC. p. 455-458.

Ardini, Amalia et al. 2014. Social computing for software engineering: A mapping study. In: Computer Science Review, v. 13, p. 75-93.

Ardis, Mark et al. 2015. SE 2014: Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering. Computer, v. 48, n. 11, p. 106-109.

Bao, Lingfeng et al. 2015. Reverse engineering time-series interaction data from screen-captured videos. In: Software Analysis, Evolution and Reengineering (SANER), 2015 IEEE 22nd International Conference on. IEEE. p. 399-408.

Beck, Kent et al. 2001. The agile manifesto. Disponível em: www.agilemanifesto.org. Acesso em: fev/2016.

Boehm, B. 2006. A view of 20th and 21st century software engineering. In Proceedings of the 28th international conference on Software engineering (pp. 12-29). ACM.

Brasil. 2014. Portaria Inep n. 265, de 02 de junho de 2014.

Capretz, Luiz F., & Ahmed, F. 2010. Making sense of software development and personality types. In IT professional, 12(1), 6-13.

Dhillon, Balbir S. 2007. Human reliability and error in transportation systems. Springer Science & Business Media.

França, César; Sharp, Helen; Da Silva, Fabio Q. B. 2014. Motivated software engineers are engaged and focused, while satisfied ones are happy. In: Proceedings of the 8th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement. ACM. p. 32.

de Freitas Rocha, E. C. 2015. Qualificação e reconhecimento de profissionais de Sistemas de Informação. In: Simpósio Brasileiro de Sistemas de Informação. SBC. p. 603-610.

Furnham, Adrian. 1996. The big five versus the big four: the relationship between the Myers-Briggs Type Indicator (MBTI) and NEO-PI five factor model of personality. In Personality and Individual Differences, v. 21, n. 2, p. 303-307. DOI= http://doi:10.1016/0191-8869(96)00033-5

IF Sudeste MG. 2014. Matriz curricular do curso de Sistemas de Informação.

Jung, C. G. 1976. Tipos Psicológicos. Rio de Janeiro: Zahar.

Lenberg, Per; Feldt, Robert; Wallgren, Lars-Göran. 2014. Towards a behavioral software engineering. In Proceedings of the 7th International Workshop on Cooperative and Human Aspects of Software Engineering. ACM. p. 48-55.

Licorish, Sherlock A.; Macdonell, Stephen G. 2015. Communication and personality profiles of global software developers. Information and Software Technology, v. 64, p. 113-131.

Licorish, Sherlock; Philpott, Anne; Macdonell, Stephen G. 2009. Supporting agile team composition: A prototype tool for identifying personality (in) compatibilities. In: Proceedings of the 2009 ICSE Workshop on Cooperative and Human Aspects on Software Engineering. IEEE Computer Society. p. 66-73.

Marcuse, H. 1968. Eros e civilização. Zahar, Rio de Janeiro.

Meister, D. 1999. The history of human factors and ergonomics. Lawrence Erlbaum Associates.

Pessoni, V. V., Federson, F. M., & Vincenzi, A. M. R. 2015. Learning Difficulties in Computing Courses: Cognitive Processes Assessment Methods Research and Application. In In: Simpósio Brasileiro de Sistemas de Informação. SBC. p. 31-38.

Pfleeger, Shari Lawrence. 2004. Engenharia de software: teoria e prática. São Paulo: Prentice Hall.

Pressman, Roger S. 2011. Engenharia de software: uma abordagem profissional. 7ª Edição. Ed: McGraw Hill.

Proctor, Robert W.; Van Zandt, Trisha. 2008. Human factors in simple and complex systems. CRC press.

Quenk, Naomi L. 2009. Essentials of Myers-Briggs type indicator assessment. John Wiley & Sons.

Reason, James. 1990. Human error. Cambridge university press.

Sommerville, Ian. 2003. Engenharia de software. Addison Wesley, São Paulo.

Topi, H., Valacich, J. S., Wright, R. T., Kaiser, K. M., Nunamaker Jr, J. F., Sipior, J. C., & De Vreede, G. J. 2010. Curriculum guidelines for undergraduate degree programs in information systems. ACM/AIS task force.

Vasilescu, Bogdan. 2014. Human aspects, gamification, and social media in collaborative software engineering. In Companion Proceedings of the 36th International Conference on Software Engineering. ACM. p. 646-649.

Vyas, Dhaval. 2013. Ethnography of software maintenance activities in an industrial engineering setup. In: Proceedings of the 11th Asia Pacific Conference on Computer Human Interaction. ACM. p. 242-246.

Wohlin, C., Runeson, P., Höst, M., Ohlsson, M. C., Regnell, B., & Wesslén, A. 2012. Experimentation in software engineering. Springer Science & Business Media.
Publicado
17/05/2016
OLIVEIRA, Johnatan; FERNANDES, Eduardo; SOUZA, Maurício; FIGUEIREDO, Eduardo. A Method Based on Naming Similarity to Identify Reuse Opportunities. In: SIMPÓSIO BRASILEIRO DE SISTEMAS DE INFORMAÇÃO (SBSI), 12. , 2016, Florianópolis. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2016 . p. 305-312. DOI: https://doi.org/10.5753/sbsi.2016.5976.