These really are notes, in the process of being expanded.
Embodied in any set of effective and efficient methods and techniques for designing in a particular domain, there are at least three meta-techniques or principles: separation of concerns, abstraction and compromise. By separation of concerns is meant the identification of aspects of the problem that the design should address so that they can be tackled in relative isolation from each other. Within each concern, abstraction is the process of identifying and representing the essential elements of a particular aspect to facilitate its optimisation. Whilst separation of concerns and abstraction are both analytic, i.e. concerned with breaking the design problem down into manageable units, compromise is synthetic; it is the process whereby the individual elements are composed to form the finished design. These principles are not only layered but each interpenetrates the expression of each, not least because the methods, techniques and representations employed in the service of these principles have themselves been designed.
The epistemological basis of the preceding assertion is in my experience of thinking about and teaching interaction design for a number of years. The principle of separation of concerns has been borrowed from Edsger Dijkstra [Dijkstra 1982], the principle of abstraction is commonplace throughout software development (and in the guise of mathematical modelling is the basis of all contemporary technology design) and the principle of compromise is design.
2 Separation of concerns
The action of compartmentalising the attributes and constraints of the design space so that decisions made in one compartment have minimal implications for others. Enabling focus on different aspects of the problem the design is to address.
Within software design two approaches are encapsulation and layering.
The action of delineating a boundary separating a particular collection of attributes from others in the design space.
Within software design an explicit approach to this technique has developed under the heading of ‘object orientation’. A more general description of the technique is described below as ‘objectification’.
The practice of basing encapsulation on human perceived or rationalised ontological entities.
Layering involves modularising the problem space by successively passing responsibility for detailed functionality to lower strata.
2.2.1 Hierarchical decomposition
Hierarchical decomposition involves the successive decomposition of the attributes of the problem space into increasing levels of detail, often moving from the general to the specific. This is explicitly used in the object-oriented technique of class inheritance.
A linear decomposition of the attributes of the problem space such that attributes required in support of a ‘higher’ level are provided by a ‘lower’ one. An example is the Open Systems Interconnection seven layer model [ISO 1996]:
This model also illustrates a subsidiary abstraction technique of ‘virtualisation’ in the portrayal of communication between the same layers in two systems.
2.3 Separation of concerns in interaction design
As this relates to the design of human interaction with software, separate concerns often identified are;
- aesthetic qualities of the interface (currently predominantly visual, often driven by marketing concerns)
- implementation of task details and requirements the software is to support,
- implementation of the interface and functionality in software (subject to its own implementation of these principles)
- implementation platform constraints,
- physiological, perceptual and cognitive capabilities of users,
- training needs of the users,
To address these concerns a number of specialisms and sub-specialisms has evolved;
- ergonomics/human factors
- information architecture
- information design
- interaction design
- interface design
- software development
- technical authoring
The mapping between specialism and concern is not distinct, and the professional competence of practitioners describing themselves by these specialism titles is not precisely defined and is contentious.
|Aesthetic qualities of the interface||Implementation of task details and requirements the software is to support||Implementation of the interface and functionality in software||Constraints of implementation platform||Physiological, perceptual and cognitive capabilities of users||Training needs of the users|
Identifying and representing the essential elements of a particular aspect to facilitate optimisation.
A good abstraction would present the essentials of an issue in such a way that its resolution is either obvious or demonstrably impossible.
Reducing the representation of an element of the design space to a minimum level of detail.
A symbolising activity: The syntactic possibilities inherent in the representation are ideally isomorphic with the manipulative possibilities of the material expression in the design space.
Representing attributes of the design space by scalar values so that they can be arithmetically manipulated (the essence of physics).
Using topological relations (a picture, diagram, graph, etc.) or discrete logic to represent attributes of the design space (particularly relations between elements).
Obtaining a satisfactory level of optimisation of required attributes of the design through the balancing of competing and collaborating attributes of its composing entities.
Assembling the complete design by adjusting the separate elements so that they work together.
Obtaining as appropriate either the maximum or minimum value of an attribute of the designed entity that is possible given specified constraints.
The term ‘satisficing’ as coined by Herb Simon [Simon 1956] is contrasted with maximising (optimising). Instead of attempting to meet an optimum level with regard to a particular attribute of the design, a lesser satisfactory level (meeting minimal acceptable criteria) is sought.
5 Interactive Design Forces
- Operational considerations
- Updating content
- Evolution and maintenance
- Commercial considerations
- Security issues
- Technical resources
- Development platform capability
- Implementation platform capability
- Development resources
- Technical competence
- User constraints
- Experience with system
Dijkstra, Edsger W. (1982). “On the role of scientific thought”. In Dijkstra, Edsger W. Selected writings on Computing: A Personal Perspective. New York, NY, USA: Springer-Verlag New York, Inc. pp. 60–66. [Available at http://www.cs.utexas.edu/users/EWD/transcriptions/EWD04xx/EWD447.html ]
ISO (1996) “ISO/IEC 7498-1 information technology – Open Systems Interconnection – Basic Reference Model: The Basic Model”, second edition.
Simon, H. A. (1956). “Rational choice and the structure of the environment”. Psychological Review, Vol. 63 No. 2, 129-138. [Available at http://octopus.library.cmu.edu/cgi-bin/tiff2pdf/simon/box00063/fld04854/bdl0001/doc0001/simon.pdf ]