Ivan Moore’s “Ten Years On” post reminds me of an anniversary I overlooked, it’s been five years since receiving my
Photocopying Diploma, Professorship of higher Drinking, Programmership for Hypothetical Developments PhD – picked up five 339-page doorstops from the printer on the morning of September 8, 2001, signed the declarations, and it was accepted in October, 2001 (a formality as it had been through review earlier in the year).
My homepage at the time, notable for its inclusion of the charming tilde character (~) in the URL, is what my present homepage evolved from, in all its rude aqua glory, and the later stages were fortunately captured on the Wayback machine. Earliest archive is from 1998. I didn’t know much about blogging at the time (only robotwisdom which appeared in a usenet .sig), but it (along with pod/vod casting) would be a great tool for anyone performing research today.
The thesis was entitled “Design Reuse in Software Engineering and Human-Computer Interaction” – we looked at techniques for knowledge/design reuse that improve usability. The major problem in this area is a divide between disciplines. This continues to be the case in my experience – although usability is now at least a concern of some decision-makers, most organisations are still unable to do much about it because of the sensitive process requirements and the nature of the staff required. This thesis aimed to demonstrate how the issue could be improved with knowledge reuse techniques, i.e. design and process patterns, as well as other techniques like online knowledge repositories (i.e. the sort of application we now refer to as a wiki).
Here’s the abstract:
Practitioners of Human-Computer Interaction (HCI) have a wide range of techniques and methodologies at their disposal, but few avenues for reusing successful design solutions. A mature discipline of HCI requires a systematic approach to learning from past results. This thesis proposes a number of techniques for improving design reuse in HCI. Some apply specifically to high-level design while others also consider detailed software design.
The major focus is the adaptation of the pattern language concept which originated in building architecture and town planning. It is argued that the properties of pattern languages suit many concerns for HCI. This motivates an investigation concerning how pattern languages for HCI might be documented and used.
This thesis is especially concerned with highly-constrained pattern languages. Rather than producing a universal HCI pattern language, several languages are developed, each with a strong focus on a particular area. A tight scope, it is argued, provides a coherent language structure and therefore provides a strong degree of assistance to practitioners. Three such languages are documented: (a) The Safety-Usability Patterns language focuses on safety-critical systems and demonstrates how a pattern language can provide guidance for high-level design; (b) Multiple Model-View-Controller (MMVC) focuses on implementing a small set of tasks within the model-view-controller architecture, demonstrating how a pattern language can provide guidance on detailed software design and still address usability; (c) Planet focuses on internationalised systems and combines the previous approaches to mix high-level design guidance with detailed design guidance, demonstrating the interdisciplinary capability of pattern languages. Several other forms of reuse are also considered: (a) online repositories, which store knowledge about user characteristics; (b) generic tasks, which capture activities recurring across many applications; (c) reusable software components, which can be documented via design patterns.
Results of this work have been validated in several ways. An experiment with designers using generic tasks indicated that they are useful for rapid brainstorming of software functionality. A second experiment with designers using Safety-Usability patterns led to a set of guidelines for developers and pattern authors. The Online Repository concept has been demonstrated with a prototype website developed in conjunction with this project. Three programs have also been developed which exemplify most of the MMVC and Planet patterns. The results of this work are largely favourable for the techniques which have been proposed. They indicate that pattern languages can facilitate reuse of high-level design, detailed software design, and a style of interdisciplinary design that bridges the various levels of abstraction which HCI must address.