CIP Method - The Problem

 

Understanding the problem
is the first step to higher software quality.

Embedded Systems
Embedded systems are composed, to a large extent, of event programs which must react continuously to external stimuli of their environment. The typical task of such systems is to control the cooperation of several active processes of the system environment. Examples of such processes are physically active devices, devices with integrated control software or pure software processes of existing applications.

The essential problem to be solved is to construct programs which simultaneously control several active external processes in a prescribed way. The structuring of such systems must therefore take into account the combined behaviour of those processes. If in addition to the normal behaviour faults of the external processes must be considered also, this task becomes extremely difficult. Furthermore, the safe critical aspects typical for reactive systems lead to maximal demands with respect to reliability and robustness.

Problem Decomposition
Two different problems have to be solved in developing an embedded system:

  • Functional correct reaction to events of the external processes
  • Transmission of information between environment and reactive components

These two problems are solved independently. The complete separation of the functional problem solution from the implementation of the information transmission considerably benefits the development process. To solve these problems separately is not just a matter of decomposing a problem, but of disentangling two problem complexes that belong to different abstraction levels.

With CIP the functional reactive behaviour is developed with CIP Tool®, in that graphical models of interacting and communicating state machines are constructed. The system developer works here as an architect and software-machine engineer using the modelling framework of CIP Tool as powerful kit. The software responsible for the transmission of information on the other hand has to be developed with tools of an appropriate programming environment.

For the implementation of CIP models, a CIP specification is partitioned into concurrent CIP units. For each CIP unit an executable CIP machine can be generated which is easily plugged to the IO-handler of a simulation model or of the target system. A CIP machine is a passive software component which reacts with call back functions to invocations of the IO-handler. CIP communication among CIP units can be implemented by means of external communication media like field busses and serial connections.