Over the years, numerous authors have suggested principles for human-computer interaction. The principles have been intended to assist analysts, designers, and implementers of systems by providing guidance at one or another level of specificity. Principles have ranged from highly specific directives such as ``Use no more than five to seven colors in a display''[6, page 171,] to much more general guidelines such as ``Strive for consistency''[13, page 72,]. Despite the articulation of principles and the growth of a research infrastructure on which to base design decisions, interactive systems are still most frequently designed by ``see if it feels right'' techniques, rather than an engineering approach in which one starts with facts and bases the design on relevant scientifically grounded principles. We believe that there are several reasons why principles are not used more extensively and explicitly in the analysis, design, and implementation process. These include the following:
This paper looks to the work of Christopher Alexander, an architect, for cues as to how to specify principles for the design of interactive systems Alexander [1,2] has suggested an approach in architecture for developing urban communities and buildings based on ``patterns''. This paper explores a similar process for the development of patterns related to human-computer interaction. We suggest that patterns will provide analysts, designers, and programmers with a set of well-defined principles that imply rules and procedures that can serve as a model upon which to merge the art and science of user interface design.