Uma Abordagem para Verificação de Similaridade entre Sistemas Orientados a Objetos

  • Paloma Maira de Oliveira IFMG / UFMG
  • Hudson Silva Borges UFMG
  • Marco Túlio Valente UFMG
  • Heitor Augustus Xavier Costa UFLA

Resumo


Neste artigo, apresenta-se uma abordagem quantitativa baseada em métricas de software para determinar similaridade entre sistemas orientados a objetos. Essa abordagem apresenta pelo menos as seguintes contribuições: (a) um mecanismo para obtenção de valores de referência para uma certa métrica de um sistema, em função dos diversos perfis de suas classes; (b) um mecanismo para obtenção de subconjuntos de sistemas similares dado um portfólio de sistemas, utilizando para isso de técnicas de clusterização; (c) um mecanismo para obtenção de subconjuntos de sistemas semelhantes, de acordo com um conjunto de métricas, utilizando para isso de conceitos de teoria de grafos. Adicionalmente, descreve-se no artigo uma aplicação real da abordagem proposta em um corpus de 86 sistemas de código aberto, totalizando cerca de 12 milhões de linhas de código. Os resultados obtidos mostram, por exemplo, que existe um grupo de 15 sistemas neste corpus com fortes indícios de similaridade. Nosso argumento é que tais sistemas apresentam provavelmente níveis bastante similares de qualidade interna.
Palavras-chave: Abordagem, Verificação de Similaridade, Sistemas Orientados a Objetos

Referências

Baggen, R., Correia, J. P., Schill, K., & Visser, J. (2011). Standardized code quality benchmarking for improving software maintainability. Software Quality Journal, 1-21.

Barabási, A. L.; Albert, R. (1999) “Emergence of Scaling in Random Networks”. Science 286(5439), 509-520.

Baxter, G.; Frean, M.; Noble, J.; Rickerby, M.; Smith, H.; Visser, M.; Melton, H.; Tempero, E. (2006) “Undertanding the Shape of Java Software”. In: OOPSLA’06, 397-412.

Clauset, A.; Shalizi, C. R.; Newman, M. E. J. (2009) “Power-Law Distributions in Empirical Data”. SIAM Rev. 51(4), 661-703.

Concas, G.; Marchesi, M.; Pinna, S.; Serra, N. (2007) “Power-Laws in a Large Object Oriented Software System”. IEEE Transaction Software Engineering, 33(10), 687-708.

Cormen, T.; Leiserson, C.; Rivest, R.; Cliford C. (2009) “Introduction to Algorithms”. 3rd edition, MIT Press.

Csardi G.; Nepusz T. (2006) “The IGraph Software Package for Complex Network Research”. InterJournal, Complex Systems 1695. Disponível em: http://igraph.sf.net.

Ferreira, K. A. M.; Bigonha, M. A. S.; Bigonha, R. S.; Mendes, L. F. O.; Almeida, H. C., (2011) “Identifying Thresholds for Object-Oriented Software Metrics”. The Journal of Systems and Software, 85(2), 244-257.

Louridas, P.; Spinellis, D.; Vlachos, V. (2008) “Power Laws in Software”. ACM Transactions on Software Engineering and Methodology, 18(1), 1-26.

Luijten, B.; Visser, J. (2010) “Faster Defect Resolution with Higher Technical Quality of Software”. In: 4th International Workshop on Software Quality and Maintainability (SQM 2010), Madrid, Spain, 10p.

Meyer, B. (2000) “Object-oriented Software Construction”, 2nd edition, Prentice-Hall.

Newman, M. E. J. (2005) “Power Laws, Pareto Distributions and Zipf’s Law”. Contemporary Physics, 46(5):323-351

R Development Core Team (2011) “R: A Language and Environment for Statistical Computing”, R Foundation for Statistical Computing, Vienna, Austria. ISBN 3- 900051-07-0. Disponível em: http://www.R-project.org/.

Shyam R. Chidamber and Chris F. Kemerer. (1994) “A metrics suite for object oriented design”. IEEE Transactions on Software Engineering, 20(6):476–493.

Simon, F.; Seng, O.; Mohaupt, T. (2006) “Code Quality Management: Technische Qualita ̈t Industrieller Softwaresysteme Transparent und Vergleichbar Gemacht”. Heidelberg, Germany: Dpunkt-Verlag.

Tufféry, S. (2011) “Association Analysis, in Data Mining and Statistics for Decision Making”, John Wiley & Sons.

Taube-Schock, C.; Walker, R. J.; Witten I. H. (2011). “Can We Avoid High Coupling?”. 25th European Conference on Object-Oriented Programming (ECOOP), 204-228.

Tempero, E.; Anslow, C.; Dietrich, J.; Han, T.; Li, J.; Lumpe, M.; Melton, H.; Noble, J. (2010) “The Qualitas Corpus: A Curated Collection of Java Code for Empirical Studies”. Asia-Pacific Software Engineering Conference (APSEC), 336-345. Associação para a Promoção da Excelência do Software Brasileiro - SOFTEX. (2011) “MPS.BR, Guia Geral 2011”. Disponível em http://www.softex.br.
Publicado
11/07/2012
DE OLIVEIRA, Paloma Maira; BORGES, Hudson Silva; VALENTE, Marco Túlio; COSTA, Heitor Augustus Xavier. Uma Abordagem para Verificação de Similaridade entre Sistemas Orientados a Objetos. In: SIMPÓSIO BRASILEIRO DE QUALIDADE DE SOFTWARE (SBQS), 11. , 2012, Fortaleza. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2012 . p. 24-38. DOI: https://doi.org/10.5753/sbqs.2012.15305.