Coldewey Consulting Publications on User Interfaces


User Interface design has two different aspects. One is the human interaction aspect that drives the basic concepts of the interface, the screen layout (in the case you interact via screens), and the actions a user can take. The second aspect is the design of the software that drives these interactions. I have done some research on popular designs and written them down using the concept of patterns. These patterns are beyond certain frameworks, such as IBM Visual Age or Swing but describe basic concepts you often find.

My Portrait

User Interface Design

Concerning the design of human computer interfaces I recommend to study Jennifer Tidwell's work, which is the best work on this subject I have seen so far.


Jens Coldewey, Ingolf Krüger:

Form-Based User Interfaces - A Pattern Language

in Frank Buschmann, Dirk Riehle (Eds.): Proceedings of the 2nd European Conference on Pattern Languages of Programming; Bad Irsee 1997, Siemens Technical Report 120/SW1/FB, 1997

Despite all the benefits of object-oriented user interfaces, there are still domains that call for a form-based user interface. Business information systems that support support fast processing of few, well-defined use cases are typical examples. This paper helps to develop the software architecture for such systems.

This paper does not represent my latest knowledge on pattern writing anymore. Thanks to the help of Jim Coplien and many other guys I was able to restructure the paper completly for the PLoP 98 conference. Therefore I decided to provide only an online version of the most recent paper on this subject.


Jens Coldewey:

User Interface Software

Conference on the Pattern Languages of Programming, 1998, Allerton Park, Illinois

This pattern language explains the design of a user interface architecture step by step into. I do not mean the layout of a user interface. That's is a matter of ergonomics and has enough potential for a complete set of pattern languages.

This paper is about the software that drives the user interface. The most fundamental pattern is User Interface Layer. Separate Transformation explains how to deal with complex interactions while Widget Model helps to structure presentation. Though both patterns seem to describe different philosophies, they are often combined to form the basic structure of User Interface Layer. Still you need to deal with more issues. First you must provide Context Support between different interactions of the user. Depending on the requirements and architecture of your system you can apply several patterns for this. For the sake of brevity this document contains only thumbnails of them. Another area of interest is Domain Layer Access, which again is the foundation for several other patterns. While some of them are well-known design patterns, others are special to user interfaces. This set of patterns forms the coarse landscape of most architectures for user interface structure.

Available as HTML


Coldewey Consulting Homepage
Author: Jens Coldewey
Last change: Oct 25th 1999