1 research outputs found

    Aspect-based introspection and change analysis for evolving programs

    No full text
    Abstract β€” 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 as to precisely the behavioral changes between the new code and the code it is replacing within the running system. This tool is implemented using pure aspect-oriented and reflection techniques, and we discuss how to combine this tool with a load-time aspect weaver to allow precise determination of the cause of bugs introduced in live, evolving systems. We conclude by considering the challenges of implementing and deploying such a tool and outline our plans for future research and evaluation. I
    corecore