Issue No.01 - January (1995 vol.12)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/52.363164
Old software systems often use simple user interfaces that are consistent with the interface technology available at the time the software was initially developed. With the advent of new interface technologies, it has become very interesting to study automatic or semiautomatic methods of upgrading existing interfaces, thus extending the useful lifetime of the software system. This paper reports on a systematic method for reverse- engineering user interfaces based on the structural and behavioral representations. Central to this method is the development of an Abstract User Interface Description Language (AUIDL) which uses an object oriented approach to represent user interface structures and Milner's process algebra to model user interface behavior. Another key part of the approach is the development and integration of static analyses methods to approximate important aspects of the application program. For example, the development of a multi-valued constant propagation analysis was needed to support the automatic extraction of user interface structural specifications. A research prototype has been developed to demonstrate the feasibility of the method. This prototype was used to successfully convert reengineer the user interface for a COBOL/CICS application program that was obtained from industry.
Reverse engineering, user interfaces, flow analysis, process algebra, specifications abstraction
Ettore Merlo, Pierre-Yves Gagné, Jean-Francois Girard, Kostas Kontogiannis, Laurie Hendren, Prakash Panangaden, Renato De Mori, "Reengineering User Interfaces", IEEE Software, vol.12, no. 1, pp. 64-73, January 1995, doi:10.1109/52.363164