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.
22 KAPITEL 2. KONZEPTE DES SOFTWARE-ENGINEERING<br />
• Vielzahl von Klassen: In grossen Bibliotheken müssen zuerst passende<br />
Klassen für einen bestimmten Anwendungsfall gefunden werden.<br />
Es kann für einen Klienten schwierig sein, ohne konzeptionelle<br />
Dokumentation der Klassenbibliothek herauszufinden, wofür die einzelnen<br />
Klassen gedacht sind. Noch schwieriger und gefährlicher ist<br />
es, in diesem Fall eigene Änderungen und Ergänzungen anzubringen.<br />
• Beziehungen zwischen den Klassen: Die Kommunikation und die<br />
Beziehungen zwischen den Klassen sind nach wie vor vom Klienten<br />
zu programmieren. Er legt dabei fest, wann welche Botschaft an welches<br />
Objektes zu schicken ist. Dies zwingt einen Klienten bei komplexeren<br />
Anwendung immer wieder, eigene Lösungen für die gleichen,<br />
grundlegenden Probleme zu finden. Selbst wenn Klienten dafür<br />
die gleichen Klassen wählen, machen die vielen, leicht abweichenden<br />
Entscheidungen den Code der Applikationen genügend unterschiedlich,<br />
um das gemeinsame Design nicht mehr so einfach zu erkennen<br />
und wiederverwenden zu können.<br />
Daher versucht man das Prinzip Kapselung auf einer höheren Stufe anzuwenden,<br />
um Code und Design von Lösungen innerhalb einer grösseren<br />
Einheit zu integrieren und wiederzuverwenden. Diese nächst höhere Abstraktionsebene<br />
erreicht man mit Hilfe eines Frameworks.<br />
2.5.1 Begriff und Funktion<br />
Johnson [21] definiert ein Framework wie folgt: “ A framework is a set<br />
of classes that embodies an abstract design for solutions to a family of related<br />
problems”. Die Grundaufgabe des Frameworks besteht also darin,<br />
ein wiederverwendbares Design einer bestimmten Problemstellung zu beschreiben.<br />
Dabei wird dieses wiederverwendbare Design durch den Code<br />
des Frameworks beschrieben. Dieser Code legt folgende Elemente fest:<br />
1. Die Menge der Klassen<br />
2. Die standardisierten Protokolle: In abstrakten Basisklassen werden<br />
Mengen von Methoden festgelegt, welche die Protokolle für die<br />
Kommunikation unter den Framework-Klassen definieren.<br />
3. Die Erweiterungsstellen: Das Framework verknüpft eine Menge<br />
von Klassen. Ein Teil dieser Klassen und/oder Methoden bedarf weiterer<br />
Konkretisierung, um das innerhalb der Familie von verwandten<br />
Problemstellungen unterschiedliche Verhalten zu definieren.<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