Analyzing Feature Implementation by Visual Exploration of Architecturally-Embedded Call-Graphs Johannes Bohnet Jürgen Döllner University of Potsdam University of Potsdam Hasso-Plattner-Institute Hasso-Plattner-Institute Prof.-Dr.-Helmert-Str. 2-3 Prof.-Dr.-Helmert-Str. 2-3 14482 Potsdam, Germany 14482 Potsdam, Germany
[email protected] [email protected] ABSTRACT 1. INTRODUCTION Maintenance, reengineering, and refactoring of large and complex As stated in [32] “year after year the lion's share of effort goes software systems are commonly based on modifications and into modifying and extending preexisting systems, about which enhancements related to features. Before developers can modify we know very little”. Requests for software changes are often feature functionality they have to locate the relevant code expressed by end users in terms of features, i.e. an observable components and understand the components’ interaction. In this behavior that is triggered by user interaction. Requesting feature paper, we present a prototype tool for analyzing feature changes concerns bug fixes or enhancements of feature functiona- implementation of large C/C++ software systems by visual lity and is a key concept for maintaining, reengineering, and exploration of dynamically extracted call relations between code refactoring large and complex software systems. To implement components. The component interaction can be analyzed on these new requirements, software developers have to translate the various abstraction levels ranging from function interaction up to feature change requests to changes in code components and their interaction of the system with shared libraries of the operating interaction behavior. The term component is used here in a more system.