— As new versions of software are developed bugs inevitably arise either due to regression or new functionality. Challenges arise in discovering, managing, and testing the impact of changes on software. These challenges are magnified in software systems that evolve, because the new functionality is piece-wise introduced into a live program with prior state produced by the prior component versions. If new functionality introduced into a live system induces bugs, it can be extremely difficult to analyze at run-time exactly which differences led to the incorrect behavior. In order to help programmers plan for evolution, understand the impact of specific evolutionary steps, and to diagnose evolution gone wrong, herein we propose combining the benefits of Aspect-Oriented Programming and reflection with impact analysis techniques from the OO and software engineering disciplines. We contribute a tool that assists with the deployment of new code to evolving software that gives insight a...
Kevin J. Hoffman, Murali Krishna Ramanathan, Patri