Genaweave: a generic aspect weaver framework based on model-driven program transformation

  • Authors:
  • Jeff Gray;Suman Roychoudhury

  • Affiliations:
  • The University of Alabama at Birmingham;The University of Alabama at Birmingham

  • Venue:
  • Genaweave: a generic aspect weaver framework based on model-driven program transformation
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Legacy software affects critical functions of our daily lives (e.g., general commercial transactions, scientific applications and military defense systems), and represents a significant investment by government, scientific and corporate institutions. As a consequence of the longevity of such systems, existing legacy software is subject to decay over a period of time, making it increasingly difficult to address changing stakeholder requirements. Modern research approaches for software engineering and programming language design, such as aspect-oriented software development (AOSD), have been investigated as effective techniques for improving modularization of software. However, a general trend in research for supporting aspects has focused primarily on Java as the target programming language, neglecting the multiple billions of lines of existing code written in other languages. Rather than bringing the legacy code to existing Java-based weavers, a viable alternative is to take Aspect-Oriented Programming (AOP) principles to the legacy languages and tool environments. Given the large number of programming languages currently in use, a solution that mitigates the effort needed to create each new aspect weaver is more desirable than an approach that manually recreates a weaver from scratch for each legacy language. The research presented in this dissertation utilizes Program Transformation Engines (PTEs) to construct aspect weavers for legacy languages. A core focus of the research is a generic platform that permits reusability of software artifacts among aspect weavers constructed for various General-Purpose Languages (GPLs). In addition, the research described in this dissertation aims to eliminate the accidental complexities that are typically associated with using PTEs. In order to fulfill these two objectives, the research utilizes a model-driven front-end that is layered on top of the program transformation based back-end. Specifically, the research makes a contribution by combining Model-Driven Engineering (MDE) with PTE to construct aspect weavers for GPLs through models and program transformations. The approach described in the dissertation uses models to capture the essence of various AOP language constructs at a higher-level of abstraction. These models are then mapped to concrete weavers for GPLs through a combination of higher-order model transformation and program transformation rules. A generic extension to the framework further supports reusability of artifacts among weavers during the construction process. In addition, the framework allows experimentation with new AOP constructs (e.g., loops) and helps to evolve commercial and scientific software (e.g., Blitz++, HPL) maintained in legacy languages like Object Pascal, C and FORTRAN. The research presented in this dissertation outlines several challenges that were identified in providing a generic platform to create aspect weavers and demonstrates how each of those challenges was mitigated during the course of this research.