CIP Method - CIP Models

 

With CIP models you define the behaviour of embedded system by means of graphical models of cooperating extended state machines. CIP models are constructed with CIP Tool® which generates executable software components.

SYSTEMS
A CIP model is composed of a set of concurrent clusters, each consisting of a number of synchronously cooperating state machines called processes. All processes can communicate with each other and with the environment by means of asynchronous channels.

COMMUNICATION NET

When a CIP model is partitioned into implementation units, the entering and leaving channels of such a unit define the interface model for the generated CIP components.

CLUSTERS
Processes interact within a cluster by means of synchronous event multicast. The interaction connections among processes are defined in a graphical interaction net editor.

INTERACTION NET

A cluster is always activated by a channel message leading to a state transition of the receiving process. By means of an emitted pulse, the process thus activated can activate further cluster processes which can in turn activate other processes by pulses. The instantaneous chain reaction resulting from pulse transmission can not be interrupted and defines a complex state transition of the entire cluster. Activated processes can also write messages to their output channels.

PROCESSES
The behaviour of a process is specified by one or several alternative modes, each edited graphically as a state transition diagram. Transition boxes are labelled by input and output symbols.
(first line: input message or input pulse, second line: output pulse, third line: output message)

MODE of the process Indexer (state transition diagram)

For algorithmic concerns state machines can be extended by variables, operations and conditions defined as C-language constructs. From the high level modelling point of view these constructs represent primitives which add computational power to the executable pure models. This stays in contrast to semi-formal approaches like SA or UML where high-level models have to be rendered executable by programming.
Allocated operations and timer settings are hidden in the graphical model (indicated by an O or T in the small info field of a transition box).