{"title":"Refactoring Aspects into Java Code","authors":"M. Kleyman, S. Tyszberowicz, A. Yehudai","doi":"10.1109/SwSTE.2007.7","DOIUrl":null,"url":null,"abstract":"One of the principles of the agile development methodology is to \"welcome changing requirements even late in development\". Refactoring is a major technique used to cope with changes. It enables to reorganize code while preserving the external behavior. Several refactorings can be performed automatically. Aspect oriented programming (AOP) is a powerful technology that greatly improves programmer's ability to quickly introduce changes to a software system. AOP enables easily modifying behavior of numerous locations in the system code or adding new behavior. AOP is perceived by some people not to be mature enough; hence they avoid using it in production software. We have developed ACME, a prototype tool that implements a refactoring process for aspects. ACME enables a developer to convert AspectJ code to pure Java code according to conversion patterns. The available patterns are creating a singleton class from an aspect and merging aspects into existing classes. The tool creates modular and readable object-oriented code. This paper presents ACME functionality using example transformations and discusses the tool's applicability and decisions made during its design.","PeriodicalId":264571,"journal":{"name":"IEEE International Conference on Software-Science, Technology & Engineering (SwSTE'07)","volume":"55 2","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2007-11-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"IEEE International Conference on Software-Science, Technology & Engineering (SwSTE'07)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/SwSTE.2007.7","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1
Abstract
One of the principles of the agile development methodology is to "welcome changing requirements even late in development". Refactoring is a major technique used to cope with changes. It enables to reorganize code while preserving the external behavior. Several refactorings can be performed automatically. Aspect oriented programming (AOP) is a powerful technology that greatly improves programmer's ability to quickly introduce changes to a software system. AOP enables easily modifying behavior of numerous locations in the system code or adding new behavior. AOP is perceived by some people not to be mature enough; hence they avoid using it in production software. We have developed ACME, a prototype tool that implements a refactoring process for aspects. ACME enables a developer to convert AspectJ code to pure Java code according to conversion patterns. The available patterns are creating a singleton class from an aspect and merging aspects into existing classes. The tool creates modular and readable object-oriented code. This paper presents ACME functionality using example transformations and discusses the tool's applicability and decisions made during its design.