Javascript must be enabled for the correct page display

Extraction and Visual Exploration of Call Graphs for Large Software Systems

Hoogendorp, H.J. (2010) Extraction and Visual Exploration of Call Graphs for Large Software Systems. Master's Thesis / Essay, Computing Science.

hoogendorp10.pdf - Published Version

Download (9MB) | Preview


Oftentimes, developers need to understand a software system they are unfamiliar with, for instance, to perform maintainance or refactoring work. Since large software systems are hard to understand, having proper tooling can significantly reduce the time a developer needs to get a firm understanding of the system. Understanding the dependencies among the different components of a software system is one of the most important and one of the most challenging tasks in software (re)engineering. Function calls from one function to another are important in this respect, because they represent direct, functional dependencies between different components of the system. Having a correct and complete call graph of a software system can be a powerful aid, since it makes these call relations explicit and, to some extend, models the structure and behaviour of the system. There is a lack of robust, scalable and effective support for call graph computation and visual analysis for the C++ programming language. The complex nature of C++ and the relatively large size of C++ industrial code bases makes static analysis difficult and the fast extraction and visualization of their corresponding call graphs challenging. In particular, C++ allows a complex range of semantics for function calls (operators, virtual functions, implicit calls and explicit calls). All these have to be extracted and suitably presented to the developer for optimal understanding. A design and implementation is given of a new system that automatically extracts call graphs from large C++ code bases and the problems that one faces when building such a system are discussed. Also, a comparison is made between three existing ways to visualize the resulting call graphs and the application of the toolchain using the most suitable of these visualization methods is presented to the reader.

Item Type: Thesis (Master's Thesis / Essay)
Degree programme: Computing Science
Thesis type: Master's Thesis / Essay
Language: English
Date Deposited: 15 Feb 2018 07:31
Last Modified: 15 Feb 2018 07:31

Actions (login required)

View Item View Item