An Improved Algorithm for Identifying Objects in Code
暂无分享,去创建一个
The identification of abstractions within existing software systems is an important problem to be solved to facilitate program comprehension and the construction of a set of reusable artifacts. In particular, of interest is the identification of object-like features in procedural programs. Existing techniques and algorithms achieve some level of success but do not, in general, always precisely identify a coherent set of objects. The identified objects tend to contain spurious methods that are only tenuously related to the object and require a great deal of human effort and understanding to unravel. This paper presents an improved algorithm that overcomes these drawbacks and enables the precise identification of objects with less human intervention and understanding by exploiting simple statistical techniques. The algorithm is applied to several sample programs and the results are compared with existing algorithms. Finally, the application of the algorithm to a real medium-size system is described and discussed. The algorithm was developed as part of the RE2 project in which the identification of object-like features in existing systems is the basis for a re-engineering process aimed at populating a repository of reusable assets.
[1] Karl J. Ottenstein,et al. The program dependence graph in a software development environment , 1984, SDE 1.
[2] Ted J. Biggerstaff,et al. Program understanding and the concept assignment problem , 1994, CACM.
[3] Giuseppe Visaggio,et al. Software salvaging and the call dominance tree , 1995, J. Syst. Softw..