
GENAWEAVE: A GENERIC ASPECT WEAVER FRAMEWORK BASED ON MODEL-DRIVEN PROGRAM TRANSFORMATION by SUMAN ROYCHOUDHURY JEFF GRAY, COMMITTEE CHAIR PURUSHOTHAM BANGALORE BARRETT BRYANT MARJAN MERNIK ANTHONY SKJELLUM RANDY SMITH A DISSERTATION Submitted to the graduate faculty of The University of Alabama at Birmingham, in partial fulfillment of the requirements for the degree of Doctor of Philosophy BIRMINGHAM, ALABAMA 2008 Copyright by Suman Roychoudhury 2008 GENAWEAVE: A GENERIC ASPECT WEAVER FRAMEWORK BASED ON MODEL-DRIVEN PROGRAM TRANSFORMATION SUMAN ROYCHOUDHURY COMPUTER AND INFORMATION SCIENCES 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 iii 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. iv DEDICATION This work is dedicated to my beloved dad − I miss you in every moment of my life and I wish you were here to see my dreams come true. My mom − Without your blessings and unconditional love, I would have never reached my goal. My wife, Mohua – You supported me in every little thing that came my way and sacrificed a part of your life for the sake of mine. I hope I can make your dreams come true through mine. My brother and sister-in-law − I was never short of encouragement and advice whenever I needed some, thank you for being there always. v ACKNOWLEDGEMENTS Foremost, I would like to thank my advisor, Dr. Jeff Gray, for providing me with an opportunity to complete my Ph.D. thesis at the University of Alabama at Birmingham. I especially want to thank him for his continuous support and able guidance that made this work possible. Dr. Gray has been actively interested in my work and has always been available to advise me. I am very grateful for his patience, motivation, enthusiasm, and immense knowledge in the field of Computer Science, in particular, Software Engineering and Aspect-Oriented Programming that, taken together, make him a great advisor. I would like to thank Dr. Anthony Skjellum and Dr. Purushotham Bangalore for providing me with an opportunity to collaborate and conduct research in the field of high- performance computing. Throughout the several research meetings we held together, I gained immense knowledge that contributed to my own research, especially how advanced software engineering principles could be applied to applications belonging to high-performance computing. I am indebted to their valuable insights and thoughtful advice during the course of my research. I would like to thank Dr. Barrett Bryant for his course on Compiler Design that helped me to understand the various technologies that I used in my research. I should also mention that Dr. Bryant and Dr. Skjellum have often performed the role as my co- advisors and I would regularly seek their kind advice to fulfill my research and career goals. vi I would like to extend my appreciation to Dr. Marjan Mernik and Dr. Randy Smith for accepting my invitation to serve on my thesis committee and thereby providing me with valuable feedback to improve my research work. I must sincerely thank Dr. Frédéric Jouault for his time and effort in assisting me to overcome some of the difficult challenges that I was facing during the later stages of my research. To Dr. Ira Baxter, I greatly appreciate your guidance on DMS and thank you for the speedy response to all of my intricate questions that you answered with minute detail and care. I am also thankful to all the faculty members of the Computer and Information Sciences Department at UAB, for the various courses they offered, which helped me to broaden my knowledge and decide upon my research topic. I would like to thank Rosanne Brill, Jim Sahaj, Sudeep Sabnis, Nguyen Long, David Barron, Ken Lidster, Roger Andrews and all my fellow colleagues at Synergex who provided me with valuable internship experience. The internship was a great learning experience and I gained valuable knowledge working with their core compiler team. To my fellow coworkers at UAB, Robert Tairas, Shairaj Sheikh, Rajesh Sudarsan, Nikhil Garge, Premkumar Somasundaram, Jing Zhang, Dr. Faizan Javed, Dr. Hui Wu, Dr. Yuehua Lin, Dr. Shih-hsi Liu, Dr. Carl Wu, Dr. Francisco Hernandez and Ritu Arora, I thoroughly enjoyed working with you all and will carry the wonderful memories of the time we spent together for the rest of my life. Finally, this dissertation research would not have been completed without the caring and able support from the Computer and Information Sciences Department, vii especially Dr. John Johnstone, Janet Tatum, Kathy Baier and Fran Fabrizio, I am grateful for your care and help. viii TABLE OF CONTENTS Page ABSTRACT ....................................................................................................................... iii DEDICATION .....................................................................................................................v ACKNOWLEDGEMENTS ............................................................................................... vi LIST OF FIGURES ......................................................................................................... xiii LIST OF ABBREVIATIONS ......................................................................................... xvii CHAPTER 1 INTRODUCTION ....................................................................................................1 1.1 Tools and Techniques to Support Modularization of Legacy Software .........3 1.2 Challenges of Language-Independent Legacy Modernization .......................7 1.3 Research Objectives and Contributions ........................................................10 1.4 Overview of the Research .............................................................................13 2 BACKGROUND ...................................................................................................17 2.1 Aspect-Oriented Programming .....................................................................17 2.1.1 Separation of Concerns ......................................................................18 2.1.2 Crosscutting Concerns and the Join Point Model ..............................20 2.2 Aspect Weaving ............................................................................................22 2.2.1 Current State-of-the-Art in Legacy AOP Modernization ..................23 2.2.2 Comparative Discussion of AOP Tools to Support Legacy Languages .............................................................................25 2.3 Program Transformation - Design Maintenance System ..............................28 2.3.1 DMS Key Features and Support for Abstract Syntax Trees ..............29 2.3.2 Specifying Rewrites
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages249 Page
-
File Size-