Multi-Edge Graph Visualizations for Fostering Software Comprehension

  • Typically software engineers implement their software according to the design of the software structure. Relations between classes and interfaces such as method-call relations and inheritance relations are essential parts of a software structure. Accordingly, analyzing several types of relations will benefit the static analysis process of the software structure. The tasks of this analysis include but not limited to: understanding of (legacy) software, checking guidelines, improving product lines, finding structure, or re-engineering of existing software. Graphs with multi-type edges are possible representation for these relations considering them as edges, while nodes represent classes and interfaces of software. Then, this multiple type edges graph can be mapped to visualizations. However, the visualizations should deal with the multiplicity of relations types and scalability, and they should enable the software engineers to recognize visual patterns at the same time. To advance the usage of visualizations for analyzing the static structure of software systems, I tracked difierent development phases of the interactive multi-matrix visualization (IMMV) showing an extended user study at the end. Visual structures were determined and classified systematically using IMMV compared to PNLV in the extended user study as four categories: High degree, Within-package edges, Cross-package edges, No edges. In addition to these structures that were found in these handy tools, other structures that look interesting for software engineers such as cycles and hierarchical structures need additional visualizations to display them and to investigate them. Therefore, an extended approach for graph layout was presented that improves the quality of the decomposition and the drawing of directed graphs according to their topology based on rigorous definitions. The extension involves describing and analyzing the algorithms for decomposition and drawing in detail giving polynomial time complexity and space complexity. Finally, I handled visualizing graphs with multi-type edges using small-multiples, where each tile is dedicated to one edge-type utilizing the topological graph layout to highlight non-trivial cycles, trees, and DAGs for showing and analyzing the static structure of software. Finally, I applied this approach to four software systems to show its usefulness.
Verfasserangaben:Ala Abuthawabeh
URN (Permalink):urn:nbn:de:hbz:386-kluedo-42917
Betreuer:Hans Hagen
Sprache der Veröffentlichung:Englisch
Veröffentlichungsdatum (online):27.01.2016
Jahr der Veröffentlichung:2016
Veröffentlichende Institution:Technische Universität Kaiserslautern
Titel verleihende Institution:Technische Universität Kaiserslautern
Datum der Annahme der Abschlussarbeit:22.01.2016
Datum der Publikation (Server):28.01.2016
Freies Schlagwort / Tag:Multi-Edge Graph; Software engineering; directed graphs; graph drawing algorithm; graph layout; matrix visualization; multitype code coupling; small-multiples node-link visualization; software comprehension; software engineering task; static software structure; visual structure
Seitenzahl:X, 281
Fachbereiche / Organisatorische Einheiten:Fachbereich Informatik
CCS-Klassifikation (Informatik):D. Software
DDC-Sachgruppen:0 Allgemeines, Informatik, Informationswissenschaft / 004 Informatik
MSC-Klassifikation (Mathematik):00-XX GENERAL
Lizenz (Deutsch):Standard gemäß KLUEDO-Leitlinien vom 30.07.2015

$Rev: 13581 $