Study of the Knowledge Contained in Software Components’ Identifiers

  • Nicolas Anquetil UFRJ

Resumo


Maintaining old software, designed with obsolete methods, and poorly structured, is a knowledge intensive and difficult task. To help in this task, Reverse Engineering seeks to offer tools and analysis techniques that will help creating an abstract representation (a model) of a software system. We believe that one should take advantage of any available source of information to help in this task and know precisely what each source has to offer. In this paper we study the knowledge contained in the name of software components. Such study is needed to ascertain if this knowledge could be of use for Reverse Engineering, and to perform what activity? Our conclusions are that there is certainly interesting information to be extracted from identifiers, but that alone they may not be sufficient, and other sources, such as comments, would provide a welcome help.

Palavras-chave: Reverse Engineering, vocabulary analysis, program comprehension, concept extraction

Referências

Nicolas Anquetil and Timothy C. Lethbridge. Assessing the Relevance of Identifier Names in a Legacy Software System. In J. Howard Johnson Stephen A. MacKay, editor, CASCON'98, pages 213-22. IBM Centre for Advanced Studies, Dec. 1998

Nicolas Anguetil and Timothy C. Lethbridge. Experiments with clustering as a software remodularization method. In Working Conference on Reverse Engineering, pages 235-255. IEEE, IEEE Comp. Soc. Press, Oct. 1999.

Nicolas Anguetil and Timothy C. Lethbridge. Recovering software architecture from the names of source files. Journal of Software Maintenance: Research and Practice, 11:1-21, 1999.

G. Autoniol, G. Canfora, and Andrea De lucia. Recovering code to documentation links in oo systems. In Working Conference on Reverse Engineering, pages 136-144. IEEE Comp. Soc. Press, Oct. 1999.

Ted J. Biggerstaff, Bharat G. Mitbander, and Dallas Webster. Program Understanding and the Concept, Assignement Problem. Communications of the ACM, 37(5):72-83, May 1994.

Elizabeth Burd, Malcom Munro, and Clazien Wezeman. Extracting Reusable Modules from Legacy Code: Considering the Issues of Module Granularity, In Working Conference on Reverse Engineering, pages 189-196. IEEE, IEEE Comp. Soc. Press, Nov 1996.

Bruno Caprile and Paolo Tonella. Nomen est Omen: Analyzing the language of function identifiers. In Working Conference on Reverse Engineering, pages 112-122. IEEE, IEEE Comp. Soc. Press, Oct. 1999.

A. Cimitile, A. De Lucia, G.A. Di Lucca, and A.R. Fasolino. Identifying Objects in Legacy Systems. In 5th International Workshop on Program Comprehension, IWPC'97, pages 138-47. IEEE, IEEE Comp. Soc. Press, 1997.

Aniello Cimitilo, Anna Rita Fasolino, and Giuseppe Visaggio. A software model for Impact analysis: A validation experiment. In Working Conference on Reverse gineering, pages 212-222. IEEE, IEEE Comp. Soc. Press, Oct. 1999.

Richard Clayton, Spencer Rugaber, and Linda Wills. On the knowledge required to understand a program. In Working Conference on Reverse Engineering, pages 69-78. IEEE, IEEE Comp. Soc. Press, Oct, 1998.

Gerald C. Gannod and Betty H.C. Cheng, Using Informal and Formal Techniques for the Reverse Engineering of C Programs, In International Conference on Software Maintenance, ICSM'96, pages 265 74. IEEE, IEEE Comp. Soc. Press, Nov 1996.

Gerald C. Gannod and Betty H.C. Cheng. A framework for classifying and comparing software engineering and design recovery techniques. In Working Conference on Reverse Engineering, pages 77-88. IEEE, IEEE Comp. Soc. Press, Oct. 1999.

H.P. Haughton and K. Lano. Objects Revisited. Tn Conference on Software Maintenance, pages 152-61. IEEE, IEEE Comp. Soc. Press, 1991.

Etore Merlo, Tan McAdam, and Renato De Mori. Source Code Informal Information Analysis Using Conneetionnist Models. In Ruzena Bajesy, editor, Proceedings of the Thirteenth International Joint Conference on Artificial Intelligence, volume 2, pages 1339-44. Morgan Kaufmann Publishers, Inc., San Francisco, CA, USA, 1993.

NCSA Mosaic Version 2.6. Available through anonymous ftp at ftp://ftp.ncsa.uiuc.edu.in/Mosaic/Unix/source.

Philip Newcomb aud Gordon Kotik. Reengineering Procedural Into Object-Oriented Systems. In Working Conference on Reverse Engineering, pages 237 19, IEEE, IEEE Comp. Soc. Press, Jul 1995.

Srinivas Palthepu, Jim E. Greer, and Gordon I McCalla. Cliché recognition in legacy software: A sealable, knowledge-based approach. In Working Conference on Reverse Engineering, pages 94-103. IEEE, IEEE Comp. Soc. Press, Oct. 1997.

Alyson A. Reeves and Judith D. Schlesingor. Jackal: A hierarchical approach to program understanding. Tn Working Conference on Reverse Engineering, pages 84-93. IEEE, IEEE Comp. Soc. Press, Oct. 1997.

Jelber Sayyad-Shirabad, Timothy C. Lethbridge, and Steve Lyon, A Little Knowledge Can Go a Long Way Towards Program Understanding. In 5th International Workshop on Program Comprehension, pages 111 117. IEEE, IEEE Comp. Soc. Press, May 1997.

Smart v11.0. — Available via anonymous ftp from ftp.cs.cornell.edu, in pub/smart/smart.11.0.tar.Z. Chris Buckley (maintainor).

Harry M. Sneed. Object-Oriented COBOL Recycling. Tn Working Conference on Reverse Engineering, pages 169-78. IEEE, IEEE Comp. Soc. Press, Nov 1996.

IEEE Technical Council on Software Engineering. http://www.tcse.org/revengr/.

P. Tonella, R. Fiutern, G. Autoniol, and E. Merlo. Augmenting Pattern-Based Architectural Recovery with Flow Analysis: Mosaic A Case Study. In Working Conference on Reverse Engineering, pages 198 207. IEEE, IEEE Comp. Soc. Press, Nov 1996.

Theo A. Wiggerts. Using clustering algorithms in legacy systems remodularization. In Working Conference on Reverse Engineering, pages 33-43. IEEE, IEEE Comp. Soc. Press, Oct. 1997.

Steven Woods and Alex Quilici. Some Experiments Toward Understanding How Program Plan Recognition Algorithins Scale. In Working Conference on Reverse Engineering, pages 21-30. IEEE, IEEE Comp. Soc. Press, Nov 1996.
Publicado
04/10/2000
ANQUETIL, Nicolas. Study of the Knowledge Contained in Software Components’ Identifiers. 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. 85-100. DOI: https://doi.org/10.5753/sbes.2000.25922.