11.10.2013 Aufrufe

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 ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!