Pragmatic Software Architecture Visualization with Web Technology
Im Bereich der modellgetriebenen Softwareentwicklung (MDE) beschreiben Modelle das Verhalten von Systemen und können die Form von Diagrammen annehmen. In der Softwareentwicklung setzen große Projekte häufig Softwarearchitekturen zur Modularisierung ein. Grafische Architekturmodelle vereinen beide Konzepte und dienen einer kontrollierten Systementwicklung. Sie verbessern zudem die Kommunikation zwischen Projektbeteiligten. Das Konzept des Reverse Engineerings kehrt den MDE-Ansatz um und erschafft nachvollziehbare Architekturmodelle sowie Diagramme aus Quellcode. Dennoch tun sich einige Softwareentwickler/-innen schwer, ihre Softwarearchitektur zu veranschaulichen, oder müssen mit Diagrammen arbeiten, die schwer lesbar, skalierbar und nutzbar sind. Um diese Probleme zu lösen, erfasst Teil I Erkenntnisse aus dem Übergang von analogen Karten zu Kartografiesoftware und projiziert diese auf Diagramme. Diese Projektion führt neuartige Verbesserungen für Diagramme ein. Mittels einer neuen Metrik analysiere ich die Lesbarkeit von Diagrammen; die Ergebnisse zeigen eine garantierte Lesbarkeit von bestimmten Graphelementen für die meisten hierarchischen Diagramme. In Teil II zeige ich zuerst zwei Softwarearchitekturvisualisierungstechniken für graphbasierte Diagramme mithilfe der verbesserten Software. Die Techniken machen sich das Konzept der Modellierungspragmatik mit interaktiven Diagrammen zunutze. Schließlich zeige ich den DSL-getriebenen Ansatz SPViz, der die Visualisierungstechnik für die OSGi-Architektur auf beliebige Architekturen überträgt, und werte diesen aus. Die in dieser Doktorarbeit vorgestellten Werkzeuge sind Teil des quelloffenen KIELER Projekts. Ich überprüfe diese experimentell und empirisch mit der grafischen Statecharts-Sprache SCCharts und mehreren Architekturen von quelloffenen und industriellen Softwareprojekten.
In the field of model-driven engineering (MDE), models describe the behavior of systems and can take the form of abstracted graphical representations or diagrams. In software engineering, large projects often employ a software architecture for modularization and abstraction. Diagrammatic architectural models combine both concepts to serve a controlled system development and to augment the communication between different stakeholders. Applying the concept of reverse engineering to software architectures reverses the MDE approach and creates comprehensible architectural models and diagrams from source code. However, some software developers still struggle to visualize their software architecture or have to handle diagrams that suffer from issues regarding their readability, scalability, and usability. To solve these issues, Part I gathers insights from the shift from analog maps to mapping software and projects them onto a shift from diagrams to pragmatic diagramming frameworks. I analyze the readability of diagrams via a new readability metric; the results show a guaranteed readability of specific graph elements for most types of hierarchical diagrams. In Part II, I first propose two software architecture visualization techniques for graph-based diagrams using the enhanced diagramming software. The techniques utilize the concept of modeling pragmatics with interactive views that can vary in level of detail. Finally, I propose and evaluate the DSL-driven approach called SPViz that ports the visualization technique for the OSGi architecture to arbitrary architectures. The tools proposed in this thesis are part of the open-source KIELER project. I experimentally and empirically validate them with the graphical statecharts language SCCharts and multiple software architectures from open-source and industrial software projects.
Preview
Rights
Use and reproduction:
Please note that individual components of the publication may be subject to other licensing or copyright conditions.
