Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Gregory D. Abowd (1990), Agents: Communicating Interactive Processes. In D. Diaper et al (eds.) Human Computer Interaction - INTERACT ’90.
Heather Alexander (1990), Structuring dialogues using CSP, in MD Harrison and H Thimbleby Formal methods in Human computer interaction, Cambridge University Press.
Heather Alexander, Val Jones (1990), Software design and prototyping using me too, Prentice Hall.
David Duke, Giorgio Faconti, Michael Harrison, Fabio Paterno (1994), Unifying View of Interactors, Amodeus Project Document: SM/WP18.
Conal Elliott and Paul Hudak, Functional Reactive Animation, in Proceedings of the Second ACM SIGPLAN Internation Conference on Functional Programming, June 9–11 1997.
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.
G.P. Faconti et al (1993), Graphical Process Interaction Networks for Lotos Parallel Expressions, Amodeus Project Document: SM/WP25.
Sigbjorn Finne, Simon Peyton Jones (1995a), Pictures: A simple structured graphics model. In Glasgow Functional Programming Workshop, Ullapool, July 1995.
Sigbjorn Finne, Simon Peyton Jones (1995b), Composing Haggis. In Proceedings of the fifth Eurographics workshop on Programming Paradigms in Graphics, Maastricht, Sept 2–3 1995.
N.E. Fuchs (1992), Specifications are (preferably) executable. In Software Engineering Journal, 1992, 7, (5), pp. 323–334
Andrew D. Gordon and Kevin Hammond (1995), Monadic I/O in Haskell 1.3. In Paul Hudak, editor, Proceedings of the haskell Workshop, pp 50–69. La Jolla, California, June 25 1995.
M.D. Harrison and D.J. Duke (1995), The Specification of User Requirements in Interactive Systems, Amodeus Project Document: SM/WP60.
I.J. Hayes and C.B. Jones (1989), Specifications are not (necessarily) executable, Software Engineering Journal, 1989, 4, (6), pp. 330–338
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.
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).
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.
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 11–13 1991.
Fabio Paterno et al (1994), A Tool-supported Approach to the Refinement of Interactive Systems, Amodeus Project Document: SM/WP39.
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.
Simon Peyton Jones and Philip Wadler (1993), Imperative functional programming. In A CM Conference on the Principles of Programming Languages, pp 71–84. ACM Press, January 1993.
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.
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.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1997 Springer-Verlag/Wien
About this paper
Cite this paper
Sage, M., Johnson, C. (1997). Interactors and Haggis: Executable specifications for interactive systems. In: Harrison, M.D., Torres, J.C. (eds) Design, Specification and Verification of Interactive Systems ’97. Eurographics. Springer, Vienna. https://doi.org/10.1007/978-3-7091-6878-3_7
Download citation
DOI: https://doi.org/10.1007/978-3-7091-6878-3_7
Publisher Name: Springer, Vienna
Print ISBN: 978-3-211-83055-0
Online ISBN: 978-3-7091-6878-3
eBook Packages: Springer Book Archive