Viscosity as a metaphor for measuring modifiability
J. I. A. Siddiqi, Chris Roast · IEE Proceedings - Software Engineering · 1997
An analytic framework termed ‘cognitive dimensions’ is introduced and developed to provide formal definitions of dimensions for assessing the suitability of interactive systems for particular tasks. Cognitive dimensions is a psychological framework that provides broadbrush characterisations of interactions relevant to ease of use, and an effective terminology to support a wide range of assessments including the resistance of languages and notations to modification. It is proposed that software design can benefit from the use of cognitive dimensions as tools for assessing software characteristics such as modifiability. To enable this, formal definitions of specific dimensions are developed. This enables the interpretation of otherwise informal dimensions in a precise and generic way. The authors develop and examine two dimensions associated with the notion of ‘viscosity’ (resistance to local change) and demonstrate their relevance in the context of program modification. Two case studies exploring modifications in alternative programming languages and differing styles of solution are used to illustrate the utility of cognitive dimensions. The authors continue by identifying similarities between the novel notion of cognitive dimensions and conventional notions of program quality, such as coupling and cohesion.