Reengenharia com Uso de Padrões de Projeto

  • Maria Istela Cagnin UFSCar
  • Rosângela D. Penteado UFSCar
  • Fernão S. R. Germano USP
  • Paulo C. Masiero USP

Resumo


O processo de reengenharia de um sistema originalmente desenvolvido orientado a procedimentos em linguagem C foi conduzido com mudança de paradigma para orientação a objetos. Esse processo é precedido pela engenharia reversa orientada a objetos do sistema legado usando o método Fusion/RE. Foi também precedido por uma primeira fase em que é mantida a linguagem C, utilizando um processo de segmentação em que o código é reestruturado para atender a algumas características de orientação a objetos. Neste trabalho usa-se a linguagem Java e o Banco de Dados Relacional Sybase fazendo-se três variantes de implementação de acordo com os três modos alternativos sugeridos no padrão Persistent Layer. O padrão CRUD é usado para o projeto dessa camada de persistência. As operações do padrão CRUD são implementadas: nas classes da aplicação (primeiro modo); em classes específicas para cada classe da aplicação (segundo modo) e em uma classe Broker, que faz o mapeamento de qualquer tipo de objeto para o banco de dados relacional (terceiro modo). Modelos de objetos das diferentes implementações e exemplos de código fonte são incluídos no trabalho para ilustrar a efetividade da evolução alcançada com as três configurações. Essas são usadas para avaliar o processo de segmentação que resulta em uma implementação similar àquela obtida no primeiro modo sugerido para implementar o padrão Persistent Layer, pois a herança envolvida nela é praticamente restrita à assinatura nas classes abstratas. Isto é compatível com a falta de herança da linguagem C.

Palavras-chave: Reengenharia, Orientação a Objetos, Padrões de Projeto Persistent Layer

Referências

Sybase - Sybase Inc. URL: [link].

Java - JDBC Basics. URL: [link].

Yoder, J.W.; Johnson, RE.; Wilson, Q.D.— Connecting Business Objects to Relational Databases. In: Conference on the Pattern Languages of Programs, 5, Monticello-IL. EUA. Proceedings. 1998.

Penteado, R. A. D.- Um Método para Engenharia Reversa Orientada a Objetos. Tese de Doutorado — Instituto de Fisica de São Carlos, Universidade de São Paulo. São Carlos, 237 p.. 1996.

Penteado, R., Germano, F., Masiero, P. C. - An Overall Process Based on Fusion to Reverse Engineering Legacy Code. In: Working Conference Reverse Engineering. 3. Monterey-California. Proceedings. IEEE. p. 179-188. 1996.

Rational Corporation - Unified Modeling Language. URL: [link].

Penteado, R.; Masiero, P. C; Cagnin, M.L - An Experiment of Legacy Code Segmentation to Improve Maintainability. European Conference on Software Maintenance and Reengineering (CSMR'99), 3, Amsterdan. Proceedings. IEEE, p. 111-119. 1999.

Cagnin, M. I, Penteado,R. - Passos para Condução de Reengenharia de Sistemas Procedimentais para Sistemas Orientados a Objetos, Preservando a Linguagem de Implementação Original. Documento de Trabalho — Departamento de Computagao/UFSCar. Sao Carlos, 18 p.. Janeiro, 1999.

Taschwer, M.; Rauner-Reithmayer, D.; Mittermeir, R. — Gerating Objects from C Code — Features of the CORET Tool-Set. In: European Conference on Software Maintenance and Reengineering (CSMR'99). 3, Amsterdan-The Netherlands. Proceedings. IEEE, p. 91-100. 1999.

Gall, H., Klsch R. - Capsule Oriented Reverse Engineering for Software Reuse. In: European Software Engineering Conference, ESEC'93, 4. Garmish-Partenkirchen, Germany, p. 418-33. 1993.

Gall, H., Klésch R.- Finding Objects in Procedural Programs: An Alternative Approach. In: Working Conference on Reverse Engineering, 2. Toronto-Canada. Proceedings. IEEE Computer Society Press, p. 208-216. 1995.

Buschmann, Frank; et al. - Pattern-Oriented Software Architeture. European Conference on Object-Oriented Programming, 11. Finland. Proceedings. Finland. 1997.

Gamma, E., Helm, R., Johnson, R., Vlissides, J. - Design Patterns Elements of Reusable of Object-Oriented Software. Reading-MA. Addison-Wesley. 1995

Jacobson, L; Lindstrom, F.- Re-engineering of Old Systems to an Object-Oriented Architecture. In: OOPSLA 91. Proceedings. ACM. p. 340-350. 1991.

Harel, D. - STATECHARTS: A Visual Formalism to Complex Systems. Science of Computer Programming, v. 8, p. 231-274. 1987.

Symantec Corporation. URL: [link].

Cagnin, M. I. — Avaliação das Vantagens quanto à Facilidade de Manutenção e Expansão de Sistemas Legados Sujeitos a Engenharia Reversa e Reengenharia. Dissertação de Mestrado — Departamento de Computação, Universidade Federal de São Carlos. São Carlos, 101 p. agosto, 1999.
Publicado
13/10/1999
CAGNIN, Maria Istela; PENTEADO, Rosângela D.; GERMANO, Fernão S. R.; MASIERO, Paulo C.. Reengenharia com Uso de Padrões de Projeto. In: SIMPÓSIO BRASILEIRO DE ENGENHARIA DE SOFTWARE (SBES), 13. , 1999, Florianópolis/SC. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 1999 . p. 244-259. DOI: https://doi.org/10.5753/sbes.1999.23927.