Refinement for User Interface Designs

Formal approaches to software development require that we correctly describe (or specify) systems in order to prove properties about our proposed solution prior to building it. We must then follow a rigorous process to transform our specification into an implementation to ensure that the properties we have proved are retained. Different transformation, or refinement, methods exist for different formal methods, but they all seek to ensure that we can guide the transformation in a way which preserves the desired properties of the system. Refinement methods also allow us to subsequently compare two systems to see if a refinement relation exists between the two. When we design and build the user interfaces of our systems we are similarly keen to ensure that they have certain properties before we build them. For example, do they satisfy the requirements of the user? Are they designed with known good design principles and usability considerations in mind? Are they correct in terms of the overall system specification? However, when we come to implement our interface designs we do not have a defined process to follow which ensures that we maintain these properties as we transform the design into code. Instead, we rely on our judgement and belief that we are doing the right thing and subsequent user testing to ensure that our final solution remains useable and satisfactory. We suggest an alternative approach, which is to define a refinement process for user interfaces which will allow us to maintain the same rigorous standards we apply to the rest of the system when we implement our user interface designs.

[1]  C. A. R. Hoare,et al.  Communicating sequential processes , 1983, CACM.

[2]  Carroll Morgan,et al.  Programming from specifications (2nd ed.) , 1994 .

[3]  Michael D. Harrison,et al.  Mapping user requirements to implementations , 1995, Softw. Eng. J..

[4]  Steve Reeves,et al.  µ-Chart-Based Specification and Refinement , 2002, ICFEM.

[5]  Judy Bowen,et al.  Using formal models to design user interfaces: a case study , 2007, BCS HCI.

[6]  R. Lathe Phd by thesis , 1988, Nature.

[7]  Benjamin Michotte,et al.  USIXML: A Language Supporting Multi-path Development of User Interfaces , 2004, EHCI/DS-VIS.

[8]  Judy Bowen,et al.  Formal Models for Informal GUI Designs , 2007, FMIS@ICFEM.

[9]  Judy Bowen,et al.  Formal refinement of informal GUI design artefacts , 2006, Australian Software Engineering Conference (ASWEC'06).

[10]  Eerke Albert Boiten,et al.  Refinement in Z and Object-Z: Foundations and Advanced Applications , 2001 .

[11]  Alan Bundy,et al.  Constructing Induction Rules for Deductive Synthesis Proofs , 2006, CLASE.

[12]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[13]  Fabio Paternò,et al.  Tool support for designing nomadic applications , 2003, IUI '03.

[14]  Bob Fields,et al.  Exploring Design Options Rationally , 1995, DSV-IS.

[15]  David A. Carrington,et al.  Assessing usability from formal user-interface designs , 2001, Proceedings 2001 Australian Software Engineering Conference.

[16]  James Wong COMPUTER SCIENCE DEPARTMENT , 1971 .

[17]  D. Duce,et al.  AN APPROACH TO THE FORMAL SPECIFICATION OF THE COMPONENTS OF AN INTERACTION , 2002 .

[18]  Jacob Eisenstein,et al.  XIML: a common representation for interaction data , 2002, IUI '02.

[19]  Greg Reeve,et al.  A Refinement Theory for µ-Charts , 2005 .

[20]  Michael D. Harrison,et al.  Abstract Interaction Objects , 1993, Comput. Graph. Forum.

[21]  Carroll Morgan,et al.  Programming from specifications , 1990, Prentice Hall International Series in computer science.

[22]  Antonio Cerone,et al.  2nd International Workshop on Formal Methods for Interactive Systems , 2007, BCS HCI.

[23]  Steve Reeves,et al.  Micro-chart based specification and refinement , 2002 .

[24]  Michael D. Harrison,et al.  A representational approach to the specification of presentations , 1997, DSV-IS.

[25]  Fabio Paternò,et al.  An Approach to the Formal Specification of the Components of an Interaction , 1990, Eurographics.

[26]  Perdita Stevens,et al.  Refinement in Z and object-Z: foundations and advanced applications , 2002, Softw. Test. Verification Reliab..

[27]  Niklaus Wirth,et al.  Program development by stepwise refinement , 1971, CACM.

[28]  Fabio Paternò,et al.  One Model, Many Interfaces , 2002, CADUI.