The Role of HCI Design Patterns in Software Development

This paper discusses the role of HCI design patterns in software development. The concept of a design pattern, whilst popular in several other fields including architecture and software engineering, is relatively new to human-computer interaction (HCI). The potential of pattern languages as a vehicle for the dissemination of HCI design knowledge is becoming widely recognized within the HCI community. This potential is based on the ideas of the architect Christopher Alexander. Patterns are developed to record the invariant properties that exist in a design solution in order to resolve conflicting social, cognitive and technological forces. Patterns are interlinked into a network (termed a pattern language) to support different levels of user interface design.