Characterizing the informal knowledge contained in systems

Program comprehension of legacy systems is a highly knowledge-intensive task. One of the goals of reverse engineering is to propose automated help to relate application domain concepts to all their implementation instances. It is generally accepted that to do so would require analyzing such documentation as identifiers or comments. However, before attempting to perform this difficult analysis, it would be useful to know precisely what information the documentation contains and if it is worth trying. In this paper, we present the results of a study of the knowledge contained in two sources of documentation for the Mosaic system. This knowledge is categorized into various domains, and the relative proportions of these domains are discussed. Among other things, the results highlight the high frequency with which application domain concepts are used, which could provide the means to identify them.

[1]  Malcolm Munro,et al.  Extracting reusable modules from legacy code: considering the issues of module granularity , 1996, Proceedings of WCRE '96: 4rd Working Conference on Reverse Engineering.

[2]  Gordon Kotik,et al.  Reengineering procedural into object-oriented systems , 1995, Proceedings of 2nd Working Conference on Reverse Engineering.

[3]  Anneliese Amschler Andrews,et al.  Program Comprehension During Software Maintenance and Evolution , 1995, Computer.

[4]  Giuseppe Visaggio,et al.  A software model for impact analysis: a validation experiment , 1999, Sixth Working Conference on Reverse Engineering (Cat. No.PR00303).

[5]  Nicolas Anquetil,et al.  Assessing the relevance of identifier names in a legacy software system , 1998, CASCON.

[6]  Harry M. Sneed Object-oriented COBOL recycling , 1996, Proceedings of WCRE '96: 4rd Working Conference on Reverse Engineering.

[7]  Ted J. Biggerstaff,et al.  Program understanding and the concept assignment problem , 1994, CACM.

[8]  Spencer Rugaber,et al.  On the knowledge required to understand a program , 1998, Proceedings Fifth Working Conference on Reverse Engineering (Cat. No.98TB100261).

[9]  Nicolas Anquetil,et al.  Recovering software architecture from the names of source files , 1999, J. Softw. Maintenance Res. Pract..

[10]  Giuliano Antoniol,et al.  Recovering code to documentation links in OO systems , 1999, Sixth Working Conference on Reverse Engineering (Cat. No.PR00303).

[11]  Ted J. Biggerstaff,et al.  Program understanding and the concept assignment problem : Reverse engineering , 1994 .

[12]  Nicolas Anquetil,et al.  Experiments with clustering as a software remodularization method , 1999, Sixth Working Conference on Reverse Engineering (Cat. No.PR00303).

[13]  Aniello Cimitile,et al.  Identifying objects in legacy systems , 1997, Proceedings Fifth International Workshop on Program Comprehension. IWPC'97.

[14]  Paolo Tonella,et al.  Nomen est omen: analyzing the language of function identifiers , 1999, Sixth Working Conference on Reverse Engineering (Cat. No.PR00303).