 |
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.
- 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.
- 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.
- 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).
- 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.
- 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.
- 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.
- 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.
- 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).
- 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.
- 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.
- 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.
- 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.
- 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.
|