Refactoring improves software quality by improving the design of existing code through changing its internal structure while preserving its behavior. Improving one quality attribute may impair other quality attributes. A number of refactoring methods were proposed specifically for aspect-oriented systems. However, there are no guidelines to help aspect-oriented software designer decide which refactoring methods to apply to optimize a software system with regard to certain design goals. In this paper, we propose a taxonomy/classification of refactoring methods for aspect-oriented programming based on their measurable effect on software quality attributes using six open-source aspect-oriented software systems. Copyright © 2011 John Wiley & Sons, Ltd.