This page has been archived; please check our new web-page to see if an updated version exists, and update your bookmarks and links.
Why use CP-nets?

Why use CP-nets?

CP-nets are used for three different - but closely related - purposes. First of all, a CP-net model is a description of the modelled system, and it can be used as a specification (of a system to be built) or as a presentation (of a system to be explained to other people, or ourselves). By creating a model we can investigate a new system before we construct it. This is an obvious advantage, in particular for systems where design errors may jeopardise security or be expensive to correct. Secondly, the behaviour of a CPN model can be analysed, either by means of simulation (which is equivalent to program execution and program debugging) or by means of more formal analysis methods (which are equivalent to program verification). Finally, it should be understood that the process of creating the description and performing the analysis usually gives the modeller a dramatically improved understanding of the modelled system - and it is often the case that this is more valid than the description and the analysis results themselves. Below, we give a brief description of some of the main qualities of CP-nets.
  1. CP-nets have a graphical representation. The graphical form is intuitively very appealing. It is extremely easy to understand and grasp - even for people who are not very familiar with the details of CP-nets. This is due to the fact that CPN diagrams resemble many of the informal drawings which designers and engineers make while they construct and analyse a system.


  2. CP-nets have a well-defined semantics which unambiguously defines the behaviour of each CP-net. The presence of the semantics makes it possible to implement simulators for CP-nets, and it also forms the foundation for the formal analysis methods.
  3. CP-nets are very general and can be used to describe a large variety of different systems. The applications of CP-nets range from informal systems (such as the description of work processes) to formal systems (such as communication protocols). They also range from software systems (such as distributed algorithms) to hardware systems (such as VLSI chips).
  4. CP-nets have very few, but powerful, primitives. The definition of CP-nets is rather short and it builds upon standard concepts which many system modellers already know from mathematics and programming languages. This means that it is relatively easy to learn to use CP-nets. However, the small number of primitives also means that it is easy to develop strong analysis methods.
  5. CP-nets have an explicit description of both states and actions. This is in contrast to most system description languages which describe either the states or the actions - but not both. Using CP-nets, the reader may easily change the point of focus - from states to actions or vice versa.
  6. CP-nets have a semantics which builds upon true concurrency, instead of interleaving. In an interleaving semantics it is impossible to have two actions in the same step, and thus concurrency only means that the actions can occur after each other, in any order. A true concurrency semantics is easier to work with, because it is closer to the way human beings think about concurrent actions.
  7. CP-nets offer hierarchical descriptions. This means that we can construct a large CP-net by relating smaller CP-nets to each other, in a well-defined way. The hierarchy constructs of CP-nets play a role similar to that of subroutines, procedures and modules of programming languages. The existence of hierarchical CP-nets makes it possible to model large systems in a manageable and modular way.
  8. CP-nets integrate the description of control and synchronisation with the description of data manipulation. This means that on a single sheet of paper it can be seen what the environment, enabling conditions and effects of an action are. Many other graphical description languages work with graphs which only describe the environment of an action - while the detailed behaviour is specified separately (often by means of unstructured prose).
  9. CP-nets can be extended with a time concept. This means that it is possible to use the same modelling language for the specification/ validation of functional/logical properties (such as absence of deadlocks) and performance properties (such as average waiting times). The basic idea behind the time extension is to introduce a global clock and to allow each token to carry a time stamp - indicating when it is ready to be consumed by a transition.
  10. CP-nets are stable towards minor changes of the modelled system. This is proved by many practical experiences and it means that small modifications of the modelled system do not completely change the structure of the CP-net. In particular, it is possible to add a new sequential process without changing the net structure representing existing processes.
  11. CP-nets offer interactive simulations where the results are presented directly on the CPN diagram. The simulation makes it possible to debug a large model while it is being constructed - analogously to a good programmer debugging the individual parts of a program as as they are finished The data values of the moving tokens can be inspected.
  12. CP-nets have a number of formal analysis methods by which properties of CP-nets can be proved. The two most important analysis methods are known as occurrence graphs and place invariants.
  13. CP-nets have computer tools supporting their drawing, simulation and formal analysis. This makes it possible to handle even large nets without drowning in details and without making trivial calculation errors. The existence of such computer tools is extremely important for the practical use of CP-nets.

Last modified: Fri Dec 5 13:23:11 1997 -- CP-nets Webmaster