Florian Lautenschlager
Dr.-Ing. Florian Lautenschlager
-
Kooperative Exploration und Analyse von Software in einer Virtual/Augmented Reality Appliance
(Drittmittelfinanzierte Gruppenförderung – Teilprojekt)
Titel des Gesamtprojektes: Kooperative Exploration und Analyse von Software in einer Virtual/Augmented Reality Appliance
Laufzeit: 01.09.2018 - 31.12.2022
Mittelgeber: Bundesministerium für Wirtschaft und Technologie (BMWi)
URL: https://www2.cs.fau.de/research/Holoware/Der Aufwand für das Verstehen von Software umfasst in Entwicklungsprojekten bis zu 30% und in Wartungsprojekten bis zu 80% der Programmieraufwände. Deshalb wird in modernen Arbeitsumgebungen zur Software-Entwicklung eine effiziente und effektive Möglichkeit zum Software-Verstehen benötigt. Die dreidimensionale Visualisierung von Software steigert das Verständnis der Sachverhalte deutlich, und damit liegt eine Nutzung von Virtual-Reality-Techniken nahe. Im Rahmen des Holoware Projekts schaffen wir eine Umgebung, in der Software mit Hilfe von VR/AR (Virtual/Augmented Reality) und Technologien der Künstlichen Intelligenz (KI) kooperativ exploriert und analysiert werden kann. In dieser virtuellen Realität wird ein Software-Projekt oder -verbund dreidimensional visualisiert, sodass mehrere Benutzer gleichzeitig die Software gemeinsam und kooperativ erkunden und analysieren können. Verschiedene Nutzer können dabei aus unterschiedlichen Perspektiven und mit unterschiedlich angereicherten Sichten profitieren und erhalten so einen intuitiven Zugang zur Struktur und zum Verhalten der Software. Damit sollen verschiedene Nutzungsszenarien möglich sein, wie z.B. die Anomalieanalyse im Expertenteam, bei der mehrere Domänenexperten gemeinsam eine Laufzeitanomalie der Software analysieren. Sie sehen dabei die selbe statische Struktur der Software, jeder Experte jedoch angereichert mit den für ihn relevanten Detail-Informationen. Im VR-Raum können sie ihre Erkenntnisse kommunizieren und so ihre unterschiedliche Expertise einbringen.Darüber hinaus werden die statischen und dynamischen Eigenschaften des Software-Systems analysiert. Zu den statischen Eigenschaften zählen beispielsweise der Source-Code, statische Aufrufbeziehungen oder auch Metriken wie LoC, zyklomatische Komplexität o. Ä. Dynamische Eigenschaften lassen sich in Logs, Ablaufspuren (Traces), Laufzeitmetriken oder auch Konfigurationen, die zur Laufzeit eingelesen werden, gruppieren. Die Herausforderung liegt darin, diese Vielzahl an Informationen zu aggregieren, analysieren und korrelieren. Es wird eine Anomalie- und Signifikanz-Detektion entwickelt, die sowohl Struktur- als auch Laufzeitauffälligkeiten automatisch erkennt. Zudem wird ein Vorhersagesystem aufgebaut, das Aussagen über die Komponentengesundheit macht. Dadurch kann beispielsweise vorhergesagt werden, welche Komponente gefährdet ist, demnächst auszufallen. Bisher werden die Ablaufspuren um die Log-Einträge angereichert, wodurch ein detailliertes Bild der dynamischen Aufrufbeziehungen entsteht. Diese dynamischen Beziehungen werden auf den statischen Aufrufgraph abgebildet, da sie Aufrufe beschreiben, die aus der statischen Analyse nicht hervorgehen (beispielsweise REST-Aufrufe über mehrere verteilte Komponenten).
Im Jahr 2018 konnten folgende wesentlichen Beiträge geleistet werden:
- Entwicklung eines funktionsfähigen VR-Visualisierungsprototyps zu Demonstrations- und Forschungszwecken.
- Mapping von dynamischer Laufzeitdaten auf die statische Struktur als Grundlage für deren Analyse und Visualisierung.
- Entwurf und Implementierung der Anomalieerkennung von Ablaufspuren durch ein Unsupervised-Learning-Verfahren.
Im Jahr 2019 konnten weitere Verbesserungen erreicht werden:
- Erweiterung des Prototyps um die Darstellung dynamischen Software-Verhaltens.
- Kooperative (Remote-)Nutzung des Visualisierungsprototyps.
- Auswertung von Commit-Nachrichten zur Anomalieerkennung.
- Clustering der Aufrufe eines Systems nach Anwendungsfällen.
In dem Papier "Towards Collaborative and Dynamic Software Visualization in VR", das auf der International Conference on Computer Graphics Theory and Applications (VISIGRAPP) 2020 angenommen wurde, haben wir die Wirksamkeit unseres Prototyps zur Effizienzsteigerung beim Software-Verstehen gezeigt. Im Jahr 2020 wurde unser Papier "A Layered Software City for Dependency Visualization" auf der International Conference on Computer Graphics Theory and Applications (VISIGRAPP) 2021 angenommen und mit dem "Best Paper"-Award ausgezeichnet. Wir konnten belegen, dass das von uns entwickelte Layered Layout für Software-Städte das Analysieren von Software-Architektur vereinfacht und das Standard-Layout bei weitem übertrifft. Der finale Prototyp und die Publikationen, die im Rahmen des Forschungsprojektes entstanden sind, führten zu einem erfolgreichen Projektabschluss.
Nach Auslaufen der offiziellen Projektförderung durften wir in 2021 eine erweiterte Version des Award-Papiers ("Static And Dynamic Dependency Visualization in a Layered Software City") als Zeitschriftenartikel zur Begutachtung einreichen. Hier stellen wir eine Nacht-Ansicht der Stadt vor, in der die dynamischen Aufrufbeziehungen als Bögen visualisiert werden. Wir widmeten uns also einem zentralen, noch offenen Punkt: der Visualisierung von dynamischen Abhängigkeiten. In dem Papier "Trace Visualization within the Software City Metaphor: A Controlled Experiment on Program Comprehension" auf der IEEE Working Conference on Software Visualization (VISSOFT) haben wir dynamische Abhängigkeiten innerhalb der Software-Stadt über Licht-Intensitäten aggregiert dargestellt und konnten zeigen, dass diese Darstellung hilfreicher ist als alle Abhängigkeiten zu zeichnen. Auch für dieses Papier wurden wir zur Einreichung eines erweiterten Artikels "Trace Visualization within the Software City Metaphor: Controlled Experiments on Program Comprehension" zur Begutachtung aufgefordert. Wir zeigen dort eine erweiterte Darstellung dynamischer Abhängigkeiten und färben Bögen basierend auf HTTP Statuscodes.
In 2022 wurden beide Journalbeiträge akzeptiert: "Static And Dynamic Dependency Visualization in a Layered Software City" ist im Springer Nature Computer Science Journal veröffentlicht und "Trace Visualization within the Software City Metaphor: Controlled Experiments on Program Comprehension" wurde für das Information and Software Technology Journal angenommen. Zur Finalisierung von Holoware wurden alle Erweiterungen zu einer Gesamtvisualisierung zusammengefasst. Dazu wurden unterschiedlichen Ansichten verwendet, zwischen denen der Nutzer umschalten kann: in der Tagesansicht kann die Software-Architektur im neuartigen Holoware-Schichten-Layout analysiert werden und in der Nachtansicht werden dynamische Abhängigkeiten dargestellt. Im Rahmen einer Abschlussarbeit wurde Holoware zudem als AR-Visualisierung umgesetzt, sodass sie leicht als Showcase oder im Arbeitsalltag eingesetzt werden kann.
Mitte 2023 wurde das Projekt mit der Dissertation "Visualisierung der Statik, Dynamik und Infrastruktur von Software mit Hilfe der Stadt‐Metapher" final abgeschlossen. Dort werden nochmal alle Aspekte zusammengefasst, die im Rahmen von Holoware untersucht wurden: (a) die Statik des Systems, um die Software-Architektur zu begreifen, (b) die Dynamik des Systems, um die dynamische Abhängigkeiten (z. B. moderner Microservice-Architekturen) zu verstehen, und (c) die Infrastruktur des Systems, um Kosten zu analysieren und das Verständnis des Software‐Betriebs zu fördern. Zudem wurde 2023 noch ein weiterer Anwendungsfall aufgedeckt: der Einsatz von Holoware auf Messen. Durch die Visualisierung der Software ist es einfach, mit anderen Software-Entwicklern ins Gespräch zu kommen, da sofort über die visualisierte Software diskutiert werden kann. Dazu wurde das Setup der AR- und VR-Visualisierung so vereinfacht, dass Holoware jetzt auch ohne große technische Vorkenntnisse gestartet werden kann. Zudem wurde der Kontrast der Visualisierung verbessert, damit Umrisse und Bögen auch bei sehr hellen Lichtverhältnissen noch klar zu erkennen sind. -
Design for Diagnosability
(Drittmittelfinanzierte Einzelförderung)
Laufzeit: 15.05.2013 - 30.09.2018
Mittelgeber: Bayerisches Staatsministerium für Wirtschaft und Medien, Energie und Technologie (StMWIVT) (ab 10/2013)
URL: http://www2.informatik.uni-erlangen.de/research/DfD/Viele Software-Systeme verhalten sich während der Testphase oder sogar im Regelbetrieb im negativen Sinne auffällig. Die Diagnose und die Therapie solcher Laufzeitanomalien ist oft langwierig und aufwändig bis hin zu unmöglich. Mögliche Folgen bei der Verwendung des Software-Systems sind lange Antwortzeiten, nicht erklärbares Verhalten oder auch Abstürze. Je länger die Folgen unbehandelt bleiben, desto höher ist der entstehende wirtschaftliche Schaden.
"Design for Diagnosability" beschreibt eine Werkzeugkette mit Modellierungssprachen, Bausteinen und Werkzeugen, mit denen die Diagnosefähigkeit von Software-Systemen gesteigert wird. Mit dieser Werkzeugkette werden Laufzeitanomalien schneller erkannt und behoben – idealerweise noch während der Entwicklung des Software-Systems. Unser Kooperationspartner QAware GmbH bringt ein Software EKG ein, mit dem die Exploration von Laufzeit-Metriken aus Software-Systemen, visualisiert als Zeitreihen, möglich ist.
Das Forschungsprojekt Design for Diagnosability erweitert das Umfeld dieses bestehenden Software-EKG. Die Software-Blackbox misst minimal-invasiv technische und fachliche Laufzeitdaten des Systems. Die Speicherung der erfassten Daten erfolgt in Form von Zeitreihen in einer neu entwickelten Zeitreihendatenbank Chronix. Chronix ist darauf ausgelegt, eine Vielzahl an Zeitreihen äußerst effizient hinsichtlich Speicherplatzbedarf und Zugriffszeiten zu speichern. Chronix ist ein Open Source Projekt (www.chronix.io) und kann frei benutzt werden. Die Zeitreihen werden mit der Time-Series-API analysiert, z.B. mittels einer automatisierten Strategie zur Erkennung von Ausreißern. Die Time-Series-API bietet Grundbausteine, um weitere Strategien zur Identifikation von Laufzeitanomalien in Zeitreihen umzusetzen.
Die aufgeführten Werkzeuge werden in Kombination mit dem bestehenden Software-EKG zum Dynamic Analysis Workbench ausgebaut, um eine zeitnahe Diagnose und Behebung von Laufzeitanomalien zu ermöglichen. Hierzu sind Diagnosepläne vorgesehen, die einen Software-Entwickler unterstützen, eine Laufzeitanomalie schneller und zuverlässiger einzugrenzen und zu erkennen. Das Ziel der Werkzeugkette ist die Qualität von Software-Systemen zu erhöhen, insbesondere hinsichtlich der Kennzahlen Mean-Time-To-Repair sowie Mean-Time-Between-Defects.Vor dem erfolgreichen Projektabschluss im Juli 2016 konnten noch eine Reihe wesentlicher Beiträge geleistet werden:
- Wir haben Chronix und ein Framework zur verteilten Berechnung gekoppelt. Dadurch skaliert die Anomalieanalyse jetzt auf riesige Mengen an Zeitreihendaten.
- Wir haben Chronix fortentwickelt und weitere Komponenten ergänzt, wie z. B. ein noch effizienteres Speichermodell, mehrere Adapter für diverse Zeitreihendatenbanken, weitere server-seitige Analysefunktionen und neue Zeitreihentypen.
- Wir haben unseren Benchmark für Zeitreihendatenbanken veröffentlicht.
- Wir haben zur Analyse von Anomalien einen Ansatz entwickelt, der Aufrufe ausgehend von der Anwendung bis hinein auf die Betriebssystemebene nachvollzieht.
Obwohl die Förderung im Jahr 2016 auslief, haben wir im Jahr 2017 noch weitere Beiträge geleistet:
- Wir haben Chronix auf der USENIX Conference on File and Storage Technologies (FAST) im Februar 2017 in Santa Clara, CA, vorgestellt.
- Wir haben Chronix mit Schnittstellen ausgestattet, um in der Industrie verwendete Zeitreihendatenbanken anzubinden.
- Wir haben einen Ansatz entwickelt, der für eine gegebene Analyse (Funktion und zu analysierende Zeitreihen) die ideale Cluster-Konfiguration (bzgl. Verarbeitungszeit und Kosten) bestimmt.
- Wir haben Spark, ein Rahmenwerk zur verteilten Verarbeitung von Massendaten so erweitert, dass die GPU bei der verteilten Analyse von Zeitreihen genutzt werden kann. Ergebnisse haben wir auf der Apache Big Data Konferenz im Mai 2017 in Miami, Florida, vorgestellt.
Auch im Jahr 2018 haben wir noch weitere Beiträge im Forschungsprojekt geleistet:
- Wir haben ein Papier auf der PROFES 2018 veröffentlicht, in dem wir Techniken und Erkenntnisse beschreiben, wie man Laufzeitdaten in einem großen Software-Projekt schon zur Entwicklungszeit für alle Projektbeteiligten anbieten kann und damit die Zusammenarbeit verbessert.
- Wir haben das Open Source Projekt von Chronix gewartet und dabei weiter stabilisiert (Aktualisieren von Versionen, Fehlerbehebungen etc.).
2019
Effiziente Speicherung von Zeitreihen mit Betriebsdaten aus Software-Systemen zur Analyse von Laufzeitanomalien (Dissertation, 2019)
URL: http://www.shaker.de/shop/978-3-8440-6785-9
BibTeX: Download
:
2018
Making Runtime Data Useful for Incident Diagnosis: An Experience Report
International Conference on Product-Focused Software Process Improvement (PROFES 2018) (Wolfsburg, 28.11.2018 - 30.11.2018)
In: Kuhrmann, Marco; Schneider, Kurt; Pfahl, Dietmar; Amasaki, Sousuke; Ciolkowski, Marcus; Hebig, Regina; Tell, Paolo; Klünder, Jil; Küpper, Steffen (Hrsg.): Proceedings of the International Conference on Product-Focused Software Process Improvement (PROFES 2018), Cham: 2018
DOI: 10.1007/978-3-030-03673-7_33
URL: https://link.springer.com/chapter/10.1007/978-3-030-03673-7_33
BibTeX: Download
, :
2017
Chronix: Long Term Storage and Retrieval Technology for Anomaly Detection in Operational Data
15th USENIX Conference on File and Storage Technologies (FAST 17) (Santa Clara, CA, 27.02.2017 - 02.03.2017)
In: USENIX Association (Hrsg.): Proceedings of the 15th USENIX Conference on File and Storage Technologies (FAST 17) 2017
Open Access: https://www.usenix.org/conference/fast17/technical-sessions/presentation/lautenschlager
URL: https://www.usenix.org/system/files/conference/fast17/fast17-lautenschlager.pdf
BibTeX: Download
, , , :
2015
Fast and efficient operational time series storage: The missing link in dynamic software analysis
Symposium on Software Performance (SSP 2015) (München, 04.11.2015 - 06.11.2015)
In: Softwaretechnik-Trends (Band 35, Nr. 3): Proceedings of the Symposium on Software Performance (SSP 2015) 2015
URL: http://pi.informatik.uni-siegen.de/gi/stt/35_3/03_Technische_Beitraege/SSP_2015_paper_10.pdf
BibTeX: Download
, , , :
Rahmenwerk zur Ausreißererkennung in Zeitreihen von Software-Laufzeitdaten
Fachtagung Software Engineering & Management (SE 2015) (Dresden, Deutschland, 17.03.2015 - 20.03.2015)
In: Uwe Aßmann, Birgit Demuth, Thorsten Spitta, Georg Püschel, Ronny Kaiser (Hrsg.): Software Engineering & Management (SE 2015), Bonn: 2015
URL: http://www2.informatik.uni-erlangen.de/publication/download/SE2015.pdf
BibTeX: Download
, , , :
2014
Design for Diagnosability
In: Java Magazin (2014), S. 44-50
ISSN: 1619-795X
BibTeX: Download
, , , :
2013
Design for Diagnosability: Wie mache ich Software diagnostizierbar?
German Testing Day 2013 (Munich, Germany, 12.11.2013 - 12.11.2013)
In: German Testing Day 2013 2013
URL: http://www.germantestingday.info/sites/default/files/GTD-2013_Broschuere_final.pdf
BibTeX: Download
: