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.
166 KAPITEL 7. OBJEKTORIENTIERTE MODELLE<br />
TimeIntervalRel<br />
Konstruktoren<br />
TimeIntervalRel (tr1,tr2)<br />
...<br />
Vergleichsoperatoren<br />
before (interval): bool<br />
...<br />
Arithmet. Operationen<br />
+ (tr): TimeIntervalRel<br />
...<br />
TimeRel<br />
Konvertierung<br />
asTimePointRel ()<br />
asTimeIntervalRel ()<br />
TimePointRel<br />
startTime<br />
1 timeVal: TimeStruct<br />
endTime Konstruktoren<br />
1 TimePointRel (val,unit)<br />
...<br />
Vergleichsoperatoren<br />
before (interval): bool<br />
...<br />
Arithmet. Operationen<br />
+ (tr): TimePointRel<br />
...<br />
Time<br />
/ length: TimePointRel<br />
offset<br />
1<br />
TimePointAbs<br />
timeVal: TimeStruct<br />
startTime<br />
1<br />
Konstruktoren<br />
TimePointAbs ("now")<br />
...<br />
Vergleichsoperatoren<br />
before (interval): bool<br />
...<br />
TimeAbs<br />
Konvertierung<br />
asTimePointAbs ()<br />
asTimeIntervalAbs ()<br />
endTime<br />
1<br />
TimeIntervalAbs<br />
Konstruktoren<br />
TimeIntervalAbs (t1,t2)<br />
...<br />
Vergleichsoperatoren<br />
before (interval): bool<br />
...<br />
Arithmet. Operationen<br />
Arithmet. Operationen<br />
+ (tr): TimePointAbs<br />
...<br />
+ (tr): TimeIntervalAbs<br />
...<br />
Abbildung 7.1: Klassendiagramm <strong>für</strong> <strong>die</strong> Modellierung von Zeitwerten.<br />
können. Daraus läßt sich, entsprechend der in Abschnitt 4.2.1 vorgeschlagenen Modellierung<br />
von Sequenzen, ein spezieller <strong>Daten</strong>typ <strong>für</strong> <strong>die</strong> Modellierung dynamischer <strong>Daten</strong>werte ableiten.<br />
Dieser wird als Sequenzwert Ë Î Ì bezeichnet <strong>und</strong> durch <strong>die</strong> Klasse ËÕÙÒ ÎÐÙ<br />
repräsentiert. Deren Aufgabe ist es, beliebige <strong>Daten</strong> um dynamische Aspekte zu erweitern.<br />
7.3.1 Unterscheidung zwischen Zeit <strong>und</strong> Wert<br />
Die Verbindung von <strong>Daten</strong>werten mit Attributen <strong>und</strong> Methoden kann mit verschiedenen Entwurfsstrategien<br />
umgesetzt werden. Ein Ansatz wäre z.B., <strong>die</strong> in Zeitfolgen zu verarbeitenden<br />
<strong>Daten</strong>klassen bei ihrem Entwurf gleich mit den zusätzlichen Attributen auszustatten. In einer<br />
gemeinsamen Basisklasse können alle zeitrelevanten Erweiterungen zusammengefaßt <strong>und</strong> so<br />
einfach an <strong>die</strong> zu verarbeitenden <strong>Daten</strong> vererbt werden. Diese Vorgehensweise ist jedoch nur <strong>für</strong><br />
neu zu definierende <strong>Daten</strong>typen möglich, nicht aber <strong>für</strong> Basisdaten des verwendeten Systems<br />
oder aus anderen Bibliotheken übernommene Klassen, was <strong>die</strong> Anwendbarkeit deutlich einschränkt.<br />
Außerdem bedeutet <strong>die</strong>s einen erheblichen Eingriff in <strong>die</strong> <strong>Daten</strong>strukturen, <strong>die</strong> auch<br />
<strong>für</strong> andere, statische Anwendungen von Bedeutung sind. Da alle <strong>Daten</strong>strukturen bei <strong>die</strong>sem<br />
Ansatz <strong>die</strong> Zeitinformationen immer mit sich tragen würden, verschiebt sich deren Semantik<br />
<strong>und</strong> ihre Repräsentation wird künstlich aufgebläht.<br />
Die hier relevanten Attribute stellen eine Art Metawissen über eine konkrete Ausprägung<br />
<strong>und</strong> den Kontext der <strong>Daten</strong> dar, sie sind jedoch kein fester Bestandteil von <strong>die</strong>sen <strong>und</strong> <strong>die</strong>nen<br />
nicht zu deren generellen Beschreibung. Daher spiegelt <strong>die</strong> Vererbungsrelation <strong>die</strong> Beziehung<br />
zwischen den <strong>Daten</strong> <strong>und</strong> deren Modellierung als Element einer Sequenz nicht korrekt wider.