Objektorientierte Daten- und Zeitmodelle für die Echtzeit ...
Objektorientierte Daten- und Zeitmodelle für die Echtzeit ...
Objektorientierte Daten- und Zeitmodelle für die Echtzeit ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
112 KAPITEL 6. FUNKTIONALE BESCHREIBUNG VON BILDFOLGENPROGRAMMEN<br />
auf der anderen Seite dadurch, daß zwischen zwei Arten von Rückkopplungen unterschieden<br />
wird. Rückkopplungen, <strong>die</strong> lediglich den Zugriff auf vergangene <strong>Daten</strong>werte ermöglichen <strong>und</strong><br />
pro Modulzyklus nur einmal durchlaufen werden, sind erlaubt, müssen jedoch explizit als solche<br />
gekennzeichnet werden, Rückkopplungen, <strong>die</strong> ausschließlich auf <strong>Daten</strong>werte des aktuellen<br />
Modulzyklus zugreifen <strong>und</strong> damit eine echte Schleife darstellen, sind dagegen verboten.<br />
SA<br />
F EG<br />
F B<br />
SB Verbotene SG<br />
Schleife<br />
t<br />
F B<br />
SA SB Aufgebrochene SG<br />
-1 Schleife<br />
Abbildung 6.23: Erzeugen eines schleifenfreien <strong>Daten</strong>flußgraphen aus einem Graphen mit<br />
Rückkopplungen durch Aufbrechen der Schleifen <strong>und</strong> explizite <strong>Daten</strong>zugriffe auf vergangene<br />
Werte.<br />
Wie Abb. 6.23 illustriert, ist bei einfachen Rückkopplungen ein Aufbrechen der Schleifen<br />
eines Graphen <strong>und</strong> deren Sequentialisierung ohne weiteres möglich, wobei eine solche Rückkopplung<br />
direkt an den Modulzyklus gekoppelt wird. Der explizite Zugriff auf einen alten Wert<br />
(z.B. Ë ) kennzeichnet <strong>die</strong> Stelle, an der der <strong>Daten</strong>flußgraph aufgebrochen wird. Damit liegt<br />
trotz der Rückkopplungen im Graphen de facto ein schleifenfreier Graph1 vor.<br />
Im direkten Zusammenhang mit dem Zugriff auf ältere Sequenzwerte, sowohl in Rückkopplungen<br />
als auch im Vorwärtszweig wie in Abb. 6.19, steht <strong>die</strong> Bereitstellung von Startwerten:<br />
Damit im allerersten Modulzyklus ein solcher Zugriff nicht scheitert, muß <strong>für</strong> <strong>die</strong>se <strong>Daten</strong> ein<br />
Startwert zur Verfügung stehen. Dieser kann als elementarer Bestandteil der <strong>Daten</strong>sequenzen<br />
unmittelbar beim Erzeugen der Sequenzobjekte initialisiert werden, womit ein allgemeiner<br />
Mechanismus <strong>für</strong> alle Initialisierungsprobleme im Zusammenhang mit <strong>Daten</strong>sequenzen bereitgestellt<br />
wird, was den Entwickler von einer expliziten Verwaltung derartiger <strong>Daten</strong> befreit.<br />
6.4.3 Modulgrenzen, Eingangssensoren <strong>und</strong> aktive Objekte<br />
Neben der Möglichkeit, <strong>die</strong> Verarbeitung sämtlicher periodischer <strong>Daten</strong>sequenzen einer Applikation<br />
in einem einzigen <strong>Daten</strong>flußgraphen darzustellen, ist es häufig sinnvoll, das Gesamtsystem<br />
in mehrere, relativ unabhängige Module, <strong>die</strong> über definierte Schnittstellen <strong>Daten</strong> austauschen<br />
<strong>und</strong> miteinander kommunizieren, zu unterteilen. Diese Aufteilung ermöglicht einerseits<br />
einen weitestgehend separaten Entwurf verschiedener Programmteile <strong>und</strong> kann andererseits<br />
<strong>die</strong> unterschiedlichen Aufgabenbereiche sowie unabhängigen Hardwarekomponenten einer Anwendung<br />
widerspiegeln.<br />
1 In <strong>die</strong>sem Zusammenhang ist häufig auch von „zyklenfreien Graphen“ <strong>die</strong> Rede. Dieser Begriff wurde hier<br />
wegen der Doppeldeutigkeit des Begriffs “Zyklus“ vermieden. In <strong>die</strong>ser Arbeit wird Zyklus in erster Linie mit<br />
Arbeitsschritten verb<strong>und</strong>en, also im Sinne von Iterationen verwendet. Für Zyklen in einer graphischen Darstellung<br />
sollen dagegen <strong>die</strong> Begriffe „Schleife“ <strong>und</strong> „Rückkopplung“ verwendet werden.<br />
F<br />
EG<br />
S -1<br />
A<br />
0<br />
SA -2 SB<br />
S -1<br />
B<br />
0<br />
SB -1<br />
EG<br />
F<br />
-1<br />
B<br />
F<br />
0<br />
EG<br />
F<br />
0<br />
B<br />
F<br />
S -1<br />
G<br />
0<br />
SG schleifenfreier Ausführungsgraph