Grafische Visualisierung von Softwarestrukturen Projektarbeit SS07-WS07/08 Universität Siegen Dominik Benner
Überblick Einleitung Was kann man visualisieren? Die Codevisualisierung Die Datenvisualisierung Probleme der Visualisierung AREDIS/AM AredisViewer Ausblick
Einleitung „Denken ohne Bilder ist unmöglich“ -Aristoteles
Einleitung Visualisierungen werden in der Medizin, der Physik, der Chemie und dem Maschinenbau besonders stark eingesetzt Informatiker schreiben diese Software, verwenden jedoch selbst kaum Visualisierungen
Einleitung Erster Schritt: UML Bereits vorhandene Legacy-Systeme müssen auch visualisiert werden können (Reverse Engineering) Softwarevisualisierung
Was kann man visualisieren? Die Hauptbereiche der Visualisierung: Codevisualisierung Datenvisualisierung
Die Codevisualisierung Visualisierung von Quellcode Darstellung von Methodenaufrufen Visualisierung des Programmablaufs Visualisierung von Threads Visualisierung der Kommunikation zwischen Programm und Betriebssystem
Die Codevisualisierung Visualisierung von Quellcode: Übersetzung des Quellcodes in geometrische Formen Darstellung der Abhängigkeiten dieser Objekte
Die Codevisualisierung Darstellung von Methodenaufrufen: Darstellung aller Klassen und Methoden als geometrische Objekte Visualisieren der Methodenaufrufe durch Pfeile Deckt unnötige Beziehungen auf
Die Codevisualisierung Visualisierung des Programmablaufs: Sequenzdiagramme zur Verdeutlichung des Programmablaufs Erkennung von Deadlocks
Die Codevisualisierung Visualisierung von Threads: Darstellung aller Threads eines Programms Erkennung von Schwachstellen in der Programmierung
Die Codevisualisierung Visualisierung der Kommunikation zwischen Programm und Betriebssystem: Darstellung zugewiesener Ressourcen Abhängigkeit zum Betriebssystem erkennen
Die Datenvisualisierung Visualisieren der Daten an sich (numerische Werte, Zeichen, Texte, Bilder etc.) Visualisieren von Datenstrukturen (mittels Bäume, Listen, Stacks, etc.) Darstellung des Hauptspeichers Visualisierung von Netzwerkdaten
Probleme der Visualisierung Viele Darstellungen sind zu umfangreich (Skalierbarkeit) Geschwindigkeit der Visualisierungssoftware Speicherplatzbedarf im Hauptspeicher Datenbeschaffung aus relevanten Systemen
AREDIS/AM Application Miner Firma Quintec IT Ermöglicht es Legacysysteme zu analysieren und somit Schwachstellen aufzudecken
AREDIS/AM
AredisViewer Bisherige Darstellungsform des AREDIS/AM: Tabellarische Form Ziel der Projektarbeit: Entwicklung eines Visualisierungstools dieser Daten
AredisViewer Anforderungen: Einlesen der AREDIS/AM Parseroutputs Selektion der anzuzeigenden Objekte Auswahl eines Designs Skalierbarkeit des Layouts Anzeige von Objekteigenschaften
AredisViewer Laden und Speichern Drucken Eigene Anmerkungen zu jedem beliebigen Objekt Darstellung der Kopplungsstärke Softwareanalyse mittels Softwaremetriken
AredisViewer Die Visualisierungskomponente: YFiles der Firma YWorks Interaktives Manipulieren der Grafik Fertiges Softwareprodukt Kostengünstiger als Eigenproduktion
AredisViewer Das Layout: IncermentalHierarchicLayout OrganicLayout
AredisViewer Auswahl des OrganicLayout
AredisViewer
AredisViewer
Ausblick Softwarevisualisierung ist noch eine sehr junges Thema Anforderungen an Visualisierungstools sehr umfangreich Es wird immer wichtiger alte Bestandssysteme zu optimieren Kosteneinsparungen der Unternehmen
Vielen Dank für Ihre Aufmerksamkeit!