Visually exploring control flow graphs to support legacy software migration
Abstract
Migrating legacy systems to new platforms represents a frequent challenge to leverage earlier massive capital investments. Prerequisite for performing migration include profound understanding of the system and its components - a cost intensive task if systems and their components are monolithic and highly coupled, and up-to-date documentation and system models do not exist, like in most cases. We propose a software exploration tool that supports migration of legacy systems. It facilitates identification of high-level code components and their interaction in complex legacy systems written in C. Developers can analyze (a) how the system is collaborating with environmental systems and (b) how the core business logic is intertwined with platform-specific code. The tool's key features are (a) extracting control flow graphs and interpreting them within the system's static architecture and (b) providing a visualization front-end for efficient exploration of the analysis results. We propose a software exploration tool that facilitates the migration process of legacy systems and reengineering tasks, supporting developers during their code analysis tasks. The tool reveals how the legacy system is linked to its environment by showing how the control flow enters and leaves the system during runtime. Additionally, the tool reveals how internal components of the legacy system interact. This way, developers are supported in identifying the boundary between business logic and technical, platformgrass general gui lib paint raster tools vector mapset transform fonts gis gmath vector colors mapcalc neighbors timer rtree transform mapcalc function function name: $open_map()$ name: $open_map()$
Full Text: PDF