Functionally Modeled User Interfaces

Fruit is a new user interface toolkit based on a formal model of user interfaces. This formal basis enables us to write simple, concise executable specifications of interactive applications. This paper presents the Fruit model and several example specifications. We consider one example (a basic media controller) in detail, and contrast the executable specification style of Fruit with a more traditional “rapid prototype” implementation using an imperative, object-oriented toolkit (Java/Swing) to show the benefits of our approach.

[1]  Meurig Sage FranTk - a declarative GUI language for Haskell , 2000, ICFP '00.

[2]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[3]  Brad A. Myers,et al.  Why are Human-Computer interfaces Difficult to Design and Implement? , 1993 .

[4]  Henrik Nilsson,et al.  Functional reactive programming, continued , 2002, Haskell '02.

[5]  Robert J. K. Jacob,et al.  A software model and specification language for non-WIMP user interfaces , 1999, TCHI.

[6]  Stephen Travis Pope,et al.  A Description of the Model-View-Controller User Interface Paradigm in the Smalltalk-80 System , 1998 .

[7]  P. Palanque,et al.  Interactive cooperative objects: an object-oriented formalism based on Petri nets for user interface design , 1993, Proceedings of IEEE Systems Man and Cybernetics Conference - SMC.

[8]  H. Rex Hartson,et al.  Temporal Aspects of Tasks in the User Action Notation , 1992, Hum. Comput. Interact..

[9]  Paul Hudak,et al.  Functional reactive programming from first principles , 2000, PLDI '00.

[10]  Brad A. Myers,et al.  Languages for developing user interfaces , 1992 .

[11]  Cnuce,et al.  Task Models in Interactive Software Systems , 2000 .

[12]  Paul Hudak,et al.  Functional reactive animation , 1997, ICFP '97.

[13]  R. Karp,et al.  Properties of a model for parallel computations: determinacy , 1966 .

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

[15]  C. Petri Kommunikation mit Automaten , 1962 .

[16]  Magnus Carlsson,et al.  Fudgets - Purely Functional Processes with applications to Graphical User Interfaces , 1998 .

[17]  Nicolas Halbwachs,et al.  LUSTRE: A declarative language for programming synchronous systems* , 1987 .

[18]  Ross Paterson,et al.  A new notation for arrows , 2001, ICFP '01.

[19]  William W. Wadge,et al.  Lucid, the dataflow programming language , 1985 .

[20]  John Hughes,et al.  Generalising monads to arrows , 2000, Sci. Comput. Program..

[21]  Paul Le Guernic,et al.  SIGNAL: A declarative language for synchronous programming of real-time systems , 1987, FPCA.

[22]  Pablo Castells,et al.  Declarative interface models for user interface construction tools: the MASTERMIND approach , 1995, EHCI.