Consistent Software Cities : supporting comprehension of evolving software systems

Consistent Software Cities : ein Ansatz zur entwicklungsbegleitenden Visualisierung von Softwaresystemen

  • Software visualization is a field of software engineering which aims at providing visual representations of software systems or particular aspects thereof. Numerous approaches for the visualization of software systems have been developed during the last decades. Software cities denote one particular kind of software visualizations that adopts the city metaphor for depicting software systems as virtual cities. Due to their high expressiveness and effectiveness software cities are mainly used for program comprehension tasks, during reverse engineering, and in quality analysis scenarios. Software systems evolve. They are steadily enhanced to provide new product functions, corrected to fix defects, or adapted to changed system environments. Software cities, as proposed today, do not take this evolutionary character of software systems into account. The evolution of software systems, i.e. changes to their internal structure and other characteristics, can easily disrupt the overall software city structure and thus yield very inconsistentSoftware visualization is a field of software engineering which aims at providing visual representations of software systems or particular aspects thereof. Numerous approaches for the visualization of software systems have been developed during the last decades. Software cities denote one particular kind of software visualizations that adopts the city metaphor for depicting software systems as virtual cities. Due to their high expressiveness and effectiveness software cities are mainly used for program comprehension tasks, during reverse engineering, and in quality analysis scenarios. Software systems evolve. They are steadily enhanced to provide new product functions, corrected to fix defects, or adapted to changed system environments. Software cities, as proposed today, do not take this evolutionary character of software systems into account. The evolution of software systems, i.e. changes to their internal structure and other characteristics, can easily disrupt the overall software city structure and thus yield very inconsistent visualizations for evolving software systems. The interpretation of these evolving software cities may be error-prone and time-consuming. In this thesis we propose a new software city approach that is based on the observation that real cities often reveal their evolution insofar as they contain e.g. historic centers or satellite cities. Analogous patterns, however, cannot be found in software cities which is an astonishing divergence. We claim that by preserving historical structures and carefully expanding software cities during software evolution, i.e. by spatializing software evolution, we obtain highly expressive, effective, and consistent software cities which support a broader range of application scenarios than the current state of the field. The main contribution of this thesis is a new layout approach for software cities, which explicitly takes evolution into account. Its effects are twofold: First, evolution becomes directly visible in the software city structure in the form of specific geographic patterns that each depicts particular evolutionary phenomena. The resulting increased expressiveness allows for supporting new application scenarios which are evaluated for several example systems. Second, software evolution does no longer disrupt the overall software city structure. Instead, the software cities evolve smoothly during system evolution, which allows for using them during ongoing system development and maintenance. The high consistency of this approach is confirmed in an empirical evaluation.show moreshow less
  • In den vergangenen Jahren wurden zahlreiche, teils sehr unterschiedliche Ansätze für die Visualisierung von Softwaresystemen vorgestellt. Softwarestädte sind ein spezieller Visualisierungsansatz, in dem Strukturen und Eigenschaften von Softwaresystemen in Form virtueller Städte dargestellt werden können. Aufgrund ihrer hohen Ausdruckskraft und Effektivität werden Softwarestädte hauptsächlich zur Programmanalyse, insbesondere während Reverse-Engineering Aktivitäten und in der Softwarequalitätsanalyse eingesetzt. Ein wesentliches Problem bisheriger Ansätze liegt in der Instabilität von Softwarestädten gegenüber Softwareänderungen. Selbst kleinste Änderungen an Softwaresystemen können schnell zu gravierenden strukturellen Änderungen der sie repräsentierenden Softwarestädte führen. Die dabei entstehenden Inkonsistenzen der Visualisierungen verschiedener Versionsstände erschweren die Interpretierbarkeit, insbesondere die Nachverfolgbarkeit von Softwareänderungen, und verstärken somit das Risiko von Fehlinterpretationen. EinIn den vergangenen Jahren wurden zahlreiche, teils sehr unterschiedliche Ansätze für die Visualisierung von Softwaresystemen vorgestellt. Softwarestädte sind ein spezieller Visualisierungsansatz, in dem Strukturen und Eigenschaften von Softwaresystemen in Form virtueller Städte dargestellt werden können. Aufgrund ihrer hohen Ausdruckskraft und Effektivität werden Softwarestädte hauptsächlich zur Programmanalyse, insbesondere während Reverse-Engineering Aktivitäten und in der Softwarequalitätsanalyse eingesetzt. Ein wesentliches Problem bisheriger Ansätze liegt in der Instabilität von Softwarestädten gegenüber Softwareänderungen. Selbst kleinste Änderungen an Softwaresystemen können schnell zu gravierenden strukturellen Änderungen der sie repräsentierenden Softwarestädte führen. Die dabei entstehenden Inkonsistenzen der Visualisierungen verschiedener Versionsstände erschweren die Interpretierbarkeit, insbesondere die Nachverfolgbarkeit von Softwareänderungen, und verstärken somit das Risiko von Fehlinterpretationen. Ein entwicklungsbegleitender Einsatz von Softwarestädten mit dem Ziel der kontinuierlichen Überwachung und frühzeitigen Erkennung von Entwicklungsproblemen wird somit erschwert. Während sich in realen Städten im Verlauf ihrer Entwicklung typische Strukturen, wie z.B. historische Stadtkerne oder Vorstädte, herausbilden, lassen sich analoge Muster in bisherigen Softwarestädten nicht finden. Gerade auch in Softwarestädten lassen sich durch die Erhaltung historischer Strukturen jedoch ausdrucksstarke, effektive und vor allem konsistente Visualisierungen formen. In dieser Arbeit wird daher ein neuer Ansatz für die Visualisierung von Softwaresystemen als Softwarestädte vorgestellt, in dem die Entwicklungshistorie von Softwaresystemen berücksichtigt, die Strukturen in Softwarestädten erhalten und ihr entwicklungsbegleitender Einsatz somit ermöglicht wird. Der Hauptbeitrag der Arbeit ist ein neuer Ansatz für die Visualisierung dynamischer hierarchischer Strukturen. Angewandt auf Softwarestädte hat dieser Ansatz gegenüber bisherigen Ansätzen zwei wesentliche Vorteile: Zum einen wird Evolution direkt sichtbar in Form bekannter städtischer Strukturen, die jeweils ein spezifisches Entwicklungsmuster repräsentieren. Wie im Verlauf der Arbeit gezeigt wird, ermöglicht die sich daraus ergebende erhöhte Ausdruckskraft der Visualisierungen die Unterstützung neuer Analyseszenarien. Zum anderen zerstören Softwareänderungen nicht mehr die grundlegende Struktur der Softwarestädte, wodurch insbesondere ihr entwicklungsbegleitender Einsatz mit dem Ziel der kontinuierlichen Projektüberwachung ermöglicht wird.show moreshow less

Download full text files

Export metadata

Additional Services

Share in Twitter Search Google Scholar
Metadaten
Author: Steinbrückner, Frank
URN:urn:nbn:de:kobv:co1-opus-28078
Referee / Advisor:Prof. Dr. Lewerentz, Claus
Document Type:Doctoral Thesis
Language:English
Year of Completion:2013
Date of final exam:2012/11/27
Release Date:2013/06/04
Tag:Softwarestädte; Softwarevisualisierung
Software cities; Software visualization
GND Keyword:Informationstechnik; Rechnernetz; Stadtentwicklung; Virtuelle Realität
Institutes:Fakultät 1 MINT - Mathematik, Informatik, Physik, Elektro- und Informationstechnik / FG Praktische Informatik / Softwaresystemtechnik
Institution name at the time of publication:Fakultät für Mathematik, Naturwissenschaften und Informatik (eBTU) / LS Praktische Informatik / Software-Systemtechnik