• DocumentCode
    781817
  • Title

    Tool-Supported Refactoring of Existing Object-Oriented Code into Aspects

  • Author

    Binkley, David ; Ceccato, Mariano ; Harman, Mark ; Ricca, Filippo ; Tonella, Paolo

  • Author_Institution
    Loyola Coll., Baltimore, MD
  • Volume
    32
  • Issue
    9
  • fYear
    2006
  • Firstpage
    698
  • Lastpage
    717
  • Abstract
    Aspect-oriented programming (AOP) provides mechanisms for the separation of crosscutting concerns - functionalities scattered through the system and tangled with the base code. Existing systems are a natural testbed for the AOP approach since they often contain several crosscutting concerns which could not be modularized using traditional programming constructs. This paper presents an automated approach to the problem of migrating systems developed according to the object-oriented programming (OOP) paradigm into aspect-oriented programming (AOP). A simple set of six refactorings has been defined to transform OOP to AOP and has been implemented in the AOP-migrator tool, an Eclipse plug-in. A set of enabling transformations from OOP to OOP complement the initial set of refactorings. The paper presents the results of four case studies, which use the approach to migrate selected crosscutting concerns from medium-sized Java programs (in the range of 10K to 40K lines of code) into equivalent programs in AspectJ. The case study results show the feasibility of the migration and indicate the importance of the enabling transformations as a preprocessing step
  • Keywords
    Java; object-oriented programming; program compilers; software quality; software tools; AspectJ; Java program; aspect-oriented programming; crosscutting concern; migrating system; object-oriented programming; program transformation; tool-supported refactoring; Automatic control; Automatic programming; Contracts; Costs; Humans; Java; Object oriented programming; Scattering; Software engineering; System testing; Aspect-oriented software development; program transformation.; refactoring;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/TSE.2006.95
  • Filename
    1707668