MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Chava: Reverse engineering and tracking of java applets (1999) [25 citations — 1 self]

Download:
Download as a PDF | Download as a PS
by Jeffrey Korn, Yih-farn Chen, Eleftherios Koutsofios
In Proc. Working Conference on Reverse Engineering
http://www.cs.princeton.edu/~jlk/wcre.ps
Add To MetaCart

Abstract:

Java applets have been used increasingly on web sites to perform client-side processing and provide dynamic content. While many web site analysis tools are available, their focus has been on static HTML content and most ignore applet code completely. This paper presents Chava, a system that analyzes and tracks changes in Java applets. The tool extracts information from applet code about classes, methods, fields and their relationships into a relational database. Supplementary checksum information in the database is used to detect changes in two versions of a Java applet. Given our Java data model, a suite of programs that query, visualize, and analyze the structural information were generated automatically from CIAO, a retargetable reverse engineering system. Chava is able to process either Java source files or compiled class files, making it possible to analyze remote applets whose source code is unavailable. The information can be combined with HTML analysis tools to track both the static and dynamic content of many websites. This paper presents our data model for Java and describes the implementation of Chava. We give some examples of advanced analysis tasks such as reachability and clustering analysis. We also used our database differencing technologies to compare several Java Development Kit (JDK) versions. We show how Chava can help spot changes that might impact Java developers. Performance numbers indicate that the tool scales well.

Citations

1075 The entity-relationship model – toward a unified view of data – Chen - 1976
725 The Java Programming Language – Arnold, Gosling - 1996
382 Reverse Engineering and Design Recovery: A Taxonomy – Chikofsky, Cross - 1990
366 A Metrics Suite for Object Oriented Design – Chidamber, Kemerer - 1994
128 The C Information Abstraction System – Chen, Nishimoto, et al. - 1990
109 ªAn Intelligent Tool for Re-Engineering Software Modularity,º – Schwanke - 1991
101 ªA Reverse Engineering Approach to Subsystem Structure – Muller, Orgun, et al. - 1993
95 TestTube: A System for Selective Regression Testing – Chen, Rosenblum, et al. - 1994
86 System Structure Analysis: Clustering with Data Bindings – Hutchens, Basili - 1985
83 A Framework for Source Code Search Using Program Patterns – Paul, Prakesh - 1994
78 Using Automatic Clustering to Produce HighLevel System – Mancoridis, Mitchell, et al. - 1998
48 Ciao: a graphical navigator for software and document repositories – Chen, Fowler, et al. - 1995
40 The AT&T Internet Difference Engine: Tracking and Viewing – Douglis - 1998
38 PCTE Interfaces: Supporting Tools in Software-Engineering Environments – Thomas - 1989
36 Lightweight extraction of object models from bytecode – Jackson, Waingold - 1999
30 A C++ data model supporting reachability analysis and dead code detection – Chen, Gansner, et al. - 1998
24 Investigating Reverse Engineering Technologies for the CAS Program Understanding Project – Buss, Mori, et al. - 1994
22 GENOA---A language and front-End independent source code analyzer generator – Devanbu - 1992
20 Reverse engineering – Chen - 1995
19 3D visualization of software architectures – Feijs, Jong - 1998
17 A Simple and Extensible Graphical Debugger – Hanson, Korn - 1997
13 Tools that Bind: Creating Integrated Environments – Sharon, Bell - 1995
12 von Gudenberg. Pattern-based design recovery of java software – Seemann, W - 1998
10 Change and Adaptive Maintenance Detection in Java Software Systems – Rayside, Kerr, et al. - 1998
8 Grappa: A Graph Package in Java – Barghouti, Mocenigo, et al. - 1997
7 WebCiao: A Website Visualization and Tracking System – Chen, Koutsofios - 1997
1 Cdiff: A Syntex Directed Differencer for C++ Programs – Grass - 1992
1 iproxy: An agent-based middleware – Rao, Chen, et al. - 1999