|
ABSTRACT
In this paper, we present a collection of aspect-oriented refactorings covering both the extraction of aspects from object-oriented legacy code and the subsequent tidying up of the resulting aspects. In some cases, this tidying up entails the replacement of the original implementation with a different, centralized design, made possible by modularization. The collection of refactorings includes the extraction of common code in various aspects into abstract superaspects. We review the traditional object-oriented code smells in the light of aspect-orientation and propose some new smells for the detection of crosscutting concerns. In addition, we propose a new code smell that is specific to aspects.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
 |
2
|
|
 |
3
|
|
| |
4
|
Cole, L., Borba, P., Using Programming Laws to Modularize Concurrency in a Replicated Database Application, 1st Brasilian Workshop on Aspect-Oriented Software Development - WBSOA'04 - SBES'04, Brazil, October 2004.
|
 |
5
|
|
| |
6
|
|
| |
7
|
Deursen, A., Marin, M., Moonen, L., Aspect Mining and Refactoring, workshop on REFactoring: Achievements, Challenges, Effects (REFACE03), Waterloo, Canada, November 2003.
|
 |
8
|
|
| |
9
|
Eckel, B., Thinking in Patterns, revision 0.9. book in progress, May 20, 2003. Available at http://64.78.49.204/IPatterns-0.9.zip
|
| |
10
|
Filman, R. E., Friedman, D. P., Aspect-Oriented Programming is Quantification and Obliviousness, workshop on Advanced Separation of Concerns, OOPSLA 2000, Minneapolis, October 2000.
|
| |
11
|
Fowler, M. (with contributions by K. Beck, W. Opdyke and D. Roberts), Refactoring - Improving the Design of Existing Code, Addison Wesley 2000.
|
| |
12
|
|
 |
13
|
Jan Hannemann , Gregor Kiczales, Design pattern implementation in Java and aspectJ, Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, November 04-08, 2002, Seattle, Washington, USA
|
| |
14
|
Hanenberg, S., Oberschulte, C., Unland, R., Refactoring of Aspect-Oriented Software, Net.ObjectDays 2003, Erfurt, Germany, September 2003.
|
| |
15
|
Iwamoto, M., Zhao, J., Refactoring Aspect-Oriented Programs, 4th AOSD Modeling With UML Workshop, UML'2003, San Francisco, USA, October 2003.
|
| |
16
|
|
| |
17
|
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J., Irwin, J., Aspect-Oriented Programming, ECOOP'97, Finland, June 1997.
|
| |
18
|
|
| |
19
|
|
| |
20
|
Orleans, D., Separating behavioral concerns with predicate dispatch, or, if statement considered harmful, workshop on Advanced Separation of Concerns in Object-Oriented Systems at OOPSLA '01, Tampa Bay, USA, October 2001.
|
| |
21
|
Monteiro, M. P., Catalogue of Refactorings for AspectJ, Technical Report UM-DI-GECSD-200402, Universidade do Minho, December 2004. Available at www.di.uminho.pt/~jmf/PUBLI/papers/2004-TR-02.pdf
|
| |
22
|
Monteiro, M. P., Refactoring a Java Code Base to AspectJ - An Ilustrative Example, Technical Report UM-DI-GECSD-200403, Universidade do Minho, December 2004. Available at www.di.uminho.pt/~jmf/PUBLI/papers/2004-TR-03.pdf
|
| |
23
|
Monteiro, M. P., Fernandes, J. M., Object-to-Aspect Refactorings for Feature Extraction, industry paper presented at AOSD'2004, UK, Lancaster, March 2004. Available at http://aosd.net/2004/archive/Monteiro.pdf
|
| |
24
|
|
 |
25
|
|
| |
26
|
Störzer, M., Koppen, C., PCDiff: Attacking the Fragile Pointcut Problem, Interactive Workshop on Aspects in Software (EIWAS) 2004, Berlin, Germany, September 2004.
|
 |
27
|
Peri Tarr , Harold Ossher , William Harrison , Stanley M. Sutton, Jr., N degrees of separation: multi-dimensional separation of concerns, Proceedings of the 21st international conference on Software engineering, p.107-119, May 16-22, 1999, Los Angeles, California, United States
[doi> 10.1145/302405.302457]
|
| |
28
|
|
| |
29
|
Tourwé, T., Brichau, J., Gybels, K., On the Existence of the AOSD-Evolution Paradox, AOSD 2003 Workshop on Software-engineering Properties of Languages for Aspect Technologies, Boston, USA, 2003.
|
| |
30
|
|
| |
31
|
Wloka, J., Refactoring in the Presence of Aspects, ECOOP2003 PhD workshop, July 2003.
|
CITED BY 16
|
|
|
|
|
Uirá Kulesza , Cláudio Sant'Anna , Carlos Lucena, Refactoring the JUnit framework using aspect-oriented programming, Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 16-20, 2005, San Diego, CA, USA
|
|
|
|
|
|
|
|
|
Fernando Castor Filho , Nelio Cacho , Eduardo Figueiredo , Raquel Maranhão , Alessandro Garcia , Cecília Mary F. Rubira, Exceptions and aspects: the devil is in the details, Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering, November 05-11, 2006, Portland, Oregon, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Santiago Vidal , Esteban S. Abait , Claudia Marcos , Sandra Casas , J. Andrés Díaz Pace, Aspect mining meets rule-based refactoring, Proceedings of the 1st workshop on Linking aspect technology and evolution, p.23-27, March 03-03, 2009, Charlottesville, Virginia, USA
|
|
|
|
|
|
|
|
|
Eduardo Piveta , Marcelo Pimenta , João Araújo , Ana Moreira , Pedro Guerreiro , R. Tom Price, Representing refactoring opportunities, Proceedings of the 2009 ACM symposium on Applied Computing, March 08-12, 2009, Honolulu, Hawaii
|
|
|
|
|