Combining Formal Methods and Functional Strategies Regarding the Reverse Engineering of Interactive Applications

Graphical user interfaces (GUIs) make software easy to use by providing the user with visual controls. Therefore, correctness of GUI's code is essential to the correct execution of the overall software. Models can help in the evaluation of interactive applications by allowing designers to concentrate on its more important aspects. This paper describes our approach to reverse engineer an abstract model of a user interface directly from the GUI's legacy code. We also present results from a case study. These results are encouraging and give evidence that the goal of reverse engineering user interfaces can be met with more work on this technique.

[1]  Eelco Visser,et al.  Program Transformation with Stratego/XT: Rules, Strategies, Tools, and Systems in Stratego/XT 0.9 , 2003, Domain-Specific Program Generation.

[2]  Tarja Systä,et al.  Dynamic Reverse Engineering of Java Software , 1999, ECOOP Workshops.

[3]  Jakob Nielsen,et al.  Heuristic evaluation of user interfaces , 1990, CHI '90.

[4]  Martin Odersky,et al.  Domain-Specific Program Generation , 2004, Lecture Notes in Computer Science.

[5]  Jessica Chen,et al.  A GUI environment to manipulate FSMs tor testing GUI-based applications in Java , 2001, Proceedings of the 34th Annual Hawaii International Conference on System Sciences.

[6]  John Rushby,et al.  Using model checking to help discover mode confusions and other automation surprises , 2002, Reliab. Eng. Syst. Saf..

[7]  John Hughes,et al.  Report on the Programming Language Haskell 98 , 1999 .

[8]  Edwin D. Reilly,et al.  Interactive system , 2003 .

[9]  Michael D. Harrison,et al.  Model Checking Interactor Specifications , 2001, Automated Software Engineering.

[10]  Melody Moore Jackson Rule-based detection for reverse engineering user interfaces , 1996, Proceedings of WCRE '96: 4rd Working Conference on Reverse Engineering.

[11]  Sérgio Vale Aguiar Campos,et al.  Symbolic Model Checking , 1993, CAV.

[12]  Jørgen Staunstrup Design Specification and Verification , 1997 .

[13]  Joost Visser,et al.  Metrication of SDF Grammars , 2005 .

[14]  Guy Durrieu,et al.  Deriving a Formal Model of an Interactive System from its UIL Description in order to Verify and Test its Behaviour , 1996, DSV-IS.

[15]  Fabio Paternò Model-Based Design and Evaluation of Interactive Applications , 2000 .

[16]  Jean-Francois Girard,et al.  Reengineering User Interfaces , 1995, IEEE Softw..

[17]  Ann Blandford,et al.  Models of Interactive Systems: a Case Study on Programmable User Modelling Models of Interactive Systems: a Case Study on Programmable User Modelling , 2022 .

[18]  Michael D. Harrison,et al.  Abstract Interaction Objects , 1993, Comput. Graph. Forum.

[19]  Andrea De Lucia,et al.  Program slicing: methods and applications , 2001, Proceedings First IEEE International Workshop on Source Code Analysis and Manipulation.

[20]  Atif M. Memon,et al.  GUI ripping: reverse engineering of graphical user interfaces for testing , 2003, 10th Working Conference on Reverse Engineering, 2003. WCRE 2003. Proceedings..

[21]  Jean Vanderdonckt,et al.  Design, Specification and Verification of Interactive Systems ’96 , 1996, Eurographics.

[22]  Cathleen Wharton,et al.  Testing a walkthrough methodology for theory-based design of walk-up-and-use interfaces , 1990, CHI '90.

[23]  David A. Duce,et al.  Syndetic Modelling , 1998, Hum. Comput. Interact..

[24]  Erik Hollnagel,et al.  Human Reliability Analysis: Context and Control , 1994 .

[25]  Melody M. Moore,et al.  Rule-based detection for reverse engineering user interfaces , 1996 .

[26]  Ralf Lämmel,et al.  A Strafunski Application Letter , 2003, PADL.

[27]  José Creissac Campos,et al.  Using Task Knowledge to Guide Interactor Specifications Analysis , 2003, DSV-IS.

[28]  Joost Visser,et al.  Generic traversal over typed source code representations , 2003 .

[29]  Peter Neumann,et al.  Safeware: System Safety and Computers , 1995, SOEN.

[30]  Harold W. Thimbleby,et al.  User interface design with matrix algebra , 2004, TCHI.

[31]  Frank Tip,et al.  A survey of program slicing techniques , 1994, J. Program. Lang..

[32]  Kenneth L. McMillan,et al.  Symbolic model checking , 1992 .

[33]  M A Branch,et al.  Software maintenance management , 1986 .