Interactors and Haggis: Executable specifications for interactive systems

  • Meurig Sage
  • Chris Johnson
Part of the Eurographics book series (EUROGRAPH)


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.


Interactive System Asynchronous Communication Functional Language Executable Code High Level Specification 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    Gregory D. Abowd (1990), Agents: Communicating Interactive Processes. In D. Diaper et al (eds.) Human Computer Interaction - INTERACT ’90. Google Scholar
  2. [2]
    Heather Alexander (1990), Structuring dialogues using CSP, in MD Harrison and H Thimbleby Formal methods in Human computer interaction, Cambridge University Press.Google Scholar
  3. [3]
    Heather Alexander, Val Jones (1990), Software design and prototyping using me too, Prentice Hall.Google Scholar
  4. [4]
    David Duke, Giorgio Faconti, Michael Harrison, Fabio Paterno (1994), Unifying View of Interactors, Amodeus Project Document: SM/WP18.Google Scholar
  5. [5]
    Conal Elliott and Paul Hudak, Functional Reactive Animation, in Proceedings of the Second ACM SIGPLAN Internation Conference on Functional Programming, June 9–11 1997. Google Scholar
  6. [6]
    P. van Eijk (1991), The Lotosphere Integrated Tool Environment LITE, in Proceedings 4th International Conference on Formal Description Techniques, Sydney, North-Holland, pp.473–476.Google Scholar
  7. [7]
    G.P. Faconti et al (1993), Graphical Process Interaction Networks for Lotos Parallel Expressions, Amodeus Project Document: SM/WP25.Google Scholar
  8. [8]
    Sigbjorn Finne, Simon Peyton Jones (1995a), Pictures: A simple structured graphics model. In Glasgow Functional Programming Workshop, Ullapool, July 1995.Google Scholar
  9. [9]
    Sigbjorn Finne, Simon Peyton Jones (1995b), Composing Haggis. In Proceedings of the fifth Eurographics workshop on Programming Paradigms in Graphics, Maastricht, Sept 23 1995.Google Scholar
  10. [10]
    N.E. Fuchs (1992), Specifications are (preferably) executable. In Software Engineering Journal, 1992, 7, (5), pp. 323334Google Scholar
  11. [11]
    Andrew D. Gordon and Kevin Hammond (1995), Monadic I/O in Haskell 1.3. In Paul Hudak, editor, Proceedings of the haskell Workshop, pp 5069. La Jolla, California, June 25 1995.Google Scholar
  12. [12]
    M.D. Harrison and D.J. Duke (1995), The Specification of User Requirements in Interactive Systems, Amodeus Project Document: SM/WP60.Google Scholar
  13. [13]
    I.J. Hayes and C.B. Jones (1989), Specifications are not (necessarily) executable, Software Engineering Journal, 1989, 4, (6), pp. 330–338Google Scholar
  14. [14]
    J.M. Hoc, T.R.G. Green, R. Samurcay and D.J. Gilmore (eds) (1990), Psychology of Programming, Computers and People Series, Academic Press Ltd.Google Scholar
  15. [15]
    A. Jeffrey and G.Leduc (1996), E-LOTOS core language. Output of the Kansas City meeting, version 1996/09/20, (ISO-IEC/JTC1/SC21/WG7).Google Scholar
  16. [16]
    C.W. Johnson and M.D. Harrison (1992), Using temporal logic to support the specification of interactive control systems. International Journal of Man-Machine Studies, 37:357–385.Google Scholar
  17. [17]
    Brad A. Myers (1991) Separating application code from toolkits: Eliminating the spaghetti of callbacks. In Proceedings of the ACM SIGCHP91 Conference on User Interface Software Technology. ACM Press, November 1113 1991.Google Scholar
  18. [18]
    Fabio Paterno et al (1994), A Tool-supported Approach to the Refinement of Interactive Systems, Amodeus Project Document: SM/WP39.Google Scholar
  19. [19]
    John Peterson et al (1996), Haskell 1.3: A non-strict, purely functional language. Technical Report YALEU/DCS/RR-1106: Department of Computing Science. Yale University. May 1996.Google Scholar
  20. [20]
    Simon Peyton Jones and Philip Wadler (1993), Imperative functional programming. In A CM Conference on the Principles of Programming Languages, pp 7184. ACM Press, January 1993.Google Scholar
  21. [21]
    Simon Peyton Jones, Andrew Gordon, and Sigbjorn Finne (1996), Concurrent Haskell. In ACM Symposium on the Principles of Programming Languages, St. Petersburg Beach, Florida, January 1996.Google Scholar
  22. [22]
    Simon Buckingham Shum, Ann Blandford, David Duke, Jason Good, Jon May, Fabio Paterno, and Richard Young (1996), Multidisciplinary Modelling for User-Centred System Design: An Airtraffic Control Case Study. In People and Computers XI: Proceedings of HCI ’96. Google Scholar

Copyright information

© Springer-Verlag/Wien 1997

Authors and Affiliations

  • Meurig Sage
    • 1
  • Chris Johnson
    • 1
  1. 1.GIST, Department of Computing ScienceUniversity of GlasgowGlasgowScotland, UK

Personalised recommendations