Interactors and Haggis: Executable specifications for interactive systems

Executable formal specifications, of interactive systems, allow programmers to both reason about their systems, and test them on users. The feedback provided allows an iterative approach to interface design. We argue that new developments in concurrent functional languages make them ideal for executing specifications. To show this, we make use of Haggis, a concurrent functional graphical toolkit. We describe the development of a highly interactive game, from specification to execution. We start with an agent based specification, making use of the CNUCE LOTOS interactor model. This model provides for both modularity and reasoning power. We, however, make use of a VDM like specification language to describe the internal state of our interactors, and so overcome some of the problems with CNUCE interactors. We then show how this specification can be easily and quickly transformed into executable code, using the Haggis system. This application typifies the dynamic, real-time interfaces that many previous prototyping environments do not support.

[1]  Simon L. Peyton Jones,et al.  Picture: A Simple Structured Graphics Model , 1995, Functional Programming.

[2]  Valerie M. Jones,et al.  Software design and prototyping using me too , 1989 .

[3]  Norbert E. Fuchs Specifications are (preferably) executable , 1992, Softw. Eng. J..

[4]  Gregory D. Abowd,et al.  Agents: Communicating interactive processes , 1990, IFIP TC13 International Conference on Human-Computer Interaction.

[5]  Alan Jeffrey,et al.  E-LOTOS Core Language , 1996 .

[6]  Jean-Michel Hoc,et al.  Psychology of programming , 1990 .

[7]  P.H.J. van Eijk,et al.  The Lotosphere integrated tool environment lite , 1991 .

[8]  Fabio Paternò,et al.  A Tool-supported Approach to the Refinement of Interactive Systems , 1994, DSV-IS.

[9]  Michael D. Harrison,et al.  Unifying views of interactors , 1994, AVI '94.

[10]  Simon L. Peyton Jones,et al.  Imperative functional programming , 1993, POPL '93.

[11]  Cliff B. Jones,et al.  Specifications are not (necessarily) executable , 1989 .

[12]  Simon L. Peyton Jones,et al.  Concurrent Haskell , 1996, POPL '96.

[13]  Steve Howard,et al.  Human-Computer Interaction INTERACT ’97 , 1997, IFIP — The International Federation for Information Processing.

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

[15]  Michael D. Harrison,et al.  Using Temporal Logic to Support the Specification and Prototyping of Interactive Control Systems , 1992, Int. J. Man Mach. Stud..

[16]  Andrew D. Gordon,et al.  Monadic I/O in Haskell 1.3 , 1995 .

[17]  Ann Blandford,et al.  Multidisciplinary Modelling for User-Centred System Design: An Air-traffic Control Case Study , 1996, BCS HCI.