Visualisierung der Statik, Dynamik und Infrastruktur von Software mit Hilfe der Stadt‐Metapher

Language
de
Document Type
Doctoral Thesis
Issue Date
2023-06-26
Issue Year
2023
Authors
Dashuber, Veronika
Editor
Abstract

One of the biggest challenges for software engineers is to understand software systems and their context quickly and efficiently. To gain a comprehensive understanding of diverse applications, three aspects must be analyzed: (a) the static properties of the software to understand the established architecture, (b) the dynamic software properties to grasp the loosely coupled dependencies (e.g., via REST) of modern systems, and (c) the infrastructure and its costs to help understand software operations. Visualizations can help to make complex content easier to understand. Real‐life metaphors also help to better comprehend abstract subjects such as software artefacts. Therefore, the city metaphor was used in the context of this work to visualize the three aspects mentioned. The city metaphor maps software components to buildings and containers of components to districts. Arcs between buildings represent dependencies between components. Since the number of both static and dynamic dependencies of a large software system is enormous, the dependencies that need to be explicitly drawn in the software city must be reduced to preserve clarity and foster understanding. The main goal of this work is therefore to develop a suitable visualization to best assist software engineers in understanding statics, dynamics, and infrastructure. The developed visualization HOLOWARE shows the three aspects in different views. The day view visualizes static dependencies. To avoid cluttering the city visualization due to many static dependency arcs, HOLOWARE uses a novel layered layout. Unlike conventional layouts, dependencies are encoded in the layout and only architecture‐violating dependencies need to be explicitly represented as arcs. In a controlled experiment, professional software engineers solved program comprehension tasks statistically significantly faster (5.3%) and better (43%) than subjects who performed the study with the conventional tree map layout. The layered layout of HOLOWARE reduces static dependency arcs while improving the understanding of the software architecture. The night view visualizes the dynamics. When visualizing dynamic dependencies, two reduction options were explored: clustering and aggregating the dependencies. Clustering displays only one representative trace per cluster, intended to reflect an application use case. Two filtering options, on individual components and use cases, further reduce the arcs. A short study showed that the filters are considered helpful and 81.8% of the subjects do not need the visualization of all dependencies for typical software development tasks. The DYNACITY view aggregates the dependencies. Calls between the same two components are combined to a representative arc and the aggregate load is calculated. The brightness of an arc indicates the load. DYNACITY also visualizes the activity of the component buildings, the more or longer requests they receive and/or spawn, the brighter they are. In a controlled experiment, software engineers were able to solve typical software understanding tasks faster (5.8%), better (11.7%), and with less cognitive load (6.7%) using the DYNACITY visualization compared to a traditional edge‐bundled visualization. The DYNACITYrc extension opens up another use case: root cause analyses. It additionally colors arcs and buildings according to HTTP status codes, so that errors color an arc or component red. Another study was able to show that software engineers find DYNACITYrc very helpful in root cause analysis. The so‐called CLOUD COST CITY visualizes the infrastructure of the software and its costs. For this purpose, the city metaphor known so far is applied to infrastructure artefacts instead of software components. The area of the buildings represents the usage of a resource and the height its costs. Thus, bad cost‐benefit ratios can be identified immediately. A case study showed that the city metaphor is suitable for analyzing software infrastructure and its costs, and that cost analyses can be performed more easily than with traditional cloud cost dashboards. HOLOWARE is an open‐source visualization that helps software engineers understand statics, dynamics, and infrastructure. Several studies investigated the solution approaches of the developed visualization and were able to validate its usefulness for program understanding.

Abstract

Eine der größten Herausforderungen für Software‐Ingenieure ist es, Software‐Systeme und deren Kontext schnell und effizient zu verstehen. Um ein umfassendes Verständnis der vielfältigen Applikationen zu erlangen, müssen drei Aspekte analysiert werden: (a) die statischen Eigenschaften der Software, um die bestehende Architektur zu begreifen, (b) die dynamischen Software‐Eigenschaften, um die lose gekoppelten Abhängigkeiten (z. B. via REST) moderner Systeme zu erfassen und (c) die Infrastruktur und deren Kosten, um das Verständnis des Software‐Betriebs zu fördern. Visualisierungen können dabei helfen, komplexe Sachverhalte besser verständlich zu machen. Metaphern aus dem echten Leben helfen zudem, abstrakte Inhalte wie Software‐Artefakte leichter greifen zu können. Deshalb wurde im Rahmen dieser Arbeit die Stadtmetapher verwendet, um die drei genannten Aspekte zu visualisieren. Die Stadtmetapher bildet Software‐Komponenten auf Gebäude und Container von Komponenten auf Stadtviertel ab. Bögen zwischen Gebäuden stellen Abhängigkeiten zwischen Komponenten dar. Da die Anzahl sowohl statischer als auch dynamischer Abhängigkeiten eines großen Software‐Systems enorm ist, müssen die explizit zu zeichnenden Abhängigkeiten in der Software‐Stadt verringert werden, um die Übersichtlichkeit zu wahren und das Verständnis zu fördern. Das Hauptziel dieser Arbeit ist es daher, eine geeignete Visualisierung zu entwickeln, um Software‐Ingenieure beim Verstehen von Statik, Dynamik und Infrastruktur bestmöglich zu unterstützen. Die erarbeitete Visualisierung HOLOWARE zeigt die drei Aspekte in verschiedenen Ansichten. Die Tagesansicht visualisiert statische Abhängigkeiten. Damit die Stadt‐Visualisierung aufgrund der vielen statischen Abhängigkeitsbögen nicht überladen wird, verwendet HOLOWARE ein neuartiges Schichten‐Layout. Im Gegensatz zu herkömmlichen Layouts werden die Abhängigkeiten in das Layout kodiert und nur noch architekturverletzende Abhängigkeiten müssen explizit als Bögen dargestellt werden. In einem kontrollierten Experiment lösten professionelle Software‐Ingenieure Aufgaben zum Programmverständnis statistisch signifikant schneller (5,3%) und besser (43%) als Probanden, die die Studie mit dem herkömmlichen Kacheldiagramm‐ Layout durchführten. Es konnte gezeigt werden, dass das Schichten-Layout von HOLOWARE die statischen Abhängigkeitsbögen sinnvoll reduziert und gleichzeitig das Verständnis der Statik fördert. Die Nachtansicht visualisiert die Dynamik. Bei der Visualisierung dynamischer Abhängigkeiten wurden zwei Reduktionsoptionen untersucht: Clustern und Aggregieren der Abhängigkeiten. Beim Clustern wird nur ein repräsentatives Trace pro Cluster angezeigt, der einen Anwendungsfall der Applikation widerspiegeln soll. Zwei Filteroptionen, auf einzelne Komponenten und Anwendungsfälle, reduzieren die Bögen zusätzlich. Eine kurze Studie konnte zeigen, dass zum einen die Filter hilfreich sind und zum anderen 81,8% der Probanden die Visualisierung aller Abhängigkeiten für typische Software‐ Entwicklungsaufgaben nicht benötigen. Die DYNACITY‐Ansicht aggregiert die Abhängigkeiten. Aufrufe zwischen denselben zwei Komponenten werden zu einem repräsentativen Bogen zusammengefasst und die aggregierte Last wird berechnet. Die Helligkeit eines Bogens zeigt die Last an. DYNACITY visualisiert auch die Aktivität der Komponentengebäude, je mehr oder längere Anfragen sie erhalten und/oder erzeugen, desto heller sind sie. In einem kontrollierten Experiment konnten Software‐Ingenieure mit der DYNACITY‐Visualisierung im Vergleich zu einer herkömmlichen kantengebündelten Visualisierung typische Aufgaben zum Software‐Verständnis schneller (5,8%), besser (11,7%) und mit weniger kognitiver Belastung (6,7%) lösen. Die Erweiterung DYNACITYrc erschließt einen weiteren Anwendungsfall: die Ursachenanalyse. Sie färbt zusätzlich Bögen und Gebäude entsprechend der HTTP‐Status‐Codes ein, sodass Fehler einen Bogen oder eine Komponente rot färben. Eine weitere Studie konnte zeigen, dass Software‐Ingenieure DYNACITYrc als sehr hilfreich bei Ursachenanalysen empfinden. Die sogenannte CLOUD COST CITY visualisiert die Infrastruktur der Software und deren Kosten. Dazu wird die bisher bekannte Stadtmetapher anstatt auf Software‐Komponenten auf Infrastruktur‐ Artefakte übertragen. Die Grundfläche der Gebäude bildet die Nutzung einer Ressource und die Höhe deren Kosten ab. So können schlechte Kosten‐Nutzen‐Verhältnisse sofort identifiziert werden. Eine Fallstudie konnte zeigen, dass die Stadtmetapher zur Analyse von Software‐Infrastruktur und deren Kosten geeignet ist und eine Kostenanalyse einfacher als mit herkömmlichen Cloud‐Kosten‐ Dashboards möglich ist. Mit HOLOWARE ist eine quelloffene Visualisierung entstanden, die Software‐Ingenieure beim Verstehen von Statik, Dynamik und Infrastruktur unterstützt. Mehrere Studien untersuchten die Lösungsansätze der erarbeiteten Visualisierung und konnten ihren Nutzen für das Programmverständnis stützen.

DOI
Faculties & Collections
Zugehörige ORCIDs