Pattern-Based UI Design: Adding Rigor with User and Context Variables
Homa Javahery
1
, Daniel Sinnig
1
, Ahmed Seffah
1
, Peter Forbrig
2
and T. Radhakrishnan
1
1
Department of Computer Science and Software Engineering, Concordia University
Montreal, QC, Canada H3G 1M8 h_javaheencs.concordia.ca
2
Department of Computer Science University of Rostock
Albert-Einstein-Str.21, 18051, Rostock, Germany
ABSTRACT
In current practice, user interface development is often based on a vague and undocumented design process, relying solely on the
designer’s experience. This paper defines a pattern-based design process, which adds rigor to user interface design. The process is
based on the notion of user variables to capture user requirements in a formal manner – based on discrete values that are amenable
for tool support and automated analysis. Other context of use information is captured as context variables. Using these values as
input, design patterns are selected to leverage best design practices directly into user interface development. Pattern-
Oriented Design is then employed to derive a conceptual design, or early prototype, of the user interface. A case study with a
Bioinformatics information site exemplifies the feasibility and applicability of this process.
Categories and Subject Descriptors
H5.2. Information interfaces and presentation e.g., HCI: User Interfaces.
General Terms
Design, Experimentation, Human Factors.
Keywords
HCI patterns, pattern-oriented design, persona, user variables, design methodology, context.
1. INTRODUCTION
Over the last decade, the development of interactive applications, and consequently the user interface UI, has become increasingly
complex. Designers need to be aware of many different factors which influence UI design: a user analysis and their
characteristics, b environmental constraints such as platform and device characteristics, and c task analysis in the intended
place of use. Collectively these are referred to as the context of use [1]. Since the UI development process has become highly
context-sensitive, UI Design based on the intuition of the designer is no longer adequate. In order to cope with this multi-
dimensional complexity, we need to add rigor to UI development. To attain this feat, we require processes that are systematic,
traceable and practical for designers, but which also leave room for design creativity when appropriate.
In recent years, there have been considerable efforts to add rigor to UI development. One such approach is model-based UI
development. The main idea surrounding model-based approaches is to identify useful abstractions that highlight key aspects to be
considered when designing interactive applications [2]. Central to all model-based approaches is that all aspects of a user interface
design are represented using declarative models. In a model-based approach, the UI design is the process of creating and refining the
user interface models at different levels of abstraction [3]. In other words, model-based design focuses on finding mappings between
the various models [4]. Eventually, user interfaces are generated automatically or semi-automatically with the designer’s
interventions and decisions, from the model descriptions.
Model-based user interface development has been investigated and researched for more than a decade [5]. Even though its
potential and advantages are considerable, none of the model- based frameworks have been adopted by the mainstream
developer. Industry does not share the perspective of employing model-based techniques for UI development. On the contrary;
industry is still led by RAD Rapid Application Development tools, IDE Integrated Development Environments and authoring
tools like Macromedia Dreamweaver or Macromedia Flash [6]. The main problems of model-based UI development are the lack
of tool support, the immaturity of the process that transforms one model into another for refinement, and the lack of technology
which is capable of rendering usable user interfaces from the model descriptions [7].
Taking these arguments into consideration we investigate an alternative solution, which, similar to model-based UI
development, abstracts important requirements and context properties. However, in contrast to model-based UI development
where model transformations are the means for successive refinements, we employ patterns to derive a UI prototype. Our
development framework is based on Pattern-Oriented Design POD as a driving force for developers [8]. Design patterns are
proven solutions to common design problems, and have been successfully applied in many different domains [9, 10, 11]. In user
interface design, patterns have been introduced as a medium to capture, disseminate and reuse proven design knowledge, and to
facilitate the design of more usable systems [12, 13]. Patterns are presented in a specific format with defined attributes, and are
applicable at different levels of abstraction. These levels include the user-task model, navigation model and presentation model for
the concrete presentation of the user interface. Moreover, patterns are context-sensitive entities, which make them particularly
attractive as a tool to facilitate UI design.
In this paper, we propose to add rigor to UI development by using a clearly defined process; based on a finite set of variables
containing discrete values and best design practices captured as
patterns. We will define a pattern-based design framework, which helps designers derive an early UI prototype, or conceptual
design, from specified variables. These variables abstract important properties from the user and context of use. The
resulting UI prototype is then used for stakeholder evaluations and early usability testing. Design flaws are detected at a very
early stage within UI development and can be recovered with little effort. Finally the prototype serves as a basis for the actual
implementation of the UI.
2. Pattern-Based User Interface Development