Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Design pattern implementation in Java and aspectJ
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
CCFinder: a multilinguistic token-based code clone detection system for large scale source code
IEEE Transactions on Software Engineering
Back to the future: a retroactive study of aspect evolution in operating system code
Proceedings of the 2nd international conference on Aspect-oriented software development
Clone Detection Using Abstract Syntax Trees
ICSM '98 Proceedings of the International Conference on Software Maintenance
Test Driven development: A Practical Guide
Test Driven development: A Practical Guide
Composition, reuse and interaction analysis of stateful aspects
Proceedings of the 3rd international conference on Aspect-oriented software development
AspectJ in Action: Practical Aspect-Oriented Programming
AspectJ in Action: Practical Aspect-Oriented Programming
Role-based refactoring of crosscutting concerns
Proceedings of the 4th international conference on Aspect-oriented software development
An approach to aspect refactoring based on crosscutting concern types
MACS '05 Proceedings of the 2005 workshop on Modeling and analysis of concerns in software
A middleware-transparent approach to developing distributed applications: Research Articles
Software—Practice & Experience
On the Use of Clone Detection for Identifying Crosscutting Concern Code
IEEE Transactions on Software Engineering
Refactoring the Aspectizable Interfaces: An Empirical Assessment
IEEE Transactions on Software Engineering
Modular Software Design with Crosscutting Interfaces
IEEE Software
State-based incremental testing of aspect-oriented programs
Proceedings of the 5th international conference on Aspect-oriented software development
Testing aspect-oriented programming Pointcut Descriptors
Proceedings of the 2nd workshop on Testing aspect-oriented programs
Testing During Refactoring: Adding Aspects to Legacy Systems
ISSRE '06 Proceedings of the 17th International Symposium on Software Reliability Engineering
Hi-index | 0.00 |
Aspect-based refactoring, called aspectualization, involves moving program code that implements cross-cutting concerns into aspects. Such refactoring can improve the maintainability of legacy systems. Long compilation and weave times, and the lack of an appropriate testing methodology are two challenges to the aspectualization of large legacy systems. We propose an iterative test driven approach for creating and introducing aspects. The approach uses mock systems that enable aspect developers to quickly experiment with different pointcuts and advice, and reduce the compile and weave times. The approach also uses weave analysis, regression testing, and code coverage analysis to test the aspects. We developed several tools for unit and integration testing. We demonstrate the test driven approach in the context of large industrial C++ systems, and we provide guidelines for mock system creation.