Padrões de Projeto em Java: Um Estudo Prático sobre a Utilização e Benefícios
Resumo
Os padrões de projeto são definidos como soluções reusáveis para problemas recorrentes. Essas soluções visam diversos benefícios para o projeto, tais como: facilidade de comunicação, uma vez que os padrões de projeto trazem um vocabulário comum; facilidade de manutenção e organização do projeto. No entanto, é necessário que o projeto seja modelado para a aplicação correta dos padrões de projeto e nem sempre as organizações disponibilizam tempo para tal modelagem. Este artigo apresenta os resultados de um questionário aplicado à desenvolvedores de softwareJava com o objetivo de investigar seus conhecimentos, incentivos e dificuldades no uso de padrões de projeto. Como resultado, observou-se grande influência da cultura da empresa e seus processos adotados.
Referências
Brian Foote (1992). “A Fractal Model of the Lifecycles of Reusable Objects”. OOPSLA Workshop on Reuse. Vancouver, Canada.
David Budgen (2013). "Design Patterns: Magic or Myth?" IEEE Software, vol.30, no. 2, pp. 87-90.
Nelio Cacho, Claudio Sant'Anna, Eduardo Figueiredo, Francisco Dantas, Alessandro Garcia, and Thais Batista (2014). “Blending design patterns with aspects: A quantitative study”. Journal of Systems and Software (JSS), vol. 98, pp. 117-139.
Nelio Cacho, Claudio Sant'Anna, Eduardo Figueiredo, Alessandro Garcia, Thais Batista, and Carlos Lucena (2006). “Composing Design Patterns: A Scalability Study of Aspect-Oriented Programming”. In proceedings of the 5th International Conference on Aspect Oriented Software Development (AOSD), pp. 109-121. Bonn, Germany.
Bruno Cardoso and Eduardo Figueiredo (2015). “Co-Occurrence of Design Patterns and Bad Smells in Software Systems: An Exploratory Study”. In proceedings of the Brazilian Symposium on Information Systems (SBSI). Goiania, GO.
Bruno Cardoso and Eduardo Figueiredo (2014). “Co-Occurrence of Design Patterns and Bad Smells in Software Systems: A Systematic Literature Review”. In proceedings of the Workshop on Software Modularity (WMod), co-allocated with CBSoft. Maceio, Brazil.
S. Easterbrook et al. (2008). "Selecting Empirical Methods for Software Engineering Research". Guide to advanced empirical software engineering. Springer-Verlag. p. 285-311, 2008.
Erich Gamma, Ralph Johnson, Richard Helm, John Vlissides (1995). “Design Patterns: Elements of Reusable Object-Oriented Software”. Pearson Education India.
Alessandro Garcia, Cláudio Sant'Anna, Eduardo Figueiredo, Uirá Kulesza, Carlos Lucena, and Arndt von Staa (2005). “Modularizing Design Patterns with Aspects: A Quantitative Study”. In proceedings of the 4th International Conference on Aspect Oriented Software Development (AOSD), pp. 3-14.
William F. Opdyke and Ralph E. Johnson (1990). “Refactoring: An Aid in Designing Application Frameworks and Evolving Object-Oriented Systems”. In SOOPPA Conference Proceedings, pages 145–161.
Wohlin, C., Runeson, P., Höst, M., Ohlsson, M. C., Regnell, B., and Wesslén, A. (2000) “Experimentation in Software Engineering: an Introduction.” Kluwer Academic Publishers.