Extracting and representing cross-language dependencies in diverse software systems

This paper presents an approach for dealing with multi-language software systems. Much of the focus of reverse engineering tools is in analyzing software systems written in one programming language. Nowadays, the abundance of new technologies and languages used to ease application development raises new challenges for reverse engineers. Therefore, this paper focuses on finding cross-language dependencies in such diverse, heterogeneous software systems. Our approach uses source navigator extractors to produce the facts inside each language. Then, we show an example for finding Java Native Interface (JNI) dependencies between facts from Java and C/C++ code. The integrated facts are produced in GXL form, and conform to a unified schema introduced in the paper. This approach is useful from several perspectives. It illustrates how to retrieve the dependencies from software systems written in more than one programming language. Also, the generated facts conform to the GXL format, which is accepted by many reverse engineering tools. The usefulness and scalability of the approach are tested in a case study.

[1]  Andreas Winter,et al.  An Overview of the GXL Graph Exchange Language , 2001, Software Visualization.

[2]  Gary Cornell,et al.  Core Java 2 , Volume 2: Advanced Features , 1999 .

[3]  Richard C. Holt,et al.  A Visual Architectural Approach to Maintaining Web Applications , 2003 .

[4]  Jürgen Ebert,et al.  Program comprehension in multi-language systems , 1998, Proceedings Fifth Working Conference on Reverse Engineering (Cat. No.98TB100261).

[5]  Nouredine Melab,et al.  Analysis and manipulation of distributed multi-language software code , 2001, Proceedings First IEEE International Workshop on Source Code Analysis and Manipulation.

[6]  Panagiotis K. Linos,et al.  A tool for understanding multi-language program dependencies , 2003, 11th IEEE International Workshop on Program Comprehension, 2003..

[7]  Kenny Wong,et al.  An industrial experience in reverse engineering , 2003, 10th Working Conference on Reverse Engineering, 2003. WCRE 2003. Proceedings..

[8]  Jeffrey L. Korn,et al.  Chava: reverse engineering and tracking of Java applets , 1999, Sixth Working Conference on Reverse Engineering (Cat. No.PR00303).