Model-driven aspect adaptation to support modular software evolution

2009 
One of the biggest challenges of software evolution is to adapt a software system to the ever-changing requirements from users or operating environments. An ideal goal is to encapsulate these requirements into a high-level abstraction, which can drive large-scale adaptation of the underlying software implementation. Model-Driven Engineering (MDE) is one of the enabling techniques that support this objective, in that it allows the application designers to synthesize various software artifacts from high-level models. The state-of-the-art MDE techniques, however, lack support for advanced processes and constructive methods for software evolution. With respect to large legacy systems written in disparate programming languages, the primary problems of evolution are the difficulty of adapting the legacy source to match the evolving requirements specified in the models and the incapability of developing evolutionary tasks in a modular way. In order to overcome such difficulties, this dissertation introduces a Model-Driven Aspect Adaptation (MDAA) framework that unites the MDE and Aspect-Oriented Software Development (AOSD) approaches to support modular software evolution. AOSD offers an advanced technique that supports invasive adaptation by weaving aspect modules that encapsulate the evolutionary crosscutting changes into the software system. By combining MDE and AOSD, the evolutionary change requirements are specified in the high-level aspect models, which drive the generation of the low-level aspect code used to perform legacy system evolution. This way, the whole software evolution process is performed in a modular manner, which enables the changeability, comprehensibility and independent development of the evolved implementation. Two case studies are provided to demonstrate the applicability and benefit of the approach. One is based on the paradigm of Domain-Specific Modeling (DSM), which leverages a DSM modeling environment, a model transformation engine and a program transformation system to provide evolution support for legacy systems from domain models. Another case study is based on UML activity modeling. An Aspect-Oriented Activity Modeling (AOAM) approach is implemented to facilitate modular evolution for activity models. In addition, the corresponding AspectJ code is generated from the aspect-activity models to enable evolutionary adaptation of the underlying legacy source.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    0
    References
    1
    Citations
    NaN
    KQI
    []