Layering Advanced User Interface Functionalities onto Existing Applications

We explore the topics of user-interface instrumentation functionality and design in support of advanced features such as automation, adaptive documentation, intelligent tutoring, automated testing, and programming-by-demonstration. We propose a description of the interaction between user and computer applications in terms of a state-action model, we show how it is sufficient to support advanced UI functionalities, and we analyze the main points and trade-offs in the design of an instrumentation layer based on the state-action model. We discuss how the design principles could be practically applied using as supporting examples two systems, Sheepdog and DocWizard, developed on different platforms. We finally suggest a set of guidelines, intented for designers of application platforms such as operating systems, that facilitate the task of layering advanced UI functionalities on top of existing applications.

By: Vittorio Castelli; Lawrence D. Bergman; Tessa A. Lau; Daniel Oblinger

Published in: RC23583 in 2005


This Research Report is available. This report has been submitted for publication outside of IBM and will probably be copyrighted if accepted for publication. It has been issued as a Research Report for early dissemination of its contents. In view of the transfer of copyright to the outside publisher, its distribution outside of IBM prior to publication should be limited to peer communications and specific requests. After outside publication, requests should be filled only by reprints or legally obtained copies of the article (e.g., payment of royalties). I have read and understand this notice and am a member of the scientific community outside or inside of IBM seeking a single copy only.


Questions about this service can be mailed to .