05.11.2013 Aufrufe

Laufzeitanalysen mit Hilfe der Aspektorientierten ... - Feldschmid

Laufzeitanalysen mit Hilfe der Aspektorientierten ... - Feldschmid

Laufzeitanalysen mit Hilfe der Aspektorientierten ... - Feldschmid

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

4 Entwurf eines prototypischen<br />

Werkzeugs<br />

In diesem Abschnitt wird das von uns implementierte prototypische Werkzeug kurz<br />

vorgestellt.<br />

Gerade beim Profiling beziehungsweise <strong>der</strong> Analyse von Methodenlaufzeiten, muss viel<br />

Wert auf Performance und Skalierbarkeit gelegt werden, da<strong>mit</strong> ein möglichst unverfälschtes<br />

Ergebnis erzielt werden kann. Die von uns implementierten Aspekte sowie die erstellte<br />

Architektur wurden nicht speziell auf einen performanceorientierten o<strong>der</strong> gar skalierbaren<br />

Ansatz optimiert. Die erstellte Lösung ist also eher als ”<br />

Prototyp“ o<strong>der</strong> ”<br />

Proof of<br />

Concept“ zu verstehen – die generierten Ausgaben können als Richtwerte herangezogen<br />

werden, sind aber auf jeden Fall kritisch zu hinterfragen.<br />

4.1 Architektur des Programms / Entscheidungen<br />

Um die Architektur des Programms verstehen zu können, ist es wichtig die Grundzüge<br />

Aspektorientierter Programmierung zu verstehen – siehe dazu Kapitel 1.<br />

Bei <strong>der</strong> Analyse <strong>der</strong> Architekturanfor<strong>der</strong>ungen an unser Programm wurde schnell klar,<br />

dass eine <strong>der</strong> Hauptanfor<strong>der</strong>ungen die Interoperabilität ist, also die Möglichkeit unser<br />

Werkzeug ohne große Anpassungen auf ein beliebiges Java-Projekt anwenden zu können.<br />

Diese Funktion wird durch AspectJ und so<strong>mit</strong> von den verschiedenen Aspekten von<br />

Haus aus bestens Unterstützt – wir mussten also nur noch darauf achten beim Sammeln,<br />

Verwalten und Ausgeben <strong>der</strong> Daten keine projektspezifischen Abhängigkeiten zu<br />

generieren.<br />

Um die Informationen, die von den einzelnen Aspekten gesammelt werden auswerten<br />

und eventuell darstellen zu können, muss eine Ausgabe stattfinden. Dies könnte nun<br />

per Ausgabe in eine Datei, Schreiben in eine Datenbank, auf einen Socket o<strong>der</strong> eine<br />

MessageQueue realisiert werden. Wir entschieden uns <strong>der</strong> Einfachheit halber für eine<br />

simple Ausgabe in eine Datei. Dabei entschieden wir uns für eine Ausgabe im XML-<br />

Format. Auch dafür musste eine – soweit überhaupt möglich – gemeinsame Struktur<br />

festgelegt werden. Einer <strong>der</strong> Gründe für das XML-Ausgabeformat war die Möglichkeit<br />

das erzeugte XML-Dokument <strong>mit</strong>tels XSLT in verschiedene an<strong>der</strong>e Formate (z.B. CSV,<br />

SVG, XHTML usw.) transformieren zu können.<br />

20

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!