Diss.-ETH 12317 Diss.-ETH 12317 Diss.-ETH 12317 Diss.-E Eine ...
Diss.-ETH 12317 Diss.-ETH 12317 Diss.-ETH 12317 Diss.-E Eine ...
Diss.-ETH 12317 Diss.-ETH 12317 Diss.-ETH 12317 Diss.-E Eine ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
2 KAPITEL 1. EINLEITUNG<br />
Programm. Ein Algorithmus greift an vielen Stellen auf Variablen zu, deren<br />
Typen durch geeignete Datenstrukturen vorgegeben werden. Kleine<br />
Änderungen können sich daher auf ein ganzes Programm auswirken. Der<br />
Programmieraufwand ist nicht wie gewünscht proportional zur Änderung,<br />
sondern wegen der verteilten Abhängigkeiten eher proportional zur Grösse<br />
des Programms. Dieser unerfreulichen Situation kann man zwar mit Modularisierung<br />
und genormten Schnittstellen-Standards begegnen. Neben<br />
dem Zeit- und Koordinationsaufwand der Schnittstellen-Normierung erhebt<br />
sich aber stets die Frage, was denn ein Modul beinhalten soll. Damit<br />
Module allgemein verwendbar sind, tendieren sie dazu, eher klein zu<br />
sein. Unabhängig davon, ob die Module in konventionellem oder in objektorientiertem<br />
Stil entwickelt werden, entstehen daher oft zu feinkörnige<br />
Strukturen. Der sich darin bewegende Software-Entwickler ist gezwungen,<br />
an vielen Orten Entscheidungen zu treffen, wie er diese relativ vielen<br />
und kleinen Teile zusammensetzt und miteinander kommunizieren lässt.<br />
In diesen Entscheidungen liegen Fehlerquellen, welche die Qualität eines<br />
Produktes trotz einwandfreier Module beeinträchtigen.<br />
Neuere Ansätze aus dem Software-Engineering gehen diese Probleme<br />
an, indem sie Techniken bereitstellen, um grobkörnigere und dennoch flexible<br />
Module für eine Klasse von Problemen herzustellen.<br />
1.2 Stand der Technik<br />
Im Folgenden werden einige Lösungs-Ansätze aus der Literatur aufgeführt,<br />
welche einzelne oder mehrere der im Unterkapitel 1.1 dargestellten<br />
Probleme angehen und den Hintergrund der vorliegenden Arbeit bilden.<br />
Die objekt-orientierte Technik hielt bei den Energieübertragungssystemen<br />
etwa Ende der Achtzigerjahre Einzug. In [2] wurde bestätigt, dass<br />
die objekt-orientierte Technik die Flexibilität grosser Software-Systeme<br />
erhöht. Als besonderer Vorteil wurde erkannt, dass Änderungen innerhalb<br />
eines Objektes das restliche System nicht beeinflussen. Dies ist eine wesentliche<br />
Voraussetzung um das Problem der Komplexität der Software in<br />
den Griff zu bekommen. Als weiterer Vorteil wurde gesehen, dass Objekte<br />
gleichermassen physikalische Dinge und abstrakte Ideen in einheitlicher<br />
Art darstellen und dahinter liegende Details verstecken können, was die<br />
Arbeit des Software-Entwicklers wesentlich erleichtert.<br />
In [3] wurde die objekt-basierte Technik in einem graphischen Benutzer-Interface<br />
erprobt, was anfangs das klassische und besonders anschau-<br />
<strong>Diss</strong>.-<strong>ETH</strong> <strong>12317</strong> <strong>Diss</strong>.-<strong>ETH</strong> <strong>12317</strong> <strong>Diss</strong>.-<strong>ETH</strong> <strong>12317</strong> <strong>Diss</strong>.-E