Abstract
There are many different ways of building software applications and of tackling the problems of understanding the system to be built, designing that system and finally implementing the design. One approach is to use formal methods, which we can generalise as meaning we follow a process which uses some formal language to specify the behaviour of the intended system, techniques such as theorem proving or model-checking to ensure the specification is valid (i.e., meets the requirements and has been shown, perhaps by proof or other means of inspection, to have the properties the client requires of it) and a refinement process to transform the specification into an implementation. Conversely, the approach we take may be less structured and rely on informal techniques. The design stage may involve jotting down ideas on paper, brainstorming with users etc. We may use prototyping to transform these ideas into working software and get users to test the implementation to find problems. Formal methods have been shown to be beneficial in describing the functionality of systems, what we may call application logic, and underlying system behaviour. Informal techniques, however, have also been shown to be useful in the design of the user interface to systems. Given that both styles of development are beneficial to different parts of the system we would like to be able to use both approaches in one integrated software development process. Their differences, however, make this a challenging objective. In this paper we describe models and techniques which allow us to incorporate informal design artefacts into a formal software development process.
Similar content being viewed by others
References
13568 I (2002) Information Technology—Z Formal Specification Notation—Syntax, Type System and Semantics, 1st edn. Prentice-Hall International Series in Computer Science, ISO/IEC, Upper Saddle River
Blandford AE, Butterworth R, Curzon P (2001) PUMA footprints: linking theory and craftskill in usability evaluation. In: Proceedings of Interact, IOS Press, Amsterdam pp 577–584
BlandfordAButterworthR Curzon P (2004) Models of interactive systems: a case study on programmable user modelling. Int J Hum-Comput Stud 60(2): 149–200. doi:10.1016/j.ijhcs.2003.08.004
Bowen J (2005) Formal specification of user interface design guidelines. Master’s thesis, University of Waikato
Bowen J, Reeves S (2006) Formal models for informal GUI designs. In: 1st International Workshop on Formal Methods for Interactive Systems, Macau SAR China, 31 October 2006, Electronic Notes in Theoretical Computer Science, Elsevier, Amsterdam
Bowen J, Reeves S (2006) Formal refinement of informal GUI design artefacts. In: Proceedings of the Australian Software Engineering Conference (ASWEC’06), IEEE, pp 221–230
Butterworth R, Blandford A (1997) Programmable user models: the story so far, Technical report, Middlesex University
Correani F, Mori G, Paternò F (2004) Supporting flexible development of multi-device interfaces. In: EHCI/DS-VIS, pp 346–362
Courtney A (2003) Functionally modeled user interfaces. In: Joaquim J, Jardim Nunes N, Falcao e Cunha J (ed) Interactive Systems. Design, Specification, and Verification. 10th International Workshop DSV-IS 2003, Funchal, Madeira Island (Portugal) Springer Verlag Lecture Notes in Computer Science LNCS, pp 107–123
Coyette A, Faulkner S, Kolp M, Limbourg Q, Vanderdonckt J (2004) Sketchixml: towards a multi-agent design tool for sketching user interfaces based on usixml. In: TAMODIA ’04: Proceedings of the 3rd annual conference on Task models and diagrams, ACM Press, New York, pp 75–82. http://doi.acm.org/10.1145/1045446.1045461
Derrick J, Boiten E (2001) Refinement in Z and object-Z: foundations and advanced applications. Formal approaches to computing and information technology, Springer, Berlin. http://www.cs.ukc.ac.uk/pubs/2001/1200
Dijkstra EW (1976) A discipline of programming. Prentice Hall, Upper Saddle River
Dix A, Runciman C (1985) Abstract models of interactive systems. People and Computers: Designing the Interface, Cook PJ (ed). Cambridge University Press, Cambridge, pp 13–22
Dourish P (2006) Implications for design. In: CHI ’06: Proceedings of the SIGCHI conference on Human Factors in computing systems, ACM, New York, pp 541–550. http://doi.acm.org/10.1145/1124772.1124855
Duke DJ, Fields B, Harrison MD (1999) A case study in the specification and analysis of design alternatives for a user interface. Formal Asp Comput 11(2): 107–131
Gieskens DF, Foley JD (1992) Controlling user interface objects through pre- and postconditions. In: Proc. of CHI-92, Monterey, CA, pp 189–194
GNOME Human Interface Guidelines(1.0), 2002 (2007) http://developer.gnome.org/projects/gup/hig/1.0/, GNOME Human Interface Guidelines (1.0)
Gow J, Thimbleby HW, Cairns PA (2005) Automatic critiques of interface modes. In: DSV-IS, pp 201–212
Henson MC, Reeves S (2000) Investigating Z. J Log Comput1 10(1): 1–30
Horrocks I (1999) Constructing the user interface with statecharts. Addison-Wesley Longman, Boston
Hussey A, MacColl I, Carrington D (2000) Assessing usability from formal user-interface designs. Tech. Rep. TR00-15, Software Verification Research Centre, The University of Queensland
IFM07 (2007) http://www.softeng.ox.ac.uk/ifm2007/, http://www.softeng.ox.ac.uk/ifm2007/
Landay J (1996) Silk: Sketching interfaces like krazy. In: Human Factors in Computing Systems (Conference Companion), ACM CHI ’96, Vancouver, Canada, 13–18 April, pp 398–399, http://citeseer.ifi.unizh.ch/landay96silk.html
Morgan C (1998) Programming from specifications, 2nd edn. Prentice Hall, Hertfordshire
Paiva A, Tillmann N, Faria J, Vidal R (2005) Modeling and testing hierarchical GUIs. In: Beauquier D, Borger E, Slissenko A (eds) ASM05, Universite de Paris
Parnas DL (1969) On the use of transition diagrams in the design of a user interface for an interactive computer system. In: Proceedings of the 1969 24th national conference, ACM Press, pp 379–385
Paternò F (2001) Task models in interactive software systems. Handbook of software engineering and knowledge engineering
Paternò F (2001) Towards a UML for interactive systems. In: EHCI ’01: Proceedings of the 8th IFIP International Conference on Engineering for Human-Computer Interaction, Springer, London, pp 7–18
Paternò FM, Sciacchitano M, Lowgren J (1995) A user interface evaluation mapping physical user actions to task-driven formal specification. In: Design, specification and verification of interactive systems, Springer, London, pp 155—173
Pfaff GE (1985) User interface management systems. Springer, New York
Plimmer B, Apperley M (2002) Computer-aided sketching to capture preliminary design. In: CRPIT ’02: Third Australasian conference on User interfaces, Australian Computer Society, Inc., Darlinghurst, Australia, Australia, pp 9–12
Reeve G (2005) A refinement theory for μcharts. PhD thesis, The University of Waikato
Shneiderman B (1998) Designing the user interface: strategies for effective human-computer interaction, 3rd edn. Addison Wesley Longman, Boston
Smith G (2000) The object-Z specification language. Kluwer, Dordrecht
Smith S, Mosier J (1986) Guidelines for designing user interface software. Tech. Rep. ESD-TR-86-278, Mitre Corporation, Bedford, MA
Thimbleby H (1990) Design of interactive systems. The Software Engineer’s Reference Book
Thimbleby H (2004) User interface design with matrix algebra. ACM Trans Comput Hum Interact 11(2): 181–236
Top 10 Mistakes in Web Design (2007) Jakob Nielsen: Top 10 mistakes in web design, available online. http://www.useit.com/alertbox/9605.html, http://www.useit.com/ Jakob Nielsen’s usable information technology website
Tsujino Y (2000) A verification method for some GUI dialogue properties. Syst Comput Jpn 31(14): 38–46
Wirth N (1971) Program development by stepwise refinement. Commun ACM 14(4):221–227, http://www.acm.org/classics/dec95/
Woodcock J, Davies J (1996) Using Z: Specification, Refinement and Proof. Prentice Hall, Upper Saddle River
Young RM, Green TRG, Simon T (1989) Programmable user models for predictive evaluation of interface designs. SIGCHI Bull 20(SI):15–19. http://doi.acm.org/10.1145/67450.67453
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Bowen, J., Reeves, S. Formal models for user interface design artefacts. Innovations Syst Softw Eng 4, 125–141 (2008). https://doi.org/10.1007/s11334-008-0049-0
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11334-008-0049-0