Mapping user requirements to implementations
The trend towards systems that support a rich variety of interaction techniques has consequences for the traditional understanding of software design practice. Formal approaches to software development have mainly focused on design expressions that avoid explicit discussion of interactive behaviour. The emphasis in rigorous development is on transforming a mathematical specification into an implementation through a series of valid refinement steps. However, any design process for interactive systems must also add user oriented requirements. It is suggested that a suitable concern for human factors can be folded into a rigorous development process by generalising from functional models and refinement to models that provide multiple viewpoints onto the design artefacts. The paper provides an overview of the relevant perspectives and describes work aimed at integrating them within the specification phase of software development.