Reverse-engineering user interfaces to facilitateporting to and across mobile devices and platforms

  • Authors:
  • Eeshan Shah;Eli Tilevich

  • Affiliations:
  • Virginia Tech, Blacksburg, VA, USA;Virginia Tech, Blacksburg, VA, USA

  • Venue:
  • Proceedings of the compilation of the co-located workshops on DSM'11, TMC'11, AGERE!'11, AOOPES'11, NEAT'11, & VMIL'11
  • Year:
  • 2011

Quantified Score

Hi-index 0.02

Visualization

Abstract

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.