This paper reports on the challenges of using aspect oriented programming (AOP) to aid in re-engineering a legacy C application. More specifically, we describe how AOP helps in the important reverse engineering step which typically precedes a re-engineering effort. We first present a comparison of available AOP tools for legacy C code bases and then argument our choice of Aspicere, our own AOP implementation for C. Then, we report on Aspicere's application in reverse engineering a legacy industrial software system and we show how we apply a dynamic analysis to regain insight into the system. AOP is used for instrumenting the system and for gathering the data. This approach works and is conceptually very clean, but comes with a major quid pro quo: integration of AOP tools with the build system proves an important issue. This leads to the question of how to reconcile the notion of modular reasoning within traditional build systems with a programming paradigm which breaks this notion.
Original languageEnglish
Pages (from-to)668-684
Number of pages17
JournalJournal of Systems and Software
Issue number4
Publication statusPublished - Apr 2009

    Research areas

  • dynamic analysis, build system, aspicere, C, tracing aspect

ID: 1705130