Program Analysis for the Construction of Libraries of Programming Plans Applying Slicing

  • Gustavo Villavicencio Universidad Catolica de Santiago del Estero

Resumo


Why the automatic understanding systems of programs based on plan libraries of programs are not of current application in the reverse engineering processes or in the ambient of re-engineering?. Even though the complexity of the algorithms that explore the libraries constitutes one of the principal problems to solve, the construction itself of the plan libraries represents a problem even more crucial. To mount a repository of this type, it is essential to have the professionals that have developed the systems or that accomplish maintenance in the interest area. To date, there exist no reports that describe some technique on how to accomplish analysis of programs oriented to the construction of libraries of programming plans. In the framework of the NEIGHBORS Project currently in execution, a technique based on the automatic comparison of slices is being investigate; this permits the analyst to focus his attention on a meaningful code for the design of program plans, liberating to a large extent the efficiency of the tasks of analysis from the previous knowledge of the applications and from the problems domain. The obtained results until now confirm the feasability of the approach.

Palavras-chave: Reverse Engineering, automatic programs understanding, reuse, re-engineering, libraries of programming plans, slicing

Referências

Alex Quilici, Qiang Yang and Steven Woods. "Applying Plan Recognition Algoritms to Program Understanding", Journal of Automated Software Engineering, 1998.

Steven Woods and Qiang Yang. "The Program Understanding Problem: Analisys and Heuristic Approach", Proceedings of the 18th International Conference on Software Engineering, Berlin, Germany, March 1996. Pages 6-15. IEEE Computer Society Press.

Steven Woods and Qiang Yang. "Program Understanding as Constraint Satisfaction", In Proceedings of International Workshop Conference Reverse Engineering Toronto, Canada, 1995.

David Ching and Alex Quilici. "DECODE: A Cooperative Program Understanding Environment", Journal of Software Maintenance, 8(1):3-34, 1996.

Keith Brian Gallagher and James R. Lyle. "Using Program Slicing in Software Maintenance", IEEE Transaction on Software Engineering, August 1991.

Filippo Lanubile and Giuseppe Visaggio. "Extracting Reusable Functions By Program Slicing", Technical Report CS-TR-3594, University of Maryland, College Park, January 1996.

Filippo Lanubile and Giuseppe Visaggio. "Extracting Reusable Functions By Program Slicing", IEEE Transactions on Software Engineering, 23(4):246-259, April 1997.

Alex Quilici. "A Memory-Based Approach to Recognizing Programming Plans", Communications of the ACM, 37(5):84-93, 1994.

Mark Weiser. "Program Slicing", IEEE Transaction on Software Engineering, July 1984.

Hiralal Agrawal, RichardA. DeMillo, and EugeneH. Spafford. "Debugging With Dynamic Slicing And Backtracking", Software - Practive And Experience, 23(6):589-616, June 1993.

Istvan Forgas and Tibor Gyimthy, "An Efficient Interprocedural Slicing Method For Large Programs", In Proceedings of SEKE'97, pages 279-287, Madrid, Spain, 1997.

SusanB. Horwitz, ThomasW. Reps, and David Binkley. "Interprocedural Slicing Using Dependence Graphs" , ACM Transactions on Programming Languages and Systems, 12(1):26-60, January 1990.

Bogdan Korel and Jurgen Rilling. "Application Of Dynamic Slicing In Program Debugging", In Proceedings of the Third International Workshop on Automatic Debugging (AADEBUG'97), Linkping, Sweden, May 1997.

Jens Krinke and Gregor Snelting "Validation Of Measurement Software As An Application Of Slicing And Constraint Solving". Information and Software Technology, 40(11-12):661-675, December 1998.

Alex Quilici, Qiang Yang and Steve Woods. "Applying Plan Recognition Algorithms to Program Understanding", Knowledge Based Software Engineering Conference. Syracuse, New York, September 1996. Pages 96-103.

ThomasW. Reps, SusanB. Horwitz, and Mooly Sagiv. "Precise Interprocedural Dataflow Analysis Graph Reachability", In Conference Record of the Twenty-Second ACM Symposium on Principles of Programming Languages, pages 49-61, San Francisco, CA, January 1995.

ThomasW. Reps and Todd Turnidge. "Program Specialization Via Program Slicing", In O.Danvy, R.Glueck, and P.Thiemann, editors, Proceedings of the Dagstuhl Seminar on Partial Evaluation, Lecture Notes in Computer Science, Schloss Dagstuhl, Wadern, Germany, February 1996. Springer-Verlag.

Jianjun Zhao. "Applying Slicing Techniques To Software Architectures", In Proc. 4th IEEE International Conference on Engineering of Complex Computer Systems, pages 87-98, 1998.

Frank Tip. "A Survey Of Program Slicing Techniques", Technical Report, CS-R9438, Centrum voor Wiskunde en Informatica (CWI), CWI, P.O. Box 94079, 1090, GB Amsterdam, The Netherlands, July 1994.

Christoph Steindl. "Intermodular Slicing Of Object-Oriented Programs", In International Conference on Compiler Construction (CC'98), 1998.

LorenD. Larsen and MaryJean Harrold, "Slicing Object-Oriented Software" In Proceedings of the 18th International Conference on Software Engineering, pages 495-503, Berlin, March 1996.

MatthewB. Dwyer and John Hatcliff. "Slicing Software For Model Construction", In Proceedings ACM SIGPLAN Partial Evaluation and Program Manipulation, January 1999.

Mark Harman, Sebastian Danicic, and Yoga Sivagurunathan. "The Next 700 Slicing Criteria", 2nd UK Program Comprehension Workshop, Centre for Software Maintenance, University of Durham, July 1996.

Arien van Deursen and Tobias Kuipers. "Identifying Objects Using Cluster and Concept Analysis", Proc. 21st. Internation Conference on Software Engineering. ACM Press 1999.

Spencer Rugaber, Kurt Stirwalt and Linda Wills. "Understanding Interleaving Code", Automated Software Engineering, June 1996.
Publicado
04/10/2000
VILLAVICENCIO, Gustavo. Program Analysis for the Construction of Libraries of Programming Plans Applying Slicing. In: SIMPÓSIO BRASILEIRO DE ENGENHARIA DE SOFTWARE (SBES), 14. , 2000, João Pessoa/PB. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2000 . p. 101-116. DOI: https://doi.org/10.5753/sbes.2000.25923.