Um Processo de Re-engenharia Econômico e Eficaz
Resumo
Neste artigo é proposto um processo de re-engenharia visando a re-estruturação de programas de modo a reduzir os custos de manutenção e, simultaneamente, aumentar a sua qualidade, em particular a confiabilidade, a manutenibilidade e a economicidade. O processo a ser descrito obtém, a partir do programa fonte original existente, um projeto modular estruturado, devidamente documentado e fácil de ser mantido. O processo é formado por diversas tarefas. Todas estas tarefas recebem apoio computacional. Em linhas gerais, o processo utiliza engenharia reversa baseada e analisadores sintáticos para tornar o programa disponível no repositório de uma ferramenta CASE. A seguir a ferramenta é utilizada para efetuar a re-engenharia. O processo pode ser adaptado a diversas linguagens de programação, através da definição da gramática destas linguagens.
Referências
Boehm, B. W.; "Software Engineering"; IEEE Computer v. C-25(12); pp. 1226-1241; Dez 1976.
Byrne, E.J.; "Software Reverse Engineering: A Case Study"; in Software Practice and Experience 21(12); dezembro 1991; pags 1349-1364
Canfora, G., Cimitile, A., Carlini, U.; "A Logic-Based Approach to Reverse Engineering Tools Production"; in IEEE Transactions on Software Engineering 18(12); dezembro 1992; pags 1053-1064
De Balbine, G.; "Better Manpower Utilization Using Automatic Restructuring"; Proceedings AFIP 1975 National Computer Conference v. 44; Montvale, N.J. AFIPS Press, pp. 319-327.
Dijkstra, E.; "GOTO Statements Considered Harmful"; Communications of the ACM v. 11(3); Mar 1968.
Gilb, T. "Maintainability is More Than Strucutral Coding"; Computer Weekly Jun 1978.
Glass, R.L., Noiseaux, R.A.; Software Maintenance GuideBook; Prentice-Hall, Inc.; New Jersey, 1981.
Guedes, L.C.; O gerador de tabelas de análise sintática laR*S(1); Monografia, em preparação
Kozaczynski,W., Ning,J., Engberts, A.; "Program Concept Recognition and Transformation"; in IEEE Transactions on Software Engineering 18(12); dezembro 1992; pags 1065-1075
Lano, K., Haughton, H.; "Extracting Design and Functionality from Code"; in IEEE; 1992; pags 74-82
Leite, J.C.S.P., Franco, A.P.M.; "Re-Engenharia de Software, Um Estudo de Caso"; in Anais V Simpósio Brasileiro de Engenharia de Software, Ouro Preto, MG; 1991; pags 177-192
Leite, J.C.S.P., Prado, A.F., Sant'Anna, M.; "Draco-PUC, Experiências e Resultados de Re-Engenharia de Software"; in Anais VI Simpósio Brasileiro de Engenharia de Software; Gramado, RS; 1992; pags 115-128
Miller, J.C.; Improving Programming Technologies Retrofit; Relatório interno; Montgomery Wards Corporate Systems Division, 1976
Rangel, J.L.; Manual de operação do sistema de geração de analisadores sintáticos R*S simples; Monografias em Ciência da Computação; n. 7/88; PUC-RIO, Out 1988.
Santanu, P., Prakash, A.; "Source Code Retrieval Using Program Patterns"; Fifth International Workshop on Computer-Aided Software Engineering, Proceedings CASE-92; IEEE; 1992; pags 95-105
O Ambiente de Desenvolvimento TALISMAN: Manual do Usuário; Staa Informática; 1992.