Konstruktion von Objekterzeugungs-Graphen für Java-Programme

von Jacek Bandyk, 2003

Dynamische Programmanalyse dient dazu, Aussagen über das Laufzeitverhalten von Programmen zu erhalten. So lassen sich z. B. Aussagen über die Beziehungen zwischen den zur Laufzeit eines Programmes erzeugten Objekten gewinnen. Solche Beziehungen werden in Objektgraphen dargestellt. Ihre Knoten sind die Programmobjekte. Interaktion zwischen Objekten, etwa durch Methodenaufruf wird durch Kanten dargestellt. Beschränkt man die betrachteten Interaktionen auf die Objekterzeugung, d.h. von einer Methode eines Objektes wird ein anderes Objekt dynamisch erzeugt, erhält man den Objekterzeugungs-Graphen.

Ein wichtiges Anwendungsgebiet von Objekterzeugungs-Graphen ist das Programmverstehen als Grundlage von Wartung und Re-Engineering von Software-Systemen. Die zur Laufzeit gewonnenen Daten können, wenn sie geeignet visualisiert werden, wichtige Informationen über die dynamischen Datenstrukturen eines Programmes liefern.

In dieser Studienarbeit wurde ein Werkzeug zur Erzeugung und Darstellung von Objekterzeugungs-Graphen für Java-Programme entwickelt. Wichtige Arbeitspunkte waren

  • Die Instrumentierung von Java-Programmen, bei der der Programm-Code durch das Einfügen von Mess- und Zählanweisungen modifiziert wird.

  • Das Sammeln und Verwalten von Objekterzeugungs-Information zur Programmlaufzeit. Dieser Punkt umfasste im wesentlichen die Implementierung einer geeigneten Graphdatenstruktur.

  • Die Visualisierung der Laufzeitdaten als Objekterzeugungs-Graphen. Dazu wurde ein existierndes Graph-Visualisierungs-Werkzeug verwendet.

Impressum | Webmaster | Letzte Änderungen am : 16.10.2013