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.
Metadaten
Author:Ala Abuthawabeh
URN:urn:nbn:de:hbz:386-kluedo-42917
Advisor:Hans Hagen
Document Type:Doctoral Thesis
Language of publication:English
Date of Publication (online):2016/01/27
Year of first Publication:2016
Publishing Institution:Technische Universität Kaiserslautern
Granting Institution:Technische Universität Kaiserslautern
Acceptance Date of the Thesis:2016/01/22
Date of the Publication (Server):2016/01/28
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
Page Number:X, 281
Faculties / Organisational entities:Kaiserslautern - Fachbereich Informatik
CCS-Classification (computer science):D. Software
DDC-Cassification:0 Allgemeines, Informatik, Informationswissenschaft / 004 Informatik
MSC-Classification (mathematics):00-XX GENERAL
Licence (German):Standard gemäß KLUEDO-Leitlinien vom 30.07.2015