Domain-Specific Representations and Reasoning

There is a tension between engineering practice and programmable systems. Typically engineering practice is domain-specific, exploiting the constraints of the class of systems under study to simplify the design task for the engineer. By contrast programmable systems rest upon the principles of universality and flexibility. The aim of this project is to explore one approach to resolving this tension.

Our approach emphasises the incorporation of domain knowledge and notation into user-level representations of programmable systems. Such domain-specific representations, which often comprise both linguistic and diagrammatic elements, provide strong support for the integration of programmable components into the engineering practices of domains. However, there is as yet no systematic study of the qualities and features representations must possess in order to be effective in supporting this integration.

The project's main objective is the development of a reusable and transferable framework for the design, evaluation and application of domain-specific representations. As such, the project relates closely to much ongoing work elsewhere on domain-specific programming languages (DSLs). In this context, however, it aspires to provide a genuinely new perspective through emphasis on

The Practical Problem

Seldom is any domain of knowledge or expertise mature without the development of specialised vocabulary and notations for the description and analysis of artifacts in the domain. On one hand, the role of notations is cognitive in nature as they provide support for basic design and reasoning tasks. On the other hand, notations also have an important social role as communication interfaces between different, and possibly diverse, technical specialities involved in a domain.

To date, Computing Science has focused primarily on universal notations for system representation which are primitive and thus generic: general-purpose programming languages and hardware descriptions in terms of basic components (e.g. logic gates, counters, etc.) are both examples of such notations.

On the other hand the development of domain-specific techniques in computing has been remarkably slow---except perhaps in hardware design where building blocks are becoming increasingly application-specific. Rectifying this situation is therefore being argued for as a vital area of future research, as, for instance, in a document submitted recently to the Engineering Board of the British Computer Society:

Work on artifacts, or products, has to be domain-specific, i.e. to reflect the structure of artifacts in a particular industry. ... In other engineering disciplines, the underlying science is adapted to provide domain-specific notations and analyses. It is important to adopt a similar approach in Software Engineering to ensure that research produces usable methods which offer significant technical advantage.

The Nature of our Approach

One way of characterising a domain is in terms of the practices and design processes that experts in the domain employ; the objects of such practices and processes being the artifacts of interest in the domain. An essential feature of design processes in mature domains is the use of specialised notations to provide convenient representations of the artifacts being designed with the aim of facilitating analyses and the inference of commonly required properties. Control engineers, for instance, have developed variants of circuit diagrams and Petri nets as notations for the design and analysis of embedded controllers. Similarly in rail transport, engineers have evolved their own notation to represent the complex structure of signalling systems.

Central to our approach is the belief that domain-specific representations of computing systems should accord with, and ideally be derived from existing notations in their target domain. In this way, representations can support understanding of system structure and operation in terms of artifacts in the domain. Here is an example drawn from the domain of industrial process control systems.

One must therefore understand domains both at a social level, in terms of engineering practice, and at a cognitive level in terms of the way representations support individuals contributing to engineering practice. Our work in this area centres on the relation between representations and domain artifacts and how appropriate choices of representation ease common reasoning tasks:

Our first aim is to employ cognitive principles in the evaluation of candidate representations, as different representations may differ profoundly in their ability to support a given task or inference.

In "Design for Proof", for example, we have shown how PLC diagrams could be rationally reconstructed to facilitate the formulation simple safety arguments.

In order to validate the use of representations as vehicles for analysis and prediction, one requires a theory of how representations relate to system behaviour, or even to concrete implementations:

Our second objective is the development of such a theory, based upon rigorous models of structure and behaviour.

It seems that representations aim to make concrete some structural aspects of systems while the behaviour of systems bears some (possibly complex) relation to the structure. We aim to study and develop techniques which, while rigorous and sound, enable reasoning to be conducted primarily on representation, rather than entirely in the underlying behavioural model.

Thus, we envisage such a mathematical theory as a tool in the hands of language designers and tool developers, not as a imposition on the end user.

Finally, our theory is concerned with criteria which representations impose on the suitability of candidate implementations. In "Diagrams and Programming Languages for PLCs", for example, we defined an algebra corresponding to the syntax of PLC diagrams and formally demonstrated the match between diagrams, their internal textual equivalents and their computational interpretation. The result generalises to a rigorous criterion for the use of diagrammatic notations in domain-specific languages. Our aim is therefore to further develop and systematise results of this kind.

We therefore focus on two areas that promise to forge a link between cognitive and semantic concerns in domain specific notations:


Last altered: 4th July, 2001, by K. Tourlas