Identificação de Padrões de Características Estruturais em Software Orientado a Objetos
Resumo
Manter os softwares criados em funcionamento e com qualidade é um grande desafio. A compreensão profunda do software pode favorecer o controle dos impactos das modificações realizadas e a gestão do processo de manuntenção de software. Todavia, para alcançar isso, são necessários recursos que permitam a avaliação apropriada do software. Buscando contribuir com um recurso desta natureza, um trabalho anterior das autoras do presente artigo define um modelo, denominado Little House, que consiste em uma figura macroscópica genérica das estruturas de software orientado a objetos. Little House modela o software como um grafo com cinco vértices, denominados componentes, que correspondem a conjuntos de classes conectados entre si. O presente trabalho tem por objetivo caracterizar qualitativamente esses componentes por meio de estudos de caso com cinco softwares Java. O estudo consistiu em inspecionar manualmente todas as classes a fim de identificar seus propósitos. A análise dos resultados revela como as classes dos softwares são distribuídas entre os componentes de Little House conforme os propósitos delas. Os resultados deste trabalho identificam padrões de características estruturais de software que indicam como os softwares com os quais temos que lidar são estruturados.
Palavras-chave:
Identificação de Padrões, Características Estruturais, Software Orientado a Objetos
Referências
Baxter, G., Frean, M., Noble, J., Rickerby, M., Smith, H., Visser, M., Melton, H., and Tempero, E. (2006). Undertanding the shape of Java software. In OOPSLA’06, Oregon, Portland, USA.
Broder, A., Kumar, R., Maghoul, F., Raghavan, P., Rajagopalan, S., Stata, R., Tomkins, A., and Wiener, J. (2000). Graph structure in the web. In WWW9 Conference, pages 309–320.
Czibula, I. G. and Czibula, G. (2008). Clustering based automatic refactorings identification. In Proceedings of the 2008 10th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing, pages 253–256, Washington, DC, USA. IEEE Computer Society.
Ferreira, K. A. M. (2006). Avaliação de Conectividade em Sistemas Orientados por Objetos. Master Thesis - Federal University of Minas Gerais. Belo Horizonte, Brazil.
Ferreira, K. A. M., Bigonha, M. A., Bigonha, R. S., and Gomes, B. M. (2011). Software evolution characterization - a complex network approach. In X Brazilian Simposium on Software Quality - SBQS’2011, Curitiba, Parana, Brazil. ́
Jancke, S. (2010). Smell Detection in Context. Diploma thesis. University of Bonn. Bonn, Germany., http://dirkriehle.com/computer-science/research/dissertation/. Kessentini, M., Vaucher, S., and Sahraoui, H. (2010). Deviance from perfection is a better criterion than closeness to evil when identifying risky code. In Proceedings of the IEEE/ACM International Conference on Automated Software Engineering, ASE ’10, pages 113–122, New York, NY, USA. ACM.
Louridas, P., Spinellis, D., and Vlachos, V. (2008). Power laws in software. 18(1).
Newman, M. E. J. (2003). The structure and function of complex networks. In SIAM Reviews, volume 45, pages 167–256.
Seng, O., Stammel, J., and Burkhart, D. (2006). Search-based determination of refactorings for improving the class structure of object-oriented systems. In Proceedings of the 8th Annual Conference on Genetic and Evolutionary Computation, GECCO ’06, pages 1909–1916, New York, NY, USA. ACM.
Sharafi, Z. (2011). A systematic analysis of software architecture visualization techniques. In Proceedings of the 2011 IEEE 19th International Conference on Program Comprehension, ICPC ’11, pages 254–257, Washington, DC, USA. IEEE Computer Society.
Wen, L., Dromey, R. G., and Kirk, D. (2009). Software engineering and scale-free networks. Trans. Sys. Man Cyber. Part B, 39:648–657.
Wettel, R. and Lanza, M. (2007). Visualizing software systems as cities. In In Proc. of the 4th IEEE International Workshop on Visualizing Software for Understanding and Analysis, pages 92–99. Society Press.
Yao, Y., Huang, S., Ren, Z.-p., and Liu, X.-m. (2009). Scale-free property in large scale object-oriented software and its significance on software engineering. In Proceedings of the 2009 Second International Conference on Information and Computing Science - Volume 03, pages 401–404, Washington, DC, USA. IEEE Computer Society.
Broder, A., Kumar, R., Maghoul, F., Raghavan, P., Rajagopalan, S., Stata, R., Tomkins, A., and Wiener, J. (2000). Graph structure in the web. In WWW9 Conference, pages 309–320.
Czibula, I. G. and Czibula, G. (2008). Clustering based automatic refactorings identification. In Proceedings of the 2008 10th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing, pages 253–256, Washington, DC, USA. IEEE Computer Society.
Ferreira, K. A. M. (2006). Avaliação de Conectividade em Sistemas Orientados por Objetos. Master Thesis - Federal University of Minas Gerais. Belo Horizonte, Brazil.
Ferreira, K. A. M., Bigonha, M. A., Bigonha, R. S., and Gomes, B. M. (2011). Software evolution characterization - a complex network approach. In X Brazilian Simposium on Software Quality - SBQS’2011, Curitiba, Parana, Brazil. ́
Jancke, S. (2010). Smell Detection in Context. Diploma thesis. University of Bonn. Bonn, Germany., http://dirkriehle.com/computer-science/research/dissertation/. Kessentini, M., Vaucher, S., and Sahraoui, H. (2010). Deviance from perfection is a better criterion than closeness to evil when identifying risky code. In Proceedings of the IEEE/ACM International Conference on Automated Software Engineering, ASE ’10, pages 113–122, New York, NY, USA. ACM.
Louridas, P., Spinellis, D., and Vlachos, V. (2008). Power laws in software. 18(1).
Newman, M. E. J. (2003). The structure and function of complex networks. In SIAM Reviews, volume 45, pages 167–256.
Seng, O., Stammel, J., and Burkhart, D. (2006). Search-based determination of refactorings for improving the class structure of object-oriented systems. In Proceedings of the 8th Annual Conference on Genetic and Evolutionary Computation, GECCO ’06, pages 1909–1916, New York, NY, USA. ACM.
Sharafi, Z. (2011). A systematic analysis of software architecture visualization techniques. In Proceedings of the 2011 IEEE 19th International Conference on Program Comprehension, ICPC ’11, pages 254–257, Washington, DC, USA. IEEE Computer Society.
Wen, L., Dromey, R. G., and Kirk, D. (2009). Software engineering and scale-free networks. Trans. Sys. Man Cyber. Part B, 39:648–657.
Wettel, R. and Lanza, M. (2007). Visualizing software systems as cities. In In Proc. of the 4th IEEE International Workshop on Visualizing Software for Understanding and Analysis, pages 92–99. Society Press.
Yao, Y., Huang, S., Ren, Z.-p., and Liu, X.-m. (2009). Scale-free property in large scale object-oriented software and its significance on software engineering. In Proceedings of the 2009 Second International Conference on Information and Computing Science - Volume 03, pages 401–404, Washington, DC, USA. IEEE Computer Society.
Publicado
11/07/2012
Como Citar
FERREIRA, Kecia A. M.; MOREIRA, Roberta C. N.; BIGONHA, Mariza A. S..
Identificação de Padrões de Características Estruturais em Software Orientado a Objetos. In: SIMPÓSIO BRASILEIRO DE QUALIDADE DE SOFTWARE (SBQS), 11. , 2012, Fortaleza.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2012
.
p. 218-232.
DOI: https://doi.org/10.5753/sbqs.2012.15318.