CodeLeaves: Den Software-Wald vor lauter Bäumen sehen

QAware CodeLeaves Software Wald

20.02.2018

Einem QAware Werkstudenten ist es in seiner Masterarbeit gelungen, gleichzeitig statische und dynamische Aspekte einer Software mithilfe der Wald-Metapher in 3D zu visualisieren.

Diagnose, Sanierung, Exploration und Realisierung (komplexer) Software sind unser Tagesgeschäft. Die Komplexität erschwert dabei sowohl die Entwicklung als auch die Fehlersuche: Wo ist das Bottleneck? Was verlangsamt die Anwendung?

Daher haben wir uns bereits mit verschiedenen Möglichkeiten der Visualisierung von Software beschäftigt, z.B. mit der Darstellung von Software als Stadt (mehr zum Projekt SoftwareCity). Einen völlig neuen Ansatz hat unser langjähriger Werkstudent Marcel Pütz in seiner Masterarbeit verfolgt: Er erstellte mit CodeLeaves ein Konzept, das Software als dreidimensionalen Wald visualisieren kann. Die Struktur der Software wird dargestellt als die Baumstruktur eines Waldes, mit spezifisch vielen, hohen, verästelten Bäumen in verschiedenen (Blätter-) Farben:

  • Verbindungen (z.B. statische Abhängigkeiten oder dynamische Aufrufe) bilden die Wurzeln zwischen den Bäumen am Boden. Viele Verbindungen zeigen sich in dickeren Wurzeln.
  • Die Struktur der Software (das Verzeichnis der Haupt- und Unterordner) zeigt sich durch die nach oben wachsenden Bäume mit Ästen und Verästelungen: Vom Waldboden, der das Hauptverzeichnis darstellt, über die einzelnen Bäume und deren Äste bis hin zu den Blättern, die für die einzelnen Klassen stehen.
  • Die Farbe dieser Blätter visualisiert verschiedene Metriken. So kann ein grüner Wald z.B. für eine gute Testabdeckung stehen.

Damit Softwareentwickler nicht buchstäblich vor lauter Bäumen keinen Wald sehen, bedarf es einer übersichtlichen Darstellung. Dafür erstellte Marcel Pütz einen Prototyp für die HoloLens, die Augmented Reality (AR)-Brille von Microsoft. Auf Basis von Unity 3D und C# entwickelte er spezielle Layout-Algorithmen, um die Strukturbausteine (Bäume, Äste bis hin zu einzelnen Blättern) in 3D darzustellen. Zusätzlich entwarf er ein Interaktionskonzept nach allgemeingültigen Prinzipien der AR, um diese Bausteine einzeln auswählen und genauer betrachten zu können.

Eine besondere Herausforderung war dabei die Generierung des Waldes. Der Informatikstudent der Hochschule Rosenheim nutzte dafür in der Natur vorkommende Verteilungsstrategien und hierarchisches Circle-Packing.

Das Ergebnis: Die Wald-Metapher eignet sich sehr gut, um Software zu visualisieren. Der mentale Transfer zwischen Software- und Waldstruktur ist besser verständlich als bei den bisherigen Visualisierungskonzepten auf Basis der Stadt-Metapher. Denn Bäume sind von Natur aus hierarchisch aufgebaut, analog dem Aufbau einer Software. Zudem kann man im Software-Wald Verbindungen aggregiert darstellen, was in der Software-Stadt bislang nicht möglich ist. Damit lässt sich z.B. ein Bottleneck mit hoher Laufzeit (Blattfarbe Rot) aufgrund vieler Aufrufe (dicke Verbindungen) identifizieren.

Eine Weiterentwicklung dieses Konzepts ist somit vielversprechend. Es kann bei der Entwicklung und Sanierung komplexer Software helfen – damit man den Wald vor lauter Bäumen, das große Ganze vor lauter Codezeilen im Auge behält.

 

Bild: Marcel Pütz