CIP-Tool
Encyclopedia
CIP-Tool should not be confused with Ciptool, a Bluetooth configuration tool.
For other uses of CIP, see CIP
CIP
-Business:* Carriage and Insurance Paid to, an Incoterm* Construction in Progress, in accountancy, a balance sheet assets item used for assets being constructed, e.g...

 (disambiguation).


CIP-Tool (Communicating Interacting Processes) is a software tool for the modelling and implementation of event-driven applications. It is especially relevant for the development of software components of embedded systems.

History

The underlying mathematical formalisms of CIP were first proposed by the physicist, Hugo Fierz. The tool was subsequently developed at the Swiss Federal Institute of Technology (Zurich)
ETH Zurich
The Swiss Federal Institute of Technology Zurich or ETH Zürich is an engineering, science, technology, mathematics and management university in the City of Zurich, Switzerland....

 in a series of research projects during the 1990s. Development and distribution has since been transferred to a commercially operating spin-off company, CIP-Tool, based in Solothurn
Solothurn
The city of Solothurn is the capital of the Canton of Solothurn in Switzerland. The city also comprises the only municipality of the district of the same name.-Pre-roman settlement:...

, Switzerland.

Methodology

The CIP-model is basically a finite state machine
Finite state machine
A finite-state machine or finite-state automaton , or simply a state machine, is a mathematical model used to design computer programs and digital logic circuits. It is conceived as an abstract machine that can be in one of a finite number of states...

, or more precisely, an extended finite state machine (processes can store and modify variables and can use these to enable or disable transitions).

In CIP, a desired system behaviour is broken down into distinct processes, each of which is a set of states interconnected by transitions. One state in every process is tagged as active state. This active status can be transferred to another state through the execution of a transition. Such transitions are triggered by events (from external sources, e.g. sensors) or in-pulses (from other processes). Transitions can in turn send one or several out-pulses (to other processes) or actions (to external receivers, e.g. effectors).

The CIP-model is sometimes confused with petri nets. This may be because to beginners, the notation looks similar. The similarities should not be over-stressed, however. For example, CIP allows only (and exactly) one active state per process and processes are neither started nor terminated during run-time.

Code generation

CIP-Tool permits models to be automatically converted to executable code. This greatly facilitates testing, documentation and final implementation. Currently the languages C/C++ and Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

are supported as output formats.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK