Visual exploration of function call graphs for feature location in complex software systems

  • Authors:
  • Johannes Bohnet;Jürgen Döllner

  • Affiliations:
  • University of Potsdam, Potsdam, Germany;University of Potsdam, Potsdam, Germany

  • Venue:
  • SoftVis '06 Proceedings of the 2006 ACM symposium on Software visualization
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

Maintenance, reengineering, and refactoring processes of software systems are typically driven and organized in terms of features. Feature change requests need to be translated into changes in source code, which is a highly cost intensive and time consuming task when complex legacy software systems are concerned; their documentation is likely to be outdated and incomplete. In this paper, we propose a prototype tool that supports users in locating and understanding feature implementation in large (1 MLOC) C/C++ systems. A combination of static and dynamic analysis allows extracting of the function call graph during feature execution and interpreting it within the static architecture of the system. An interactive multi-view visualization enables users to explore that graph. An effective 2 1/2D visualization provides various visual cues that facilitate finding those paths in the function call graph that are essential for understanding feature functionality. Additionally to source code aspects, the dynamic metric of function execution times is exploited, which gives significant hints to feature-implementing functions. Furthermore, information on functions is extended by architectural aspects, thereby supporting users in remaining oriented during their analysis and exploration task as they can give priority to selected architectural components and thereby hide insignificant function calls.