Ein Angebot von

Software-Visualisierung und -Analytics: Stand der Technik und Perspektiven

| Autor / Redakteur: Prof. Dr. Rainer Koschke* / Sebastian Gerstl

Ein automatisch angeordneter Graph
Ein automatisch angeordneter Graph (Bild: DOI:10.3166/LCN.10.3.37-54)

Dieser Beitrag beschreibt Techniken, Methoden und Werkzeuge der Software-Visualisierung. Sowohl der aktuelle Stand der Technik wird beleuchtet als auch aktuelle Trends aus der Forschung dargestellt und ein Ausblick auf die Zukunft gewagt. Was ist Software-Visualisierung? Was ist Visual Analytics? Welche Arten von Visualisierungen und Interaktionsformen gibt es?

Während ein Maschinenbauer an sein Werk treten und es sehen, fühlen, riechen und hören kann, entzieht sich Software der Sinneswahrnehmung ihrer Entwickler, weil Software immateriell ist. Nichtsdestotrotz müssen wir ihre oftmals komplexe innere Struktur und das Zusammenwirken ihrer Bestandteile durchschauen. Das Lesen des Quelltexts ist ab einem bestimmten Umfang nicht mehr möglich. Wir brauchen eine abstraktere Aufbereitung der Information.

Software-Visualisierung ist die Wissenschaft der graphischen Repräsentation von Informationen über Software. Sie ist weit mehr als nur das Erzeugen von Pixeln. Die Interaktion in Form von Filtern, Suchen und Abfragen der dargestellten Daten ist integraler Bestandteil. Sie ist zudem eng verknüpft mit der Analyse von Software zur Datenextraktion. In der so genannten Visual Analytics hilft sie, die automatische Datenanalyse mit der menschlichen Fähigkeit zu ergänzen, Muster und Trends visuell auf einen Blick zu erfassen.

Was ist Software-Visualisierung und wozu ist das gut?

Bei vielen Wartungsproblemen kann man nicht vorab eine präzise Frage formulieren beziehungsweise einen Algorithmus angeben, der eine präzise Antwort auf die Frage liefern kann. Bei vielen Wartungsproblemen muss man stattdessen eher explorativ vorgehen. Selbst wenn man präzise Fragen und Algorithmen hat, kann es dann immer noch geschehen, dass die Fülle der Resultate erdrückend ist. Für exploratives Vorgehen und die Untersuchung großer Datenmengen bieten sich Visualisierungen an, die dem menschlichen Betrachter helfen können.

Software-Visualisierung ist ein Spezialgebiet der allgemeinen Informationsvisualisierung. Informationsvisualisierung beschäftigt sich mit der Darstellung von Informationen, so dass sie menschlichen Betrachtern besser zugänglich ist. Viele Erkenntnisse in diesem Bereich lassen sich auf Software-Visualisierung im Speziellen übertragen. Dennoch ist es notwendig, die Besonderheiten des visualisierten Gegenstands – in diesem Falle also Software – zu berücksichtigen. Software ist immateriell, wie bereits erwähnt. Es gibt somit keine natürliche Darstellungsform. Software hat sowohl Struktur als auch Verhalten und beides sollte visualisiert werden können. Software ist mehrschichtig, komplex und detailreich. Graphische Repräsentationen müssen mit textuellen Darstellungen verknüpft werden, da die meisten Programmiersprachen textuell sind und es letztlich die Programmtexte sind, die die vollen Details enthalten und die durch Visualisierung abstrahiert werden soll. Die Änderungen müssen im Quelltext gemacht werden. Die Visualisierung ist ein Mittel, um dies effizient und effektiv erreichen zu können.

Was wird alles zu welchem Zweck visualisiert?

In der Software-Visualisierung werden Informationen über Software dargestellt. Dazu gehören sowohl statische als auch dynamische Aspekte. Statische Informationen sind solche, die direkt durch Analyse von Dokumenten gewonnen werden können, ohne das Programm ausführen zu müssen. Zu den Dokumenten gehören nicht nur der Quellcode, sondern auch Beschreibungen der Architektur und der Testfälle sowie die Dokumentation. Metriken zur Größe und Komplexität von Funktionen beispielsweise sind klassische Daten, die durch eine statische Analyse gewonnen werden. Dynamische Analysen ermitteln ihre Ergebnisse durch Ausführung des Programms. Beispiele hierzu sind der Speicherverbrauch, Laufzeiten oder konkrete Werte, die ein Programm für eine bestimmte Eingabe liefert.

Das Ziel der Software-Visualisierung ist die Reduktion der Komplexität für den Betrachter, verschiedene Sichten zu bieten und Inferenzen des menschlichen Betrachters zu unterstützen. Dabei ergeben sich verschiedene Herausforderungen. Zum einen muss eine Visualisierung skalieren, da wir es in der Wartung meist mit sehr großen Programmen zu tun haben. Was für die Darstellung eines Miniprogramms gut aussieht, ist nicht notwendigerweise auch anwendbar für sehr große Programme. Zum andern muss eine passende Form der Visualisierung gefunden werden, die alle für ein Problem relevanten Aspekte erfasst und von allen irrelevanten abstrahiert.

Die Güte einer Software-Visualisierung ist somit grundsätzlich abhängig von der konkreten Aufgabe, die der Entwickler verfolgt. Ob Detailinformationen oder grobe Übersichten notwendig sind, bestimmt darüber, welche Art von Software-Visualisierung in Frage kommt. Unter den vielen möglichen Visualisierungen müssen dann die geeigneten für die jeweilige Aufgabe ausgewählt werden. Dazu ist es hilfreich, eine Übersicht über Visualisierungen zu haben. Dieser Beitrag gibt eine solche Übersicht.

Was sind Software-Analytics und Visual Analytics und wie hängen sie mit Software-Visualisierung zusammen?

Software-Visualisierung ist verwandt mit der so genannten Software-Analytics. Software-Analytics ist die Wissenschaft zur Entdeckung und Kommunikation von bedeutungsvollen Mustern in Software-Daten. Sie verwendet dazu Methoden der Statistik, Data-Mining-Techniken, maschinelles Lernen und Visualisierung. Software-Visualisierung ist darin eine Stütze. Software-Analytics geht aber darüber hinaus, indem Methoden angewandt werden, die Daten gewinnen und Zusammenhänge und Muster erkennen.

Visual Analytics bezogen auf Daten über Software und ihren Entwicklungsprozess kann als ein Teilgebiet der Software-Analytics betrachtet werden. Wie auch bei der Software-Analytics ist das Ziel der Visual Analytics, Erkenntnisse aus großen und komplexen Datensätzen zu gewinnen. Hierzu werden jedoch nicht nur klassische Methoden der Statistik, Data-Mining-Techniken und maschinelles Lernen eingesetzt. Der Ansatz kombiniert überdies diese automatischen Datenanalysetechniken mit der menschlichen Fähigkeit, schnell Muster oder Trends visuell erfassen zu können. Daten werden vom menschlichen Betrachter visuell exploriert, um Erkenntnisse zu gewinnen. Visualisierung spielt hierbei also eine zentrale Rolle und dient nicht nur der Darstellung der Endergebnisse wie in der klassischen Software-Analytics.

Welche Eigenschaften menschlicher Wahrnehmung sind wie zu berücksichtigen?

Software-Visualisierungen müssen mit begrenzten Ressourcen auskommen. Die Ressourcen sind sowohl durch Werkzeuge und Hardware vorgegeben, wie beispielsweise die Auflösung und Größe der Anzeigefläche. Aber auch die menschlichen kognitiven Fähigkeiten haben ihre Grenzen, über die sich eine Software-Visualisierung nicht hinwegsetzen kann. Die menschliche Wahrnehmungsfähigkeit wie Scharf- und Farbsehen müssen – wie bei jedem anderen Interaktionsdesign der Mensch-Maschine-Kommunikation auch – mit berücksichtigt werden. Software-Visualisierung ist aber möglicherweise noch schwieriger als Visualisierungen anderer Dinge, weil es im Unterschied zu anderen Domänen in der Software-Entwicklung weniger Konventionen für Visualisierungen gibt, also zum Beispiel wie Farben und Symbole zu interpretieren sind. In der Software-Wartung existierender Programme haben wir es darüber hinaus mit einem besonders umfangreichen und komplexen Informationsraum zu tun.

Die visuelle Wahrnehmung unterliegt bestimmten kognitiven Gesetzmäßigkeiten, die fest in unserem Gehirn verankert sind. Die kognitive Psychologie beschäftigt sich mit diesen im Allgemeinen. Die Gestaltpsychologie hat beispielsweise Ordnungsprinzipien bei der Wahrnehmung insbesondere unbewegter zweidimensionaler Bilder identifiziert. Dazu gehören etwa das Gesetz der Nähe, nach dem Elemente mit geringen Abständen zueinander als zusammengehörig wahrgenommen werden, oder das Gesetz der Ähnlichkeit, nach dem einander ähnliche Elemente eher als zusammengehörig erlebt werden als einander unähnliche. Viele visuelle Eindrücke gelangen gar nicht erst ins Bewusstsein beziehungsweise werden schon vorher verarbeitet.

Die so genannte präattentive Wahrnehmung ist eine vorbewusste, unterschwellige Wahrnehmung von Sinnesreizen. Ein Reiz wird zwar vom Nervensystem einer Person wahrgenommen und löst dort auch einen Effekt aus, dringt jedoch nicht bis ins Bewusstsein. Dies beschleunigt einerseits die Wahrnehmung, weil diese Prozesse parallel und automatisiert ablaufen, kann jedoch auch dazu führen, dass wichtige Informationen schon ausgefiltert werden und das Bewusstsein gar nicht „die volle Wahrheit“ erfährt. Im Zusammenhang von sich verändernden visuellen Sinneseindrücken ist die so genannte Veränderungsblindheit des Menschen eine weitere Gefahr für Unvollständigkeiten und visuelle Trugschlüsse.

Die Veränderungsblindheit bezeichnet ein Phänomen der visuellen Wahrnehmung, bei dem Änderungen in einer visuellen Szenerie vom Betrachter nicht wahrgenommen werden, obwohl die Änderungen gravierend sind. In einem klassischen Experiment, bei dem die Betrachter mit der Aufgabe beschäftigt werden zu zählen, wie oft eine Gruppe von Menschen sich einen Ball zuwirft, wandert zwischendurch eine Person durch das Bild, die als Gorilla verkleidet ist. Ein Großteil der Betrachter nimmt diesen Gorilla gar nicht wahr, obwohl er deutlich zu sehen ist. Zu sehr sind die Betrachter mit ihrer Aufgabe beschäftigt. Ihr Fokus auf die gestellte Aufgabe ist zugleich eine Verengung ihrer Sinneswahrnehmung.

Ein ähnliches Phänomen ist die Unaufmerksamkeitsblindheit. Dies ist die Nichtwahrnehmung von Veränderungen von Objekten, die nicht im Fokus stehen. Werden bei zwei Bildern der gleichen Szenerie marginale und für den Betrachter unbedeutende Veränderungen vorgenommen, fällt dies dem Betrachter bedingt durch die eingeschränkte Verarbeitungskapazität des menschlichen Gehirns nicht ins Auge.

Wer also Visualisierungen verwendet, um die menschliche Fähigkeit auszunutzen, rasch Muster zu erkennen, der muss sich gewahr sein, dass das menschliche Gehirn erst selektieren muss, welche Informationen relevant sind und welche weniger. Es muss einer Visualisierung gelingen, die menschliche Aufmerksamkeit auf relevante Sachverhalte zu lenken, damit diese bewusst wahrgenommen werden können.

Inhalt des Artikels:

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45490923 / Software Engineering)