Many design notations allow systems to be represented as compositions of interacting components. The components are in their turn represented as compositions of more primitive components. This process of design decomposition may proceed through many levels. Such notations thus allow systems and their components to be represented as very complex compositions of components.
However these design notations often restrict the interactions between components to be relatively primitive, for instance message passing or document flow. Thus designers are constrained to represent their systems as complex components connected by primitive interaction mechanisms. This abstraction mismatch (between the complex representation of components and the primitive representation of interactions) seriously restricts the designers ability to represent system designs.
Whilst employed by ICL, I worked on a systems (and process) design notation known as process oriented systems design, POSD, which eliminated this problem. I have documented the problem and the POSD solution to the problem in a set of web pages. These can be seen by clicking here.
POSD was capable of representing the static structure of a system but could not represent dynamic change to this structure. I am interested in how the basic idea of POSD (outlined above) can be applied to dynamic systems design notations. In pursuit of this goal I have been learning about action structures and action calculi (Robin Milner), hierarchical petri nets and category theory.
last revision: 21st May 2000