Traditionally, the software development process has tended to fall within the realm of software engineering. The field of software engineering typically includes the study of different paradigms and methods for software construction as well as software reliability and maintenance. The author’s research (Wesson, 1997), (Wesson, 1999) has shown, however, that truly usable systems can only be developed using a user-centered approach with an early focus on the tasks of the user. During the past few years, several structured user-centered design methodologies have emerged. These include the Method for Usability Engineering or MUSE (Lim & Long, 1994), the TRIDENT methodology (Vanderdonckt et al, 1995), and the Graphical User Interface and Design or GUIDE method (Redmond-Pyle & Moore, 1995). Research has shown, however, that none of these methods adequately address the entire software development lifecycle (Wesson et al, 1997). The author has proposed a framework therefore for a design methodology (UNION) which adopts a user-centered approach to the entire software design lifecycle.
The three main phases in the UNION methodology are Analysis, Design and Implementation. Analysis is concerned with the collection and specification of requirements. During this phase a task analysis of the specific goals of the users is conducted in order to construct a generalized Task Model. This Task Model provides the basis for the conceptual modelling phase which follows. An object-oriented approach to conceptual modelling is used in order to identify the main classes in the system, together with the attributes, methods and associations between classes. An initial analysis of the UI classes and the interaction between the classes is also performed.
Design is concerned with refining and extending the requirements to derive a complete design specification. This process includes extending the Object Model to include a UI Object Model, a PD Object Model, and a Dynamic Model. The PD Object Model represents a model of the conceptual problem domain objects, whilst the UI Object Model represents a model of the interface objects. The Dynamic Model represents a model of the interaction and collaboration between the conceptual and the interface objects. This phase also includes an iterative prototyping phase wherein the UI Design is prototyped and verified. An OOUI design approach is used together with macro and micro-level UI design heuristics to design the UI for the artifact.
Implementation is concerned with mapping the design specification into physical database schemas, objects, and development environments. Also included here is a detailed system evaluation which is used to iteratively refine the systems design.
It is envisaged that the UI design phase of UNION could be substantially enhanced by the provision of several patterns for interaction design. The macro and micro-level UI design heuristics could be replaced by a pattern language for UI design. The goal of this pattern language would be to assist the UI designer in selecting the most appropriate interaction object to use based on the underlying conceptual model. Thus the patterns could be used to describe the surface of the artifact, i.e. the way it looks and behaves. The UI designer would start from the conceptual model, derive the UI model, and use the interaction patterns to map the attributes in the UI model to the most suitable interaction objects in a given domain.
The UNION methodology includes a refinement of the corpus of rules as proposed by Vanderdonckt for selecting interaction objects (Vanderdonckt, 1995), (Stewart, 1999). It is proposed that this simplified corpus of selection rules could be used to derive a pattern language for selecting interaction objects for form-based artifacts. Tidwell (Tidwell, 1999), has outlined a Form pattern in which she includes several subpatterns. In the solution for the Form pattern, Tidwell outlines several design principles, notably concerning layout, display and format. The resulting context discusses that the UI designer must pick controls for each piece of information to be supplied. The controls listed include Choices from a Small Set, Choices from a Large Set, Text Entry, etc. No detailed patterns are given however, for each of these controls. It is thus clear that the Form pattern needs to be extended to include a detailed pattern language for selecting the most suitable control.
An example of such a pattern is proposed in the next section.
Context: You need to select the most appropriate interaction object for entering information in a form.
Redmond-Pyle, D. and Moore, A. (1995). Graphical User Interface Design and Evaluation (GUIDE): A Practical Process. Prentice-Hall.
Stewart, R.I. (1999). An Expert System for Selecting Interaction Objects for User Interface Design. MSc treatise, University of Port Elizabeth (in progress).
Vanderdonckt, J., Zucchinetti, G. (1995). Key Activities for a Development Methodology for Interactive Applications. In D.Benyon and Ph. Palanque (editors), Critical Issues in User Interface Systems Engineering, chapter 7. Springer-Verlag.
Tidwell, Jenifer (1999). Common Ground: A Pattern Language for Human-Computer Interface Design. http://www.mit.edu/~jtidwell/common_ground.html
Wesson, Janet L. (1997). An Investigation into Design Methodologies for Usability: A Case Study Approach. PhD thesis, University of Port Elizabeth.
Wesson, J.L., De Kock, G. de V., and Warren, P.R. (1997). Designing for Usability: A Case Study, presented at INTERACT'97, Sydney (Australia), 14-18 July 1997. (In Steve Howard, Judy Hammond and Gitte Lindgaard, editors, Human-Computer Interaction INTERACT'97, pages 31-38, Chapman & Hall).
Wesson, J. (1999) Integrating HCI with the Software Development Process. To be presented at BitWorld’99, Cape Town, 30 June-2 July 1999.