4. Einsatzarten von Browsern

Browser dienen dazu, dem Entwickler Einblick in seinen zu bearbeitenden Quelltext zu verschaffen, dessen Struktur zu visualisieren und ein strukturiertes Suchen zu ermöglichen.

Da der Browser die Struktur der verwendeten Sprache kennt, kann er viel mehr Unterstützung bieten als z.B. ein Texteditor. In einem Browser könnte man z.B. die Suche von Zeichenketten auf Klassen­namen, Methodennamen o.ä. beschränken.

Nach [McConnell 93] ist dem Entwickler meist sehr genau bewußt was er sucht und beim Einsatz eines Browser geht es hauptsächlich darum die Information möglichst schnell aufzufinden.

Zwei unterschiedliche Arten von Quelltexten müssen vom Entwickler betrachtet werden. Der quasi statische Quelltext der verwendeten Bibliotheken und der im ständigen Wandel befindliche Quell­text der Anwendung, die gerade entwickelt wird.

Bei der Einarbeitung in Bibliotheken ist ein Browser sehr wichtig, denn die Wiederverwendung der dort schon vorhandenen Funktionalität ist nur bei ausreichendem Verständnis der Bibliothek möglich. Ein Browser sollte nach [Gamma 92] dabei das "interaktive und explorative Untersuchen" der Quelltexte in den Vordergrund stellen.

Beim Entwickeln von eigenen bzw. neuen Klassen wird (gerade in der objekt-orientierten Programmierung) Bezug genommen auf Bibliotheksklassen, die dann spezialisiert werden. Hier sind die Anforderungen an den Browser andere als bei statischem Quelltext.

Der Browser sollte auch die Reorganisation des Quelltextes unterstützen, da dies eine relativ häufige und gleich­zeitig auch komplexe Aufgabe ist. Diese Forderung impliziert, daß er auch mit syntaktisch nicht korrektem Quelltext arbeiten können muß.

In [Bischofberger 94a] werden zwei Arten, Quelltexte zu browsen, unterschieden: Top-Down Browsing und Bottom-Up Browsing.

 

4.1.   Top-Down Browsing

Um mehr über den Aufbau und die Struktur eines existierenden Softwaresystems zu lernen, wird Top-Down Browsing verwendet. Der Entwickler betrachtet die Klassen des Systems, ihre Schnittstellen und ihre Beziehungen zueinander (hauptsächlich Benutzung und Vererbung).

Alle dazu nötigen Informationen muß der Browser für ihn sammeln und visuell aufbereiten. Es ist wichtig, gute Navigationshilfen zur Verfügung zu stellen, da der Kontrollfluß meist nicht­linear ist. Bei objektorientierten Frameworks spricht man oft sogar von invertiertem Kontroll­fluß, bei dem die eigentliche Ablaufsteuerung innerhalb des Frameworks liegt und im Quelltext der Anwendung überhaupt nicht sichtbar ist (vergl. [Gamma 95]).

Nicht nur die Struktur des Softwaresystems, sondern auch die Implementation der betrachteten Klassen sollte beim Top-Down Browsing eingesehen und evtl. verändert werden können.

Ein Beispiel für das Top-Down Browsing ist die Arbeit eines Programmierers, der zu verstehen versucht, wie eine bestimmte Klasse bzw. Bibliothek arbeitet bzw. benutzt werden kann. Dies entspricht der Grundaufgabe des Programmierers in der in Kapitel 3 behandelten Beispielsituation, wo es ihm um das grundsätzliche Verständnis der Bibliothek ging.

 

4.2.   Bottom-Up Browsing

Beim Untersuchen eines bestimmten Teils der Implementation treten dagegen meist andere Fragestellungen auf. Hier ist z.B. wichtig zu erfahren, welchen Typ eine bestimmte Variable hat und wo dieser implementiert ist. Der Programmierer geht also von einer vorliegenden Verwendung aus und versucht auf den Kontext zu schließen.

Ein Beispiel für Bottom-Up Browsing ist die Arbeit eines Programmierers, der auf eine Variable WindowHandle stößt und sich bemüht, den Zusammenhang zu verstehen, in dem sie verwendet wird.

 

Oft sind diese beiden Arten des Browsing sehr eng miteinander verbunden, indem z.B. das Verständnis eines Teils einer Bibliothek durch diverse Bottom-Up Untersuchungen vertieft wird, bevor andere Teile Top-Down untersucht werden. Gerade dieser flexible Umgang mit dem zu untersuchenden Quelltext macht die Überlegenheit eines Browsers z.B. gegenüber einem Cross-Referencer aus.

 


Last updated: 24. Aug 2005
Page maintained by Jan Willamowius
Imprint/Impressum · Privacy/Datenschutz
 
English: Home | Linux | Perl | Java | Eiffel | Books | Music | Jan Willamowius | Updates | Site Map
Deutsch: Home | Badminton | ISBN-Suche | Musik-Suche | Rezepte | Jan Willamowius