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.
24 KAPITEL 2. KONZEPTE DES SOFTWARE-ENGINEERING<br />
Framework<br />
GetAElem(..)<br />
in MeinNtor<br />
überschreibt<br />
GetAElem(..) in<br />
VNtor<br />
VNtor<br />
GetAElem(..)<br />
MeinNtor<br />
GetAElem(..)<br />
vom Klienten durch Ableitung definierte Erweiterungen<br />
Abbildung 2.8: Funktionsweise eines Frameworks<br />
Programmfluss<br />
wendung einbaut und damit in eher traditioneller Weise Software-Produkte<br />
für einen Endbenutzer erstellt. In einem Forschungsumfeld ist der Klient<br />
oft selber Endbenutzer.<br />
Der durch Wiederverwendung gesteuerte Software-Engineering Prozess<br />
ist dadurch gekennzeichnet, dass es vom Klienten eine Rückkopplung zum<br />
Framework-Entwickler gibt. Die Kommunikation zwischen diesen Akteuren<br />
ist entscheidend. Das Verbessern und Erweitern des Frameworks ist in<br />
diesem iterativen Prozess möglich, solange der Klient dies benötigt.<br />
In [12] werden Erfahrungen mit diesem Prozess dargestellt, die bei der<br />
Produktion von Software für Flugsimulatoren gemacht wurden.<br />
2.5.3 Anwendung<br />
Kann ein Klient bei seiner Problemstellung auf einem Framework aufbauen,<br />
so ist bereits ein Teil der Entwurfsarbeit vom Framework-Entwickler<br />
erbracht worden. Der Klient benutzt ein Framework, indem er an den dafür<br />
vorgesehenen Stellen eigene Klassen ableitet. Der Klient überschreibt<br />
Methoden und ändert damit das vom Framework vorgegebene Standard-<br />
Verhalten. In Abbildung 2.8 wird die Anpassung eines Frameworks an<br />
einem einfachen Beispiel aufgezeigt. Die Klasse VNtor sei eine Klasse<br />
des Frameworks, die dazu angelegt ist, vom Klienten in einer abgeleiteten<br />
Klasse, hier MeinNtor, konkretisiert zu werden. Der Klient liefert eine<br />
eigene Version zu der Methode GetAElem(..), um dieser Methode ein<br />
spezielles Verhalten zu geben. Man beachte aber, dass GetAElem(..) unabhängig<br />
von den Änderungen des Klienten vom Framework zur geeigneten<br />
Zeit aufgerufen wird. Diese Art der Wiederverwendung ist in Kapitel<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