Was ist Software-Visualisierung?
Bei der Softwarevisualisierung werden Programme oder IDE-Plug-Ins (Integrated Development Environment) bei der Entwicklung und beim Testen von Softwareanwendungen verwendet. Dies ermöglicht die Erstellung einer grafischen Darstellung einiger Aspekte der Software, um festzustellen, ob Probleme oder Ineffizienzen innerhalb des Programms vorliegen. Es gibt eine Reihe von Arten von Softwarevisualisierungstechniken, die jedoch am häufigsten zum Anzeigen von Details zum Programmquellcode, zum Untersuchen der Beziehungen zwischen Softwarekomponenten oder zum Anzeigen einer abstrakten Ansicht der Programmausführung sowie von Informationen zum Programmstatus verwendet werden Interaktion mit umgebenden Prozessen. Im Allgemeinen wird die Softwarevisualisierung auf komplexen Systemen verwendet, um ungewöhnliche Verhaltensweisen oder eine ungewöhnliche Ressourcennutzung zu erkennen oder um Bereiche eines Designs zu erkennen, die unnötig sind oder fehlerhaft funktionieren. Die tatsächlich verwendete visuelle Darstellung variiert erheblich von miteinander verbundenen Textblöcken bis hin zu zweidimensionalen (2D) Balkendiagrammen, um dreidimensionale (3D) Objekte zu erstellen, deren Form sich während der Ausführung eines Programms ändert.
In einigen Fällen kann es hilfreich sein, mithilfe der Software-Visualisierung den Quellcode eines Programms zu überprüfen. Durch die Verwendung von Farbe und Abstraktion können riesige Mengen an geschriebenem Code gleichzeitig angezeigt werden. Die Absicht könnte sein, zu bestimmen, wie viel Code für welchen Zweck verwendet wird, oder die Anzeige könnte alternativ an einen Profiler oder Debugger gebunden sein, der Codeblöcke hervorhebt, deren Ausführung lange dauert oder die häufig ausgeführt werden.
Objektorientierte Programmiersprachen können mithilfe der Software-Visualisierung Beziehungen zwischen den verschiedenen Bibliotheken, Klassen und Methoden in einem Programm ermitteln. Auf diese Weise können Abhängigkeiten zwischen den verschiedenen Bereichen eines Programms ermittelt werden, von denen einige möglicherweise unbeabsichtigt sind. Es kann auch Klassen oder Methoden in einem Programm anzeigen, die niemals aufgerufen werden oder die von der Programmlogik nicht erreichbar sind. Visuell kann ein Abhängigkeits- oder Beziehungsdiagramm wie ein Netzwerk aus Netzen und Linien aussehen, die Kugeln unterschiedlicher Größe oder sogar die Zweige eines Baums überlappen.
Sobald ein Programm ausgeführt wird, kann die Echtzeit-Softwarevisualisierung eine abstrakte Darstellung der Programmausführung, der Behandlung unterschiedlicher Warteschlangen und des Flusses von Eingabe und Ausgabe anzeigen. Dies kann Entwicklern helfen, Spitzen oder Lücken in der Leistung und in Bereichen mit außergewöhnlich hoher Aktivität zu erkennen. Diese Arten von Visualisierungen können wie fast alles aussehen, von farbigen Blöcken und Wellenformen bis hin zu sich ändernden topografischen Karten, die ausgeführte Codesegmente darstellen. Im Allgemeinen wird die Visualisierung jedoch relativ einfach gehalten, so dass anomale Ereignisse ohne übermäßige grafische Unordnung klar gesehen und beobachtet werden können.
Es gibt andere Anwendungen für die Software-Visualisierung, von denen eine das Reverse Engineering einer Anwendung ist. Indem Sie beobachten, wie ein Programm interagiert und ausgeführt wird, können Sie sich auf verschiedene Codesegmente konzentrieren, ohne dass eine steile Einarbeitungszeit erforderlich ist. Eine spezifischere Verwendung liegt im Bereich der Computersicherheit darin, zu beobachten, welche Bereiche eines Programms mit externen Prozessen interagieren oder welche Bereiche für Angriffe offen sind.