Design recovery of interactive graphical applications

Nowadays, the majority of productivity applications are interactive and graphical in nature. In this paper, we explore the possibility of taking advantage of these two characteristics in a design recovery tool. Specifically, the fact that an application is interactive means that we can identify distinct execution bursts corresponding closely to "actions" performed by the user The fact that the application is graphical means that we can describe those actions visually from a fragment of the application display itself. Combining these two ideas, we obtain an explicit mapping from high-level actions performed by a user (similar to use case scenarios/specification fragments) to their low-level implementation. This mapping can be used for design recovery of interactive graphical applications. We demonstrate our approach using L/sub Y/X, a scientific word processor.

[1]  Eleni Stroulia,et al.  Reverse engineering legacy interfaces: an interaction-driven approach , 1999, Sixth Working Conference on Reverse Engineering (Cat. No.PR00303).

[2]  Rainer Koschke,et al.  Feature-driven program understanding using concept analysis of execution traces , 2001, Proceedings 9th International Workshop on Program Comprehension. IWPC 2001.

[3]  Norman Wilde,et al.  Software reconnaissance: Mapping program features to code , 1995, J. Softw. Maintenance Res. Pract..

[4]  Steven K. Feiner,et al.  Editable graphical histories , 1988, [Proceedings] 1988 IEEE Workshop on Visual Languages.

[5]  Gary Sevitsky,et al.  Drive-by Analysis of Running Programs , 2001 .

[6]  Giuseppe Visaggio,et al.  Software salvaging and the call dominance tree , 1995, J. Syst. Softw..

[7]  Robert R. Henry,et al.  The University of Washington illustrating compiler , 1990, PLDI '90.

[8]  Linda M. Wills,et al.  Recognizing a program's design: a graph-parsing approach , 1990, IEEE Software.

[9]  Marc H. Brown,et al.  Zeus: a system for algorithm animation and multi-view editing , 1991, Proceedings 1991 IEEE Workshop on Visual Languages.

[10]  Amir Michail Browsing and searching source code of applications written using a GUI framework , 2002, ICSE '02.

[11]  Tessa A. Lau,et al.  Programming by demonstration: an inductive learning formulation , 1998, IUI '99.

[12]  Pedro M. Domingos,et al.  Version Space Algebra and its Application to Programming by Demonstration , 2000, ICML.

[13]  Ian H. Witten,et al.  Managing gigabytes (2nd ed.): compressing and indexing documents and images , 1999 .

[14]  Swapna S. Gokhale,et al.  Quantifying the closeness between program components and features , 2000, J. Syst. Softw..

[15]  Thomas Ball,et al.  Software Visualization in the Large , 1996, Computer.

[16]  Ian H. Witten,et al.  Managing Gigabytes: Compressing and Indexing Documents and Images , 1999 .

[17]  Norman Wilde,et al.  Early field experience with the Software Reconnaissance technique for program comprehension , 1996, 1996 Proceedings of International Conference on Software Maintenance.

[18]  Eleni Stroulia,et al.  Modeling the system-user dialog using interaction traces , 2001, Proceedings Eighth Working Conference on Reverse Engineering.

[19]  Richard C. Holt,et al.  ACCD: an algorithm for comprehension-driven clustering , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[20]  Henry Lieberman,et al.  Watch what I do: programming by demonstration , 1993 .

[21]  Robert Sedgewick,et al.  A system for algorithm animation , 1984, SIGGRAPH.

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

[23]  Robert Sedgewick,et al.  SYSTEM FOR ALGORITHM ANIMATION. , 1984 .