portant for the functionality and (b) more and more
complex to develop. A good example is a modern
(digi-)cam. Five years ago most cameras where using
analogous media to record pictures. Extra function-
alities like (visual) noise suppression or image sta-
bilization where implemented by using specific me-
dia or by adding extra hardware components. Today
such functions are usually implemented in software
and can relatively easy be transfered from one cam-
era to another. This led to very complex software and
this process is now reaching a saturation level. To
further enhance the capabilities of both – the system
in general and the controlling software in particular –
new approaches are necessary to deal with the grow-
ing complexity. One such approach is Organic Com-
puting (M¨uller-Schloer, 2004).
The Organic Computing Paradigm. Or-
ganic Computing (M¨uller-Schloer et al., 2004;
VDE/ITG/GI, 2003) is an extension to Ubiquitous
and Autonomic Computing (Kephart and Chess,
2003). The core goal of Organic Computing is,
that future (computing) systems should be able
to dynamically adapt to changes in requirements,
to automatically detect and neutralize component
failures and to continuously optimize themselves for
better performance. Such capabilities are called self-
adaptation, self-healing and self-optimization. The
hope is, that systems with self-x capabilities are by
far superior to standard systems in terms of possible
functionalities, availability, reliability and effort for
maintenance. At the same time self-organization
mechanisms allow for easier construction. As not
every single scenario has to be anticipated at design
time. New scenarios and requirements will be
detected by the system during runtime and self-
adaptation mechanisms will reconfigure the system to
this new challenges. So the systems behave from an
external point of view very much like living beings.
They monitor their environment, reflect upon changes
and adapt to new situations. Therefore such systems
are called “Organic Computing” systems.
It is often useful and possible to cope mecha-
nisms and techniques from biology/sociology for the
design of self-X algorithms and systems – so called
bio-inspired algorithms. One example is a (self-
)protection algorithm which function like the human
immune system (Pietzowski et al., 2006). But there
also exists a variety of other algorithms, which are
based on more traditional approaches.
Technically, implementations of Organic Comput-
ing systems often contain one part which is respon-
sible for delivering the wanted/intended functionality
and one part which constantly monitors the environ-
ment and – if necessary – controls/changes the func-
tional part. There already exists a broad variety of
methods (Seebach et al., 2007; Richter et al., 2006),
middlewares (Trumler et al., 2004; Trumler, 2006)
and analysis tools (G¨udemannet al., 2007; G¨udemann
et al., 2006) for design, analysis and construction of
such systems.
Application Domains. Organic Computing is typ-
ically applied to software-intensive embedded sys-
tems. Example domains are large networks of sen-
sors, traffic control systems or production automa-
tion. One example could be a vision of the next
generation of production cells. Assume a produc-
tion cell which should process workpieces followinga
given specification. The functional part of this system
may be a set of robots which perform certain tasks
– e.g. drilling holes, inserting screws and tightening
screws – on workpieces and a set of transport units,
which transport workpieces from station to station. If
new types of workpiece are to be processed, then the
robots must be reprogrammed (or these new work-
pieces must have already been anticipated during sys-
tem design). If a single robot/component of the sys-
tem fails, then production will often come to a stand
still.
If in contrast this system is designed in an or-
ganic way, then each robot will be enhanced with
a supervising (software) component. This software
not only monitors the supervised robot, but also de-
cides/plans what tasks the robot will perform an from
where workpieces are taken resp. where workpieces
are to be placed next. If new workpieces – with a new
specification about how they are to be processed – are
given to the production cell, then the supervisors try
together to find a reconfiguration to achieve the new
goal.
Assume for example a cell that consists of three
robots, which are all capable of drilling holes, in-
serting screws and tightening them and a set of au-
tonomous carts for transportation, then an (initial)
configuration could state that one robot only drills,
one only inserts screw and one only tightens the
screws. The workpieces will be transported in badges
from robot 1 to robot 2 to robot 3. The supervisors
constantly monitor the functionality of the robots and
the type of workpieces which are to be processed. If
now for example the drill of robot 1 breaks, then the
supervisors will search for a new configuration to sub-
sume production. One solution is to let robot 2 do the
drilling, assign robot 1 to inserting screws and change
the transportation routes accordingly. This is called
self-healing. If a a new type of workpiece is to be pro-
cessed; e.g. workpieces now only need holes (and no