Skip to main content

A framework for machine-assisted user interface verification

  • Refereed Contributions
  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 936))

Abstract

In this paper we present a formal framework for machine-assisted user interface verification. We focus on user interfaces constructed with tools that are based on a visual scripting formalism. As these tools do not provide a language for describing user interfaces (user interfaces are constructed by direct manipulation) we introduce one. Noting that user interface construction with these tools consists of “wiring” components together, we base the syntax of our language on an existing module interconnection language: in this context a user interface is described as a hierarchy of interconnected component instances. We define the semantics of user interfaces using state sequences; this allows us to reason about their ongoing behavior. We embed the semantics in higher order logic (as mechanized by the HOL system) to allow us to verify properties using formal proof.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. P. S. C. Alencar, D. D. Cowan Cowan, C. J. P. Lucena, and L. C. M. Nova. A Formal Specification of Reusable Interface Components (to appear). Technical report, Computer Science Department, University of Waterloo, Waterloo, Ontario, Canada, 1994.

    Google Scholar 

  2. P.S.C. Alencar, L.M.F. Carneiro-Coffin, D. D. Cowan, and C.J.P. Lucena. Towards a Logical Theory of ADVs. In Proceedings of the Workshop on the Logical Foundations of Object-Oriented Programming (to appear), August 1994.

    Google Scholar 

  3. Heather Alexander. Formally-based tools and techniques for human-computer dialogues. Ellis Horwood Limited, 1987.

    Google Scholar 

  4. Heather Alexander. Structuring dialogues using CSP. In M. Harrison and H. Thimbleby, editors, Formal Methods in Human-Computer Interaction, chapter 9, pages 273–295. Cambridge University Press, 1990.

    Google Scholar 

  5. Peter B. Andrews. An introduction to mathematical logic and type theory: to truth through proof. Academic Press, 1986.

    Google Scholar 

  6. Remi Bastide and Philippe Palanque. Petri net objects for the design, validation and prototyping of user-driven interfaces. In Proceedings of IFIP INTERACT'90: Human-Computer Interaction, Detailed Design: Construction Tools, pages 625–631, 1990.

    Google Scholar 

  7. A. J. Camilleri. Mechanizing CSP trace theory in higher-order logic. IEEE Transactions on Software Engineering, 16(9):993–1004, 1990.

    Google Scholar 

  8. Juanito Camilleri and Vincent Zammit. Symbolic animation as a proof tool. In Thomas F. Melham and Juanito Camilleri, editors, Higher Order Logic Theorem Proving and Its Applications: 7th International Workshop, volume 859 of Lecture Notes in Computer Science, pages 113–127, Valletta, Malta, 19–22 September 1994. Springer-Verlag.

    Google Scholar 

  9. Avra Cohn. The notion of proof in hardware verification. Journal of Automated Reasoning, 5(2):127–140, June 1989.

    Google Scholar 

  10. Nancy Day. A model checker for Statecharts. Technical Report TR-93-35, UBC, October 1993.

    Google Scholar 

  11. Digitalk. PARTS Workbench User's Guide, 1992.

    Google Scholar 

  12. Edsger W. Dijkstra. A Discipline of Programming. Prentice-Hall, Englewood Cliffs, New Jersey, 1976.

    Google Scholar 

  13. Alan Dix and Colin Runciman. Abstract models of interactive systems. In Peter Johnson and Stephen Cook, editors, People and Computers: Designing the Interface, pages 13–22. Cambridge University Press, September 1985.

    Google Scholar 

  14. Michael J.C. Gordon. HOL: A proof generating system for higher-order logic. In Graham Birtwistle and P. A. Subrahmanyam, editors, VLSI Specification, Verification and Synthesis, chapter 3, pages 73–128. Kluwer Academic Publishers, 1988.

    Google Scholar 

  15. D. Harel and A. Pnueli. On the development of reactive systems. In Krzysztof R. Apt, editor, Logics and Models of Concurrent Systems, volume 13 of Series F: Computer and System Sciences, pages 477–498. Springer-Verlag, 1985.

    Google Scholar 

  16. i-Logix Inc., Burlington, MA. The Semantics of Statecharts, January 1991.

    Google Scholar 

  17. IBM. VisualAge: Concepts & Features, 1994.

    Google Scholar 

  18. Imperial College of Science, Technology and Medicine. Darwin Overview, 1994.

    Google Scholar 

  19. Amit Jasuja. Temporal logic in HOL, August 3 1990. In HOL distribution: ftp://lal.cs.byu.edu/pub/hol/holsys.tar.gz.

    Google Scholar 

  20. C. W. Johnson. Applying temporal logic to support the specification and prototyping of concurrent multi-user interfaces. In Proceedings of the HCI'91 Conference on People and Computers VI, Groupware, pages 145–156, 1991.

    Google Scholar 

  21. Ralf Kneuper. Symbolic execution: a semantic approach. Science of Computer Programming, 16:207–249, October 1991.

    Google Scholar 

  22. Leslie Lamport. The temporal logic of actions. ACM Transactions on Programming Languages and Systems, 16(3):872–923, May 1994.

    Google Scholar 

  23. Z. Manna and A. Pnueli. Verification of concurrent programs: a temporal proof system. Technical Report CS-83-967, Stanford Univ., 1983.

    Google Scholar 

  24. Lynn S. Marshall. A formal description method for user interfaces. PhD thesis, University of Manchester, 1986.

    Google Scholar 

  25. Tom F. Melham. Higher order logic and hardware verification, Cambridge University Press, New York, 1993.

    Google Scholar 

  26. Microsoft Corporation. Microsoft Visual Basic Programmer's Guide, 1993.

    Google Scholar 

  27. M.J.C. Gordon. Mechanizing programming logics in higher-order logic. In Graham M. Birtwistle and P. A. Subrahmanyam, editors, Current Trends in Hardware Verification and Automated Theorem Proving (Proceedings of the Workshop on Hardware Verification), pages 387–439, Banff, Canada, 1988. Springer-Verlag.

    Google Scholar 

  28. Brad A. Myers. State of the Art in User Interface Software Tools, chapter 5, pages 110–150. Ablex, Norwood, N.J., 1992.

    Google Scholar 

  29. Brad A. Myers. Why are human-computer interfaces difficult to design and implement? Technical Report CMU-CS-93-183, School of Computer Science, Carnegie Mellon University, July 1993.

    Google Scholar 

  30. Brad A. Myers. User interface software tools. Technical Report CMU-CS-94-182, School of Computer Science, Carnegie Mellon University, August 1994.

    Google Scholar 

  31. Greg Nelson. A generalization of Dijkstra's calculus. ACM Transactions on Programming Languages and Systems, 11(4):517–561, October 1989.

    Google Scholar 

  32. Monica Nesi. A formalization of the process algebra CCS in higher order logic. Technical Report 278, University of Cambridge Computing Laboratory, December 1992.

    Google Scholar 

  33. John K. Ousterhout. Tcl and the Tk Toolkit. Addison-Wesley, 1994.

    Google Scholar 

  34. S. Owre, J. M. Rushby, and N. Shankar. PVS: A prototype verification system. In Deepak Kapur, editor, 11th International Conference on Automated Deduction, LNAI 607, pages 748–752, Saratoga Springs, New York, USA, June 15–18, 1992. Springer-Verlag.

    Google Scholar 

  35. F. Paternó and G. Faconti. On the use of LOTOS to describe graphical interaction. In A. Monk, D. Diaper, and M. D. Harrison, editors, Proceedings of the HCI'92 Conference on People and Computers VII, pages 155–173. Cambridge University Press, September 1992.

    Google Scholar 

  36. Lawrence C. Paulson. Isabelle: A Generic Theorem Prover, volume 828 of Lecture Notes in Computer Science. Springer-Verlag, 1994.

    Google Scholar 

  37. SRI International under contract to DSTO Australia, Cambridge, England. The HOL System: Description, 1989.

    Google Scholar 

  38. Bjarne Stroustrup. The C++ Programming Language. Addison-Wesley, second edition, 1991.

    Google Scholar 

  39. Kari Systä. Specifying user interfaces in DisCo. SIGCHI Bulletin, 26(2):53–58, 1994. Presented at a Workshop on Formal Methods for the Design of Interactive Systems, York, UK, 23rd July 1993.

    Google Scholar 

  40. G. Tredoux. Mechanizing execution sequence semantics in HOL. South African Computer Journal, 7:81–86, July 1992. Proceedings of the 7th Southern African Computer Research Symposium, Johannesburg, South Africa. Also available as part of the HOL distribution: ftp://lal.cs.byu.edu/pub/hol/holsys.tar.gz.

    Google Scholar 

  41. Gavan Tredoux. Mechanizing nondeterministic programming logics in higher-order logic. Technical report, Laboratory for Formal Aspects of CS, Dept Mathematics, University of Cape Town, Rondebosch 7700, South Africa, March 22, 1993.

    Google Scholar 

  42. Joakim von Wright and Thomas Långbacka. Using a theorem prover for reasoning about concurrent algorithms. In G. v. Bochmann and D. K. Probst, editors, Computer Aided Verification: Proceedings of the Fourth International Workshop, CAV '92, number 663 in Lecture Notes in Computer Science, pages 56–68. Springer-Verlag, June/July 1992.

    Google Scholar 

  43. Watcom International Corporation, Waterloo, Ontario, Canada. WATCOM VX-REXX for OS/2 Programmer's Guide and Reference, 1993.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

V. S. Alagar Maurice Nivat

Rights and permissions

Reprints and permissions

Copyright information

© 1995 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Bumbulis, P., Alencar, P.S.C., Cowan, D.D., Lucena, C.J.P. (1995). A framework for machine-assisted user interface verification. In: Alagar, V.S., Nivat, M. (eds) Algebraic Methodology and Software Technology. AMAST 1995. Lecture Notes in Computer Science, vol 936. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-60043-4_71

Download citation

  • DOI: https://doi.org/10.1007/3-540-60043-4_71

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-60043-5

  • Online ISBN: 978-3-540-49410-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics