User and Context Abstraction

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

Interactive application development typically commences with the elicitation of user requirements by investigating the characteristics of the target user group, performing a detailed task analysis, and determining relevant platform constraints. In current practice, user requirements are often captured in narrative form with no standard representation. To make matters worse, there is no mature process which supports the systematic transformation of user requirements and context information into concrete design solutions. Typically, the design is reliant almost completely on the designer’s previous experience. Our intention is to narrow the current gap between user requirements and conceptual design. To be able to effectively design user interfaces, it is important to capture and represent user requirements and context information in a rigorous manner. This entails representing the user model in a more formal form, facilitating automated analysis and processing. Within our approach, we represent each user description, or persona [14], in the form of variables with discrete domains. Each representative user is characterized by the set of variable assignments. Additionally we establish qualified links between the personas and selected tasks of the user task model. These links are used to further tailor tasks of the user-task model to specific user groups. Examples of the qualifications used are: Task preference, task frequency and preferred device. For the design phase, in order to foster the reuse of proven and valid design solutions, we employ Pattern-Oriented Design POD as our foremost design directive. Therefore, based on the collection of user and context variables, a set of applicable patterns is selected and Pattern-Oriented Design POD is carried out. POD consists of understanding when a pattern is applicable during the design process, how it can be used, as well as how and why it can or cannot be combined with other related patterns. An example outlining its use is presented in Section 2.3. Figure 1 depicts our pattern-based UI development process. The process commences after requirements elicitation and hence assumes the existence of a task model and information about user characteristics. It comprises the following three major phases: User and Context Abstraction: Relevant information about representative users and context of use information are captured as discrete variables into a requirements matrix. Pattern Selection: The mapping module is rule-based, and maps the variables of the requirements matrix with pattern variables in order to extract a set of applicable patterns. Pattern-Oriented Design: The designer further filters the pattern set by choosing appropriate patterns. At this stage, the creativity and experience of the designer plays an important role. The patterns are then used within a pattern-oriented design process to derive the conceptual design of the user interface. In what follows, we will discuss each of the three phases in greater detail. Fig. 1. The Pattern-Based UI Design Process.

2.1 User and Context Abstraction

The first step of our pattern-based UI design process consists of abstracting important user properties from our persona descriptions [14]. In order to increase persona effectiveness as a technique, we develop our personas iteratively using ethnography, domain analysis and empirical evidence; we also extend them to include information about interaction behavior, user tasks and goals [15]. In current practice, user information is often captured in narrative form, with no standard representation. In order to make these requirements amenable for tool support and automated analysis, we represent them by a set of variables grouped into categories. In its current stage, our user variables are grouped into five basic categories; each of them containing about six variables, with one of five possible values. For example, the category Knowledge and Experience contains a variable ‘System Experience’ that can vary from novice to expert on a five-point scale. Another example is the category Psychological Profile and Needs which contains variables such as ‘Initiative Taking’ Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission andor a fee. Conference’04 , Month 1–2, 2004, City, State, Country. Copyright 2004 ACM 1-58113-000-0000004…5.00. proactivereactive user and ‘Control’ amount of control a user needs while interacting with a system. In addition, each persona is linked to a set of context variables. Selected higher-level user tasks, which are domain-dependent, and platform preferences, become important factors for later pattern selection. Examples of tasks relevant to our case study on a web-based application see Section 3 are: ‘Search database’, ‘Browse list’, and ‘Open Tool’, with examples of their user- dependent properties being Frequency of use, Importance and Duration . Furthermore, platform preferences such as Preferred Device are included as context variables. An important characteristic of our process is that task and device requirements are not universally valid across all categories of users. For example, for a novice user the search task may be less important than the browse task, since heshe may not be familiar with the search criteria. The advanced user however, may rate the search task as more important. In a similar manner the preferred device may vary between user groups. Currently we distinguish between three types of platforms: web, GUI, and mobile applications. We adopted this classification from [12] who uses a similar classification for his interaction design patterns. The requirements matrix is a nested table, whose cells contain tuples as entries. Each row of the table represents a different persona. The persona properties are categorized into user and context variables. Variables and categories of variables can be ranked according to importance and impact, as determined by the designer. It is also important to note the task entries contain references to the corresponding node in the task model. These references will help the designer in the later stages of the process to select and apply the patterns appropriately. From a process- point of view, these references help in tracing task-related entries back to their origins in the task model. The selected variables from personas are used as input for the next step of our process, which consists of selecting a set of applicable patterns. After the requirements matrix has been completed, the mapping module analyzes the information in order to select appropriate patterns. This step will be described in the next section.

2.2 Pattern Selection