Introduction 1.1 Research
The most import models are the class, sequence, state-machine and use case diagrams.
The SPIN program creates a state-machine from a Promela model to verify the require-
ments of the system that is modeled [17, 19]. A state-machine diagram can be created
easily of a Promela model. The state-machine will cover every possible way of executing
the model, just as SPIN does. However, this will end up in a state-machine diagram with a
lot of states. The bigger the Promela model is, the larger the amount of states will be in the
diagram. This diagram shows how the model behaves, but does not show the components
the model consists of.
One could try creating a class diagram corresponding to a Promela model by listing
the processes and channels as classes in the diagram and the variables as attributes in the
classes. There should then always be an extra class to contain all the global variables and
the previously described channels. The processes can access that class to gain information
about the global variables or change them and send or receive from the declared channels.
This diagram can be used to show what parts the model consists of, but does not show
anything at all about the behavior.
A sequence diagram of a Promela model is a bit like a simulated run in SPIN. The
verification will take all paths whilst the simulation only takes one path [17, 19]. In this
way a sequence diagram cannot show all the possible behavior of a model or sometimes
not even all the components of the model. A sequence diagrams can be created for every
possible path in the model. All of those sequence diagrams together show all the behavior
and all the components that are used in the model. However, as with the state-machine
diagram, the number of paths is large and will be even larger when a model grows bigger.
A use case diagram can be created for a Promela model. The processes will then be
the actors and the use cases will then describe an action the process will undertake. The
use cases follow each other in the same way the actions follow each other in the Promela
model. The use case diagram shows the behavior of the separate processes but not how
those processes interact. These diagrams do not show when which process executes which
actions.
Action Semantics
UML is not a good choice to use as a language for the PIM because UML is not able
to show the non-deterministic and interleaving nature of the Promela language. Action
Semantics [25] did show promise to be used instead.
Action semantics can be used to describe a programming language. In [25] a complete
description can be found on Action Semantics. There is no graphical representation for any
part of the Action Semantics, it only consists of formulas. When Action Semantics are used
to describe a language, then three parts need to be created. Those three parts are an abstract
syntax, semantic functions and semantic entities. These three parts together can be used
to describe a programming language. These descriptions could be used as a PIM in this
project.
The abstract syntax provides as described in [25] “an appropriate interface between the
concrete syntax and the semantics”. An abstract syntax can most of the time be obtained by
looking at parse tree structures and leave out those details which have no semantic signifi-
3