Aplicando reuso de software na construção de ferramentas de engenharia reversa

  • Felipe Gouveia de Freitas PUC-Rio
  • Julio Cesar Sampaio do Prado Leite PUC-Rio

Resumo


Engenharia reversa é uma área de interesse emergente principalmente pelo volume de sistemas legados que precisam evoluir. Diz-se engenharia reversa, porque ao contrário da engenharia tradicional, partimos do produto para a sua definição. Portanto, antes de evoluir um determinado sistema de software, faz-se necessário reverte-lo à descrições mais abstratas para então modificá-lo. A engenharia reversa de sistemas representa um problema de grande complexidade computacional, no qual é constante a necessidade de interagir com humanos para complementar lacunas do conhecimento embutido em software legados. Por outro lado, é imprescindível o auxílio de ferramentas computacionais. Este trabalho propõe a aplicação do paradigma Draco na construção de ferramentas de engenharia reversa. A proposta foi parcialmente validada por um estudo de caso, no qual foram recuperadas informações a nível de desenho utilizando-se diferentes notações.

Palavras-chave: engenharia reversa, reuso de software, Draco-PUC, ferramentas de engenharia reversa

Referências

G. Booch. Object Oriented Analysis and Design with Applications, second edition. Benjamin/Cummings 1994

Bergmann, U, Prado, A. F., Leite, J.C.S.P., Desenvolvimento de Sistemas Orientados a Objetos Utilizando o Sistema Transformacional Draco-PUC, Em Anais do X Simpósio Brasileiro de Engenharia de Software, Sociedade Brasileira de Engenharia de Software, José Carlos Maldonado, ed., São Carlos, 1996, pp. 173-188.

C.O. Braga. Documentu Um sistema para a geração de documentação hipertextual para o desenvolvedor de software. Dissertação de Mestrado; Departamento de Informática; Puc-Rio; 1996

Campo, M.R., Price, R.T. Um Framework Reflexivo para Ferramentas de Visualização de Software, Em Anais do X Simpósio Brasileiro de Engenharia de Software, Sociedade Brasileira de Engenharia de Software, José Carlos Maldonado, ed., São Carlos, 1996, pp. 1583-172.

James H. Cross, T. Dean Hendrix. Using Generalized Markup and SGML for Reverse Engineering Graphical Representation os Software. Second Working Conference on Reverse Engineering, 1995.

D.R.Harris, A.S.Yeh, H.B.Reubenstein. Extracting Architectural Features from Source Code. Automated Software Engineering, 3(1/2), June 1996.

H.E. Edwards; M. Munro. RECAST - Reverse Engineering from COBOL to SSADM. Working Conference on Reverse Engineering; May 1993, Baltimore, Maryland

Peter Freeman. A Conceptual Analysis of the Draco Approach to Constructing Software Systems. IEEE Transactions on Software Enginnering, SE-13(7):830-844, July 1987.

F.G. Freitas. A Geração de Parsers da Máquina DRACO-PUC. Trabalho Final de Curso - Engenharia de Computação; Departamento de Informática; Puc-Rio; 1994

F.G.Freitas. VG Um visualizador gráfico genérico. Projeto Final de Programação; Departamento de Informática; Puc-Rio; 1996

F.G. Freitas. Aplicando técnicas de reuso de software na construção de ferramentas de engenharia reversa. Dissertação de Mestrado; Departamento de Informática; Puc-Rio; 1997

Stan Jarzabek, Tan Poh Keam. Design of a Generic Reverse Engineering Assistant Tool. Second Working Conference on Reverse Engineering, 1995.

Leite, C.S.P. Recovering business rules from structured analysis specifications, In Proceedings of the WCRE '95, IEEE Computer Society Press, Los Alamitos, CA, pp. 13-21

J.C.Leite. Working Results on Software Re-Engineering. Software Engineering Notes 21(2) March 1996.

Leite, C.S.P, Prado, A.F., Sant"Anna, M. Draco-PUC, Experiências e Resultados de Re-Engenharia de Software, Em Anais do VI Simpósio Brasileiro de Engenharia de Software, Sociedade Brasileira de Engenharia de Software, Daltro Nunes, ed. Gramado, 1992, pp. 115-128.

J.C.Leite, M.Sant'Anna, F.G.Freitas. Draco-PUC: a Technology Assembly for Domain Oriented Software Development. Third Intemational Conference on Software Reuse (Proceedings) 1994.

Leite, J.C.S.P., Sant'Anna, M., Freitas, F.G., O Uso do Paradigma Transformacional no Porte de Programas Cobol, Em Anais do IX Simpósio Brasileiro de Engenharia de Software, Sociedade Brasileira de Engenharia de Software, Jäelson Castro, ed, Recife 1995, pp. 397-414.

Paulo C. Masiero. Análise de Sistemas pelo Método de Jackson. ICMSC-USP, 1990

https//cuiunige.ch/-scg/FreeDB/PreeDB.6.html

James M. Neighbors, T. Biggerstaff, A. Perlis. Draco: A Method for Engineering Reusable Software Systems. Software Reusability, Addison-Wesley 1989.

James M. Neighbors. The Draco Approach to Constructing Software from Reusable Components. IEEE Transactions on Software Enginnering, SE-10(5):564-574, Sep. 1984.

Penteado, R.A.D., Germano, F.S.R., Masiero, P.C. Engenharia Reversa Orientada a Objetos do Ambiente StatSim, Em Anais do 1X Simpósio Brasileiro de Engenharia de Software, Sociedade Brasileira de Engenharia de Software, Jaelson Castro, ed,, Recife 1995, pp. 345-362.

António F. do Prado. Estratégia de Re-Engenharia de Software Orientada a Domínios. PhD thesis, Pontifícia Universidade Católica do Rio de Janeiro, 1992.

P.G.Selfridge, R.C.Walters, E.J.Chikofsky. Challenges to the Field of Reverse Engineering. Working Conference on Reverse Engineering, 1993.

James Rumbaugh, Michael Blaha, William Premerlani, Fredrick Eddy and William Lorensen. Object Oriented Modeling and Design. Prentice Hall ISBN 0-13-629841-9, 1991

Julian Smart. wxWindows User Manual. University of Edinburgh. Artificial Intelligence Applications. Institute. 80 South Bridge, Edinburgh. 1995

T.J. Biggerstaff, B.G.Mitbander, D.E. Webster. Program Understanding and the Concept Assignment Problem. Communications of The ACM, 37(5), May 1994.

Linda M. Wills, James H. Cross II. Recent Trends and Open Issues in Reverse Engineering. Automated Software Engineering, 3(1/2), June 1996.

http://www.ozemail.com.au/~adavison/wxweb.html

http://www.aiai.ed.ac.uk/~jacs/wxwin.html
Publicado
15/10/1997
FREITAS, Felipe Gouveia de; LEITE, Julio Cesar Sampaio do Prado. Aplicando reuso de software na construção de ferramentas de engenharia reversa. In: SIMPÓSIO BRASILEIRO DE ENGENHARIA DE SOFTWARE (SBES), 11. , 1997, Recife/PE. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 1997 . p. 265-280. DOI: https://doi.org/10.5753/sbes.1997.24053.