ebook img

Pattern languages in HCI PDF

54 Pages·2010·0.24 MB·English
by  DeardenAndy
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Pattern languages in HCI

Citation: Dearden, A and Finlay, J (2006) Pattern languages in HCI: A critical review. HUMAN-COMPUTER INTERACTION,21(1). 49-102. ISSN0737-0024DOI:https://doi.org/10.1207/s15327051hci2101_3 Link to Leeds Beckett Repository record: https://eprints.leedsbeckett.ac.uk/id/eprint/953/ Document Version: Article (Accepted Version) The aim of the Leeds Beckett Repository is to provide open access to our research, as required by funder policies and permitted by publishers and copyright law. The Leeds Beckett repository holds a wide range of publications, each of which has been checked for copyright and the relevant embargo period has been applied by the Research Services team. We operate on a standard take-down policy. If you are the author or publisher of an output and you would like it removed from the repository, please contact us and we will investigate on a case-by-case basis. Each thesis in the repository has been cleared where necessary by the author for third party copyright. If you would like a thesis to be removed from the repository or believe there is an issue with copyright, please contact us on [email protected] and we will investigate on a case-by-case basis. Pattern Languages in HCI: A critical review Andy Dearden Janet Finlay School of Computing & School of Computing Management Sciences Leeds Metropolitan University Sheffield Hallam University The Grange, Beckett Park Sheffield, S1 1WB, UK Leeds, LS6 3QS, UK Tel: +44 (0)114 225 2916 Tel: +44 (0)113 283 2600 Fax: +44 (0)114 225 3161 Fax: +44 (0)113 283 3182 Email:[email protected] Email: [email protected] Abstract This paper presents a critical review of patterns and pattern languages in human- computer interaction (HCI). In recent years, patterns and pattern languages have received considerable attention in HCI for their potential as a means for developing and communicating information and knowledge to support good design. This review examines the background to patterns and pattern languages in HCI, and seeks to locate pattern languages in relation to other approaches to interaction design. The review explores four key issues: what is a pattern? what is a pattern language? how are patterns and pattern languages used? and how are values reflected in the pattern-based approaches to design? Following on from the review, a future research agenda is proposed for patterns and pattern languages in HCI. 1. Introduction A pattern may be defined as a structured description of an invariant solution to a recurrent problem within a context. A pattern language is a collection of such patterns organised in a meaningful way. In recent years patterns and pattern languages have attracted increasing attention in human computer interaction (HCI) for their potential in recording and communicating design knowledge and supporting the design process. Patterns and pattern languages are now being developed and presented in a wide range of HCI areas, including: ubiquitous systems (Roth, 2002), web design (van Duyne et al. 2003), safety-critical interactive systems (Hussey, 1999), multimedia exhibits (Borchers, 2001), hypertext and hypermedia (Rossi et al. 1997; Nanard et al., 1998), personal digital assistants (Wier & Noble, 2003), socio-technical systems (Thomas, 2003) and games design (Bjork et al., 2003), as well as more general interaction design languages (Tidwell, 1998, 2003; van Welie, 2003; Laakso, 2003). Initial efforts exploring patterns tended to focus on specific pattern development, leading to repeated debates on correctness and commonality of form and structure, together with a certain amount of “partisanship” regarding particular pattern approaches. Work in software engineering and in interaction design shows a variety of debates about the nature of ‘patterns’. Various common elements are generally agreed to be relevant parts of the presentation of patterns, but different authors give significantly different emphases. The result of this is a field that can be daunting to the newcomer, who may find it difficult to disentangle the conceptual characteristics of the approach and therefore its potential contribution to HCI. In this paper, we present a critical review of research on patterns and pattern languages in interactive systems design, highlighting four key issues within the field. Our aim is to provide an overview of the field, and identify key literature that may be useful and informative to HCI practitioners and researchers. This review also aims to locate patterns in relation to other established and emerging techniques in interactive systems design such as: guidelines and heuristics (Smith & Mosier, 1986; Nielsen, 1994), style-guides (e.g. Microsoft Corporation, 2003; GNOME project, 2003); participatory design (Greenbaum & Kyng, 1991; Schuler & Namioka, 1993), claims analysis (Sutcliffe & Carroll, 1999; Sutcliffe 2000) and design rationale (MacLean et al., 1991). We begin by outlining the scope of the pattern endeavour that we will consider. We then present a short history of patterns, beginning with Alexander’s exposition in architecture, through work in software engineering, to the consideration of patterns in human- computer interaction, in order to place the latter in its historical context. Our review then examines: different interpretations of the concept of pattern; different ideas on the nature of pattern language, different approaches to the use of patterns within the design process, and different ideas about the role of values in pattern-supported design, before suggesting an agenda for future research. 2. The scope of this review This review is addressed to practitioners and researchers in HCI. Consequently, the primary focus is on patterns and pattern languages that discuss interaction and interface design issues. There are, however, a large number of patterns from other domains, e.g. software engineering and organisational design, which may have a bearing on interactions between humans and computers. To avoid extending the scope of our review beyond practical limits, we define three broad classes of software-related pattern and pattern language that may be discussed: General software design patterns –a problem is stated in terms of desirable qualities of the internal structure and behaviour of software, and the solution is stated in terms of suggested code structures. The majority of patterns in Gamma et al. (1995) fall into this category. Interface software design patterns – a problem is stated in the domain of desirable interaction behaviours, and the solution is stated in terms of suggested code structures. Examples in this category include: patterns for implementing systems that follow a ‘tools (cid:0) (cid:1)(cid:3)(cid:2)(cid:5)(cid:4)(cid:6)(cid:0) (cid:7) (cid:8) (cid:9) (cid:10) (cid:0) (cid:11) (cid:12) (cid:13)(cid:14)(cid:4)(cid:6)(cid:8) (cid:7) (cid:0) (cid:15)(cid:17)(cid:16)(cid:3)(cid:18) (cid:9)(cid:20)(cid:19) (cid:21)(cid:22)(cid:10) (cid:8) (cid:16)(cid:23)(cid:11) (cid:8)(cid:22)(cid:24)(cid:26)(cid:25) (cid:11) (cid:11) (cid:10) (cid:27)(cid:14)(cid:16)(cid:3)(cid:18) (cid:28)(cid:3)(cid:8) (cid:1)(cid:3)(cid:29)(cid:31)(cid:30) (cid:17) (cid:23)! " #(cid:14)(cid:15)(cid:3)(cid:0) (cid:7) (cid:7) (cid:8) (cid:9) (cid:1)(cid:3)(cid:12)%$ (cid:18) (cid:9)&(cid:10) (cid:4)’(cid:15)(cid:23)(cid:11) (cid:8) (cid:4)((cid:8) (cid:1)(cid:17)(cid:7) (cid:10) (cid:1)(cid:23)(cid:27))(cid:2)(cid:14)(cid:10) (cid:27)(cid:17)(cid:10) (cid:7) (cid:0) (cid:11) sound synthesis systems (Judkins and Gill 2000); patterns to implement queuing of interaction events (Wake et al. 1996); patterns for e-commerce agent systems (Weiss 2001); and patterns for mobile services (Roth 2002). Interaction design patterns – a problem is stated in the domain of human interaction issues, and the solution is stated in terms of suggested perceivable interaction behaviour. A good example in this category is Tidwell’s (1998) pattern collection including patterns such as ‘go back to a safe place’ which advocates providing users with a clearly identifiable way of returning a system to a well known state such as the home page of a website. Borchers (2001) includes three distinct pattern languages, the second of which is composed of interaction design patterns and the third of interface software design patterns. Based on the definitions above, this review is primarily concerned with ‘Interaction Design Patterns’ and, to a lesser extent with ‘Interface Software Design Patterns’. To set the review in context, it is necessary to consider other literature, particularly from Software Engineering and Architecture. However, within such literature, this review will be restricted to general discussions of pattern languages, rather than discussions of the detailed content of the patterns themselves. Due to space constraints the paper does not provide detailed illustratory examples of patterns, for which the reader is referred to published pattern languages and collections (e.g. Alexander, 1977; Gamma et al. 1995; van Duyne et al. 2003) or the available web-based collections of interaction design patterns (e.g. Tidwell, 1999, 2003; van Welie, 2003; Brighton Usability Group, 2003). The early work of Alexander and colleagues (1975, 1977, 1979, 1982, 1985, 1987) in developing pattern languages in architecture will be considered in order to locate HCI patterns within an appropriate historical context. 3. A Short History of Patterns 3.1 Christopher Alexander Design patterns and pattern languages arose in architecture from the work of Christopher Alexander and his colleagues. Within his profession his proposals have been controversial (Dovey, 1990) but nonetheless they have captured the public imagination with regard to architecture (King, 1993; Gabriel, 1996b) and have been influential in several other domains. Alexander’s early work, summarised in ‘Notes on the Synthesis of Form’ (Alexander, 1964), proposed a systemic approach to architectural design problems. The approach involves analytic decomposition of the problem into sub-problems, each characterized by a set of competing forces. By resolving the forces in each sub-problem, and synthesizing the individual solutions, the architect generates a solution to the original global problem. Alexander (1964) even considered the possibility of a computational solution to such problems. During the period from the mid sixties to mid seventies, Alexander became sceptical of his suggestions in ‘Notes on the Synthesis of Form’. In the 1970s and early 80s, he and his colleagues set out to define a new understanding and a new approach to architectural design. Grabow (1983), in his biography, describes the changes in Alexander’s thinking during this period as a ‘paradigm shift’. The new approach, centred on the concept of pattern languages, is described in a series of books, namely: The Timeless Way of Building (Alexander, 1979); A Pattern Language (Alexander et al., 1977); The Oregon Experiment (Alexander et al. 1975); The Linz Café / Das Kafe Linz (Alexander, 1982); The Production of Houses (Alexander et al., 1985) and A New Theory of Urban Design (Alexander et al. 1987). The books were published as a series, and are explicitly given volume numbers, which do not correspond with the chronological order of publication. Volume one of the series (The Timeless Way of Building) sets out Alexander’s view of how patterns and pattern languages evolve, and how they should be utilized in design. Volume two (A Pattern Language) offers one instance of a pattern language. The last four volumes of the series each recount a case study in which the pattern based approach to design was applied. 3.2 Pattern Languages in Software Engineering In the late 1980s and early 1990s, researchers in software engineering were exploring ways to re-use design knowledge. For example, Coplien (1992) investigated idiomatic styles of C++ code, Wirfs-Brock et al. (1991) examined the design of frameworks that supported effective code re-use, Garlan and colleagues investigated the re-use of formal specifications for a family of products (Garlan & Delisle 1990), and generic software architectures that could be refined to specific implementations (Galan & Notkin 1991, Garlan & Shaw 1993). Alexander’s concept of ‘design patterns’ was noticed in the context of this research (Beck & Cunningham, 1987; Coad, 1992; Anderson, 1993; Coad & Mayfield, 1993; Gamma et al. 1993; Anderson et al. 1994). The first conference on ‘Pattern Languages of Programming’ (PLoP) was held in August 1994 (Coplien & Schmidt, 1995). Since then, PLoP conferences have been held annually (Vlissides, Coplien & Kerth, 1996; Martin et al., 1997; Harrison et al., 1999; PLoP, 1998; PLoP, 1999, PLoP, 2000, PLoP, 2001; PLoP 2002; PLoP, 2003). Other conference series investigating pattern languages in software engineering have also been established, e.g. EuroPLoP in Europe and KoalaPLoP in Australasia. Another important milestone was the publication of Gamma et al. (1995), often referred to as the ‘Gang of Four’ book, which remains one of best selling books in software engineering. 3.3 Patterns in HCI Early work on patterns in software engineering included solutions for user-interface software design. Thus, Gamma et al. (1993, 1995) include patterns such as ‘Observer’ (an abstraction similar to the ‘Model View Controller’ architecture) and ‘Decorator’ (a software design solution used for embellishments such as scrollable panels). The proceedings of the first meeting of PLoP begin with two papers presenting a single interaction design pattern (Adams 1995) and a pattern language with four interaction design patterns to describe a ‘tools and materials’ metaphor for user interface design, and seven interface software patterns that help implement such interfaces (Riehle & * + + , -(cid:14).(cid:3)/ 0(cid:3)1 2(cid:3)3(cid:31)4 5(cid:17)5(cid:23)6 7 8 In the proceedings of the third meeting (Martin et al., 1997), user-interface patterns were recognized as a discrete area of interest and afforded a separate ‘part’ of the proceedings, despite being represented by a single paper (Bradac & Fletcher, 1997). In the fourth meeting, four papers were grouped in the proceedings as relating to ‘Patterns of Human- Computer Interaction’ (see Harrison et al., 1999). In 1998, (PLoP, 1998) the organisers grouped the papers using section titles taken from ‘A Pattern Language’, with the majority of interaction design patterns appearing in the session ‘Zen View’ (pattern 134 in A Pattern Language). Eight of the papers at the 1998 conference include interaction design or interface software design patterns. In 1999 (PLoP, 1999), four papers addressing user-interface issues appear in a group together with two patterns that are primarily concerned with network performance issues. In recent years PLoP has included only a small number of examples of interaction design patterns. Whilst the number of interaction design and interface software design patterns appearing in PLoP was falling, interest in patterns at meetings of the HCI community was growing. Patterns workshops have become regular events at CHI (Bayle et al. 1998, Griffiths et al., 2000, van Welie et al. 2002, Fincher et al., 2003), as well as being held at a meeting of the Usability Professionals Association in 1999 (Granlund & Lafreniere, 1999a), and at Interact in 1999 (Griffiths, et al. 1999). Panels were held at CHI 2001(Borchers & Thomas, 2001) and at IHM-HCI 2001 (Griffiths & Pemberton, 2001) Papers discussing the use of patterns have been published at a variety of forums including DIS (Erickson, 2000a), ECSCW (Martin et al. 2001), PDC (Dearden et al., 2002; Schuler, 2002) and ACM Hypertext conferences (Rossi, 1997; Nanard et al. 1998). More recently a number of interaction design pattern languages have been published in book form, including Borchers’ triple languages for the development of interactive exhibits (Borchers, 2001), Van Duyne et al.’s Design of Sites language (Van Duyne et al., 2003) and, most recently, Graham’s (Graham, 2003) language on web usability. These developments are consistent with the expectations of the participants in the early PLoP meetings. In their introduction to the proceedings of the first PLoP conference, Johnson & Cunningham (1995) state their expectation that “as the PLoP community grows and matures … PLoP will itself splinter along traditional lines of interest” [ibid. p. ix]. The remainder of this paper will consider four of the key issues that arise within patterns research. We begin with the fundamental question of what is a pattern. 4. Issue 1: What is a pattern? The debate as to what constitutes a pattern has occupied considerable attention in software engineering and HCI. Lea (1994) describes the term pattern as a ‘pre-formal construct’, noting that Alexander provides no formal definition. Alexander offers many different descriptions of patterns that are taken up by different authors. Coad (1992) emphasises the idea of patterns emerging from repetitions in human behaviour, quoting Alexander’s observation that ‘every place is given its character by certain patterns of events that keep on happening there’ (Alexander, 1979, as quoted by Coad, 1992, p 152). Gabriel (1996b), Denning & Dargan (1996), Cline (1996) Johnson & Cunningham (1995) and Borchers (2001a) also highlight this view. This viewpoint emphasises patterns as recurrent phenomena or structures that must be observed and discovered. The POINTER project (Martin et al., 2001, 2002) captures just such recurrent phenomena, drawing on examples of common interactions derived from ethnographic studies. An alternative view highlights patterns as artefacts for the explicit representation of design guidance. Gamma et al. (1995) quote Alexander ‘Each pattern describes a problem … and then describes the core of the solution …’ (Alexander et al., 1977, page x, as quoted by Gamma et al. 1995, p 2). Beck et al. (1996) describe patterns as ‘a particular prose form’ (ibid. p. 103) and Borchers’ (2001a) describes patterns as ‘… above all, a didactic medium for human readers …’ (ibid. p. 361). Schmidt et al. (1996) and Astrachan et al. (1998) have a similar emphasis. For Alexander, there is no contradiction between these views. In The Timeless Way of Building, Alexander (1979) posits pattern languages as fundamental to the organisation of building, concluding that ‘nothing is made without a pattern language in the makers mind; and what that thing becomes, its depth, or its banality, comes also from the pattern language in the builder’s mind …’ (ibid. p 224). Later, he argues that ‘… in a period when languages are no longer widely shared, … it becomes necessary to make patterns explicit, … so that they can be shared in a new way – explicitly instead of implicitly – and discussed in public.’ (Alexander, 1979, p. 246). His efforts to explicate patterns gives rise to ‘A Pattern Language’ (Alexander et al., 1977). Hence, for Alexander, pattern languages are both a theoretical account of the organisation of the built environment, and specific designed artefacts, whose purpose includes re-invigorating public participation in, and discussion of, architectural design. In software engineering and HCI it is generally agreed that a pattern is a structured description of an invariant solution to a recurrent problem in context, reflecting Alexander’s problem oriented approach. However, such an approach is not universal. A distinction can be drawn between design patterns, which centre on a problem and a proven solution, and activity patterns, which simply provide a description of existing patterns of activity (Bayle et al., 1998). For example, the patterns developed in the POINTER project (Martin et al., 2001; Martin et al., 2002), which seek to summarise findings from ethnographic studies, can be seen as ‘activity patterns’ in Bayle et al.’s terms. Another area of work in software has proposed the idea of ‘AntiPatterns’ which are examples of poor design practice together with descriptions of how the design could be repaired (Brown et al., 1996). AntiPatterns have not attracted much attention within HCI, although there was some discussion at the CHI 2000 patterns workshop (Griffiths et al., 2000), in spite of many collections of examples of bad interaction design, with and without repairs. The validity of AntiPatterns in Alexandrian terms can debated, since patterns are, by his definition, concerned with capturing good practice. However, their use in software is relatively common and they do occur in interaction design (see for example, Graham, 2003). Within this review, however, we concentrate on the predominant view, i.e. on ‘design patterns’. 4.1 Characteristics of Pattern A number of researchers have discussed what constitutes a design pattern and what distinguishes it from other design advice. Bayle et al. (1998) assert that patterns are notable because they are based on examples, facilitate multiple levels of abstraction, bridge the gap between the physical and the social aspects of design and are amenable to piecemeal development. Fincher (1999) also identifies capture of practice and abstraction as important, but adds: organising principle to relate patterns to other patterns in a way that enables design; a value system that is embodied in the patterns; and a particular presentational style. Perhaps the most comprehensive attempt to characterise patterns arises from the software engineering literature. Winn and Calder (2002) suggest nine essential characteristics of pattern, some of which reflect attributes also identified by previous researchers. They go so far as to assert that anything that fails to exhibit all of these characteristics is not a pattern. Table 1 compares the position of Winn and Calder with that of a selection of authors in HCI who discuss the nature of design patterns. In this table we indicate a direct statement with a bullet and an implicit agreement (for example through the use made of patterns) with a question mark. We have included distinctions made by different authors, even where these are closely related. For example, while there is obviously a relationship between characteristics 4, 7 and 13, they have subtle differences. Characteristic 4 is concerned with the final artefact developed using a pattern; characteristic 7 is concerned with the how the pattern is validated through being used in successful design; and characteristic 13 is concerned with the process of capturing patterns in the first place.

Description:
pattern languages in relation to other approaches to interaction design. The review (Greenbaum & Kyng, 1991; Schuler & Namioka, 1993), claims analysis (Sutcliffe &. Carroll .. Alexander's problem oriented approach. However The validity of AntiPatterns in Alexandrian terms can debated, since.
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.