UIML: an appliance-independent XML user interface language
WWW '99 Proceedings of the eighth international conference on World Wide Web
Swing2Script: Migration of Java-Swing Applications to Ajax Web Applications
WCRE '07 Proceedings of the 14th Working Conference on Reverse Engineering
Swing to SWT and back: Patterns for API migration by wrapping
ICSM '10 Proceedings of the 2010 IEEE International Conference on Software Maintenance
A MDA-compliant environment for developing user interfaces of information systems
CAiSE'05 Proceedings of the 17th international conference on Advanced Information Systems Engineering
Inferring likely mappings between APIs
Proceedings of the 2013 International Conference on Software Engineering
Cloud twin: interactive cross-platform replay for mobile applications
Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity
Hi-index | 0.02 |
As mobile devices are rapidly replacing desktop computers for a growing number of users, existing user interfaces often need to be ported from the desktop to a mobile device. In addition, successful user interfaces written for one mobile platform are commonly ported to other mobile platforms. Traditionally, porting user interfaces requires that their source code be reverse-engineered and translated, which is difficult and error-prone. In this paper, we present an approach that reverse-engineers user interfaces without having to analyze their source code. Specifically, our approach examines an interface's runtime representation by means of aspect-oriented programming (AOP). An aspect intercepts the program's control flow at the point when all the components of an interface are laid out on the screen, but before the interface is displayed. The aspect analyzes the interface's in-memory representation and extracts a platform-independent model that can then be used to generate equivalent interfaces for other devices and platforms. Our initial proof of concept ports Java Swing interfaces to Android. In this paper, we describe our approach, discuss its main technical challenges, and outline future research directions.