Eine Umfassende Werkzeugunterstuetzung ist essentiell, um Entwicklern die Beherrschung der Komplexitaet moderner Softwareentwicklungsprojekte zu ermoeglichen. Softwareprojekte werden zunehmend groesser, verwenden verschiedene Sprachen und nutzen eine große Anzahl externer Bibliotheken und Frameworks. Vor diesem Hintergrund werden Werkzeuge zur Förderung des Softwareverständnisses benötigt, um zu prüfen, ob Bibliotheken und Frameworks korrekt benutzt werden und um sicherzustellen, dass das Design von Anwendungen waehrend der Entwicklung nicht zerfaellt. Obwohl bereits zahlreiche erfolgreiche Werkzeuge fuer diese Aufgaben entwickelt wurden, sind einige Probleme noch ungeloest: die Werkzeuge sind typischer Weise hoch spezialisiert, ihre Erweiterbarkeit ist beschraenkt und eine Integration zwischen den Werkzeugen ist nicht vorhanden. Weiterhin ist eine Integration in integrierte Entwicklungsumgebungen (IDEs) und insbesondere eine Einbettung in den inkrementellen Übersetzungsvorgang moderner IDEs meist nicht vorhanden. Eine direkte Integration mehrerer Analysewerkzeuge mit dem inkrementellen Uebersetzungsvorgang ist nicht moeglich. Wenn jedes Werkzeug den Quelltext des Projekts selbstaendig verarbeitet und auch ein eigenes Modell der Software wartet, dann sind die Gesamtanforderungen bezueglich Speicherbedarf und Analysezeit zu hoch. Um diese Probleme zu loesen, wird in dieser Dissertation das Konzept von offenen statischen Analyseplattformen vorgeschlagen, die in den inkrementellen Uebersetzungsvorgang eingebunden sind. Die Kernfunktionalitaet solcher Plattformen ist die Koordination der Ausfuehrung statischer Analysen, welche in Module mit wohl definierten Schnittstellen eingekapselt sind. Die Schnittstellen spezifizieren im Hinblick auf die verarbeiteten Daten, was die Analysen benoetigen und zur Verfuegung stellen. Fuer Werkzeuge, die auf diesen Plattformen aufsetzen, ist es ausreichend zu spezifizieren welche Daten benoetigt werden. Die Plattform kann dann die Menge der Analysen und ihre Ausfuehrungsreihenfolge bestimmen, um die Anforderungen der Werkzeuge zu erfuellen. Die Modellierung der Analysen als modulare Produzenten-Konsumenten- Einheiten ermoeglicht die gleichzeitige Integration mehrerer Werkzeuge in den inkrementellen ?Uebersetzungsprozess moderner IDEs. Verglichen mit der Nutzung mehrerer unabhaengiger Werkzeuge sind die Speicheranforderungen aufgrund der gemeinsamen Nutzung des Softwaremodells reduziert. Das Softwaremodell wird waehrend der Ausfuehrung der Analysen abgeleitet und von allen auf der Plattform aufsetzenden Werkzeugen genutzt. Weiterhin wird die Gesamtanalysezeit dadurch reduziert, dass jede Analyse hoechstens einmal ausgefuehrt wird — insbesondere auch dann, wenn die abgeleitete Information von mehreren Werkzeugen benoetigt wird. Darueber hinaus wird die Gesamtanalysezeit minimiert durch die parallele Ausfuehrung von Analysen, die verschiedene Daten verarbeiten. Die Realisierbarkeit des vorgeschlagenen Ansatzes wird durch Magellan demonstriert. Magellan ist eine offene statische Analyseplattform, die eng in den inkrementellen Üebersetzungsprozess der Eclipse IDE integriert ist. Diese Integration verwandelt Eclipse in eine Integrierte Entwicklungs- und Analyseumgebung. Die Menge der Module, die statische Analysen implementieren, ist frei erweiterbar und das Datenmodell ist offen für Ergänzungen. Ein offenes Datenmodell ist unabdingbar, um neue Analysen zu unterstützen, die abgeleitete Information fuer nachfolgende Analysen zwischenspeichern muessen. Neben der Unterstützung eines vollständig flexiblen Analysestapels unterstuetzt Magellan auch das Einbetten von Abfragesprachen. Die Unterstuetzung der Ausfuehrung von Abfragen ist unverzichtbar, um Endanwendern die Spezifikation von anwendungsspezifischen Analysen zu ermoeglichen. Die Faehigkeit Abfragen auszufuehren ist auch notwendig, um die Implementierung von Werkzeugen zum Softwareverstaendnis zu ermoeglichen. Die Tragfaehigkeit des Konzeptes wird durch die beispielhafte Einbettung eines Prolog Systems und eines XQuery Prozessors in Magellan gezeigt. Beide Ansaetze werden im Hinblick auf ihre Eignung zur Ausfuehrung von Abfragen als Teil des inkrementellen ?Ubersetzungsvorgangs bewertet. Der XQuery Prozessor wird zudem bezueglich seiner Verwendung in Softwareverstaendniswerkzeugen evaluiert — als ein Ansatz um dem Endbenutzer die Definition von neuen Abfragen zur Navigation durch den Code zu ermoeglichen. Die Plattform wird validiert durch vier auf der Plattform aufsetzende Werkzeuge. Dies sind ein Werkzeug zur Exploration von Software, ein Werkzeug zur Berechnung von Metriken, ein optionales Typsystem und eine Menge von leichtgewichtigen statischen Analysen, die strukturelle Eigenschaften des Quellcodes ueberpruefen. | German |