ReVis: reverse engineering by clustering and visual object classification

The paper presents the framework of a scale oriented scheme for the presentation and classification of reverse engineered sections of procedural code into objects. The aim is to develop an extensible system framework, which allows the output from a suite of data analysis tools to be visually presented to a user. The relationship between the analysis and visualisation is a progressive cycle, where each time through the cycle, the overall quality of the classified objects improves. This framework supports two distinct methods of information feedback from the visualisation to the analysis suite. The two feedback loops aim to increase both the ease of understanding for the reverse engineer and the quality of the resultant objects. As the analyst views the visualisation, the perceived view of the relationships exhibited in the system may be modified, removed or added to. This results in a change to the underlying graph or the clustering of that graph, which must be addressed in the visual presentation of the information using a variety of techniques to maintain the users' 'mental map', or understanding each time through the cycle.

[1]  N. Wilde,et al.  Identifying objects in a conventional procedural language: an example of data design recovery , 1990, Proceedings. Conference on Software Maintenance 1990.

[2]  Edward Tufte,et al.  Visual Explanations , 1997 .

[3]  Margot Postema,et al.  Reverse Engineering and Abstraction of Legacy Systems , 1998 .

[4]  Edward M. Reingold,et al.  Graph drawing by force‐directed placement , 1991, Softw. Pract. Exp..

[5]  Aniello Cimitile,et al.  An Improved Algorithm for Identifying Objects in Code , 1996, Softw. Pract. Exp..

[6]  R. E. Kurt Stirewalt,et al.  The interleaving problem in program understanding , 1995, Proceedings of 2nd Working Conference on Reverse Engineering.

[7]  Hausi A. Müller,et al.  Graph Layout Adjustment Strategies , 1995, GD.

[8]  Christine Mingins,et al.  Providing Trusted Components to the Industry , 1998, Computer.

[9]  Piet Hut,et al.  A hierarchical O(N log N) force-calculation algorithm , 1986, Nature.

[10]  Kozo Sugiyama,et al.  Layout Adjustment and the Mental Map , 1995, J. Vis. Lang. Comput..

[11]  Mike P. Papazoglou,et al.  Information Systems Interoperability , 1998 .

[12]  Andrew Csinger,et al.  The Psychology of Visualization , 1992 .

[13]  Glenn S. Fowler,et al.  Ciao: a graphical navigator for software and document repositories , 1995, Proceedings of International Conference on Software Maintenance.

[14]  Aaron Quigley,et al.  PROVEDA: A scheme for Progressive Visualization and Exploratory Data Analysis of clusters , 1999 .

[15]  Norman Wilde,et al.  An object finder for program structure understanding in software maintenance , 1994, J. Softw. Maintenance Res. Pract..

[16]  John T. Stasko,et al.  Visualizing Interactions in Program Executions , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[17]  Paul Gibbon,et al.  Many-body tree methods in physics , 1996 .

[18]  Victor R. Basili,et al.  System Structure Analysis: Clustering with Data Bindings , 1985, IEEE Transactions on Software Engineering.

[19]  M. N. Armstrong,et al.  Evaluating architectural extractors , 1998, Proceedings Fifth Working Conference on Reverse Engineering (Cat. No.98TB100261).

[20]  Peter Eades,et al.  On-line Animated Visualization of Huge Graphs using a Modified Spring Algorithm , 1998, J. Vis. Lang. Comput..

[21]  Peter Eades,et al.  A Heuristic for Graph Drawing , 1984 .

[22]  Christopher G. Healey,et al.  Choosing effective colours for data visualization , 1996, Proceedings of Seventh Annual IEEE Visualization '96.

[23]  Helen C. Purchase,et al.  Which Aesthetic has the Greatest Effect on Human Understanding? , 1997, GD.