9. Umgang mit Eiffel in Sniff+Durch die Integration des neuen Information Extractors können nun Eiffel-Quelltexte mit Sniff+ bearbeitet werden. Alle in Sniff+ integrierten Werkzeuge können verwendet werden. Da auch ein externer Eiffel-Compiler integriert werden kann, stellt Sniff+ eine vollständige Eiffel-Entwicklungsumgebung dar. Lediglich die Bezeichnungen in den Menüs verwenden noch die C++-Terminologie. Hier ist eine gewisse Umgewöhnung für den Eiffel-Programmierer notwendig, sofern er nicht ohnehin schon mit dieser Terminologie vertraut ist. 9.1. Der EditorIm Editor von Sniff+ ist ein hypertext-artiges Navigieren zwischen den einzelnen Merkmalen möglich. Durch Anklicken des Methodennamens in der Scroll-Liste am rechten Rand gelangt man direkt zur Implementation. Die Namen von Klassen und Routinen werden farblich oder durch einen speziellen Font im Quelltext hervorgehoben. Die Namen von Attributen werden bei ihrer Deklaration hervorgehoben. Weiterhin wird angezeigt, ob bereits Änderungen am Quelltext vorgenommen wurden.
Abb. 18: Der Editor mit Eiffel-Quelltext Bei Änderungen an Eiffel-Quelltexten wird die Darstellung in den anderen Werkzeugen von Sniff+ automatisch aktualisiert, sobald die Änderungen gespeichert wurden, ohne daß ein zeitaufwendiges Neu-Kompilieren des Projektes nötig ist. 9.2. Der Hierarchie-BrowserIm Hierarchie-Browser wird die Vererbungstruktur des Projekts graphisch dargestellt. Die graphische Darstellung macht auch die Verwendung von Mehrfachvererbung deutlich, wozu die rein textuelle Darstellung z.B. von ISE Eiffel 3 nicht in der Lage war. Die Ausgabe kann nach verschiedenen Kriterien begrenzt werden, so daß z.B. nur die Vererbungshierarchie einer bestimmten Klasse dargestellt wird. Zusätzlich kann die Darstellung auch auf ein bzw. mehrere Unterprojekte beschränkt werden. Auf diese Weise können z.B. Bibliotheken von der Darstellung ausgenommen und nur der von ihnen abgeleitete anwendungsspezifische Teil der Vererbungshierarchie dargestellt werden.
Abb. 19: Der Hierarchie-Browser Aufgeschobene Klassen (deferred) sind durch kursive Schrift gekennzeichnet. Sie werden oft zur Definition von Protokollen verwendet und sind so leicht zu erkennen (wie beispielsweise die Klasse "state" in der Abbildung). Durch einen Doppelklick auf einen Klassennamen werden der Editor gestartet und die betreffende Klasse geladen. Über das Menü können auch andere Werkzeuge, z.B. der Class Browser, auf die markierte Klasse angewendet werden. Dies ist ein Beispiel, das die enge Integration der einzelnen Werkzeuge in Sniff+ verdeutlicht. 9.3. Der Symbol-BrowserDer Symbol-Browser dient zur Suche nach Namen von Klassen, Routinen oder Attributen. Mit dem Type-Menü wird festgelegt, welche Namen angezeigt werden sollen (nur Klassennamen, nur Routinen oder nur Attribute). Zur weiteren Einschränkung kann ein regulärer Ausdruck angegeben werden, um die Anzahl der angezeigten Namen weiter zu reduzieren (z.B. alle die mit Window... beginnen). Auf diese Weise ist es beispielsweise leicht, alle Klassen zu finden, die eine Methode mit einem bestimmten Namen definieren. Auch hier kann man durch Doppelklick direkt in den Editor gelangen. Der Cursor wird sogar direkt auf die Deklaration des entsprechenden Namens gesetzt.
Abb. 20: Zwei Exemplare des Symbol-Browsers Wie alle anderen Werkzeuge von Sniff+ auch, kann man auch mehre Exemplare des Symbol-Browser aufrufen, so daß man die Namen aus verschiedenen Kategorien auch nebeneinander betrachten kann. Die Darstellung in einem geöffneten Fenster wird aktualisiert, sobald ein neuer Name in einem Editorfenster deklariert (und gespeichert) worden ist. Die Projekthierarchie wird im unteren Teil des Fensters dargestellt, und die Anzeige kann durch Anklicken auf bestimmte Unterprojekte begrenzt werden. 9.4. Der Class-BrowserDer Class-Browser stellt alle Merkmale (Attribute oder Routinen) einer Klasse dar. Wahlweise können nur die in dieser Klasse implementierten Merkmale oder auch die geerbten Merkmale dargestellt werden (alle oder nur von selektierten Oberklassen).
Abb. 21: Der Class-Browser Im unteren Teil des Fensters ist die Vererbungshierarchie der Klasse dargestellt. Grundlegende Informationen über die Vererbungsstruktur sind so auch ohne Verwendung des Hierarchie-Browser sichtbar. Aufgeschobene (deferred) Merkmale sind durch kursive Schrift markiert. Zu jedem Merkmal wird auch die (Ober-)Klasse angezeigt, in der es implementiert ist. Die Zugriffsrechte auf die Merkmale sind durch den Kasten vor dem Namen symbolisiert.
Abb. 22: Zugriffsrechte Die im Class-Browser dargestellten Merkmale spiegeln jedoch nicht hundertprozentig die Schnittstelle der Eiffel-Klasse wider, da einige Eigenschaften von Eiffel bezüglich der Vererbung nicht auf C++ abgebildet werden können (vergl. Implementationsprobleme bei der Umbenennung und dem Aufschieben von geerbten Merkmalen). 9.5. Der Projekt-EditorEin compilerunabhängiges Projekt-Konzept zur Strukturierung der bearbeiteten Eiffel-Klassen steht ebenfalls zur Verfügung. Die Zugehörigkeit der Klassen zu Projekten wird mit dem Projekt-Editor verwaltet.
Abb. 23: Der Projekt-Editor Jedes Projekt kann Unterprojekte enthalten, so daß nicht jeder Benutzer z.B. für die Standard-Eiffel-Bibliotheken ein eigenes Projekt anlegen muß. Da die Symbolinformationen für die Projekte gespeichert werden, steigert dieses Vorgehen auch die Effizienz, da für die keinen Veränderungen unterworfenen Bibliotheken sofort alle Symbole zur Verfügung stehen. Die von Meyer vorgeschlagenen Strukturierungskonzepte (vergl. Kapitel 2.2) lassen sich auf dieses Projekt-Konzept abbilden, so daß das Hauptprojekt dem Eiffel-System entspricht und die Cluster durch Unterprojekte dargestellt werden. Es ist auch möglich, mit dem Projekt-Editor neue Dateien zu erzeugen, für die Sniff+ dann den Rahmen einer Eiffel-Klasse vorgibt, der dann nur noch ausgefüllt werden muß. Ebenfalls integriert ist der Anschluß einer Versionsverwaltung für die im Projekt enthaltenen Dateien. Dabei können wahlweise die Versionsverwaltungssysteme RCS oder SCCS verwendet werden. | |||||||||
|
Last updated: 24. Aug 2005 Page maintained by Jan Willamowius Impressum · Datenschutz | Deutsch: Home | Badminton | ISBN-Suche | Musik-Suche | Rezepte | Jan Willamowius |