The development of Coloured Petri Nets (CP-nets or CPN) has been driven by the desire to develop a modelling language - at the same time theoretically well-founded and versatile enough to be used in practice for systems of the size and complexity found in typical industrial projects. To achieve this, we have combined the strength of Petri nets with the strength of programming languages. Petri nets provide the primitives for describing synchronisation of concurrent processes, while programming languages provide the primitives for definition of data types and manipulation of their data values. The paper focuses on the practical use of Coloured Petri Nets. It introduces the basic ideas behind the CPN language, and it illustrates how CPN models can be analysed by means of simulation, state spaces and condensed state spaces. The paper also describes how CP-nets can be extended with a time concept. In this way it is also possible to use CP-nets for performance evaluation, i.e., to evaluate the speed by which a system operates. Finally, we describe a set of computer tools that support the use of CP-nets. This tool set is used by more than three hundred organisations in forty different countries — including seventy-five commercial companies. It is available free of charge, also for commercial use. The present paper does not contain any formal definitions. Instead all ideas and concepts are introduced by means of a number of small examples. Readers who want to consult the formal definitions can find these in , , , and . The latter is a 3-volume text book providing a detailed description of CP-nets and their use. Volume I introduces the basic concepts and definitions. Volume 2 describes the different analysis methods. Volume 3 describes experiences from nineteen projects in which CP-nets and the CPN tools have been put to practical use. Most of the projects have been carried out in an industrial setting.
Lecture Notes in Computer Science, 1998, p. 237-292
High-level Petri Nets; Coloured Petri Nets; Practical Use; Modelling; Validation; Verification; State Spaces; Tool Support