عنوان مقاله [English]
نویسندگان [English]چکیده [English]
Aspect-oriented engineering has been introduced as a new development approach based on modularization in order to increase the maintainability and reusability of software. Aspect-oriented software engineering uses the concept of aspect to modularize crosscutting concerns. Today, this approach is considered in the both research and industrial environments. Different methods has been proposed for implementing the various phases of software development based on aspect orientation. Each of these methods accompanied with privileges, restrictions, and a variety of functionality. With respect to the diversity of these methods, a comprehensive, complete, and systematic literature review needs to be proposed. The purpose of this paper is to review the aspect-oriented development methods and determine their comparative differences in order to obtain the major challenges in this field. To do so, these methods are classified based on the software development phases. The strengths and limitations of them are also described. The results make it possible to select the most appropriate method in each phase of software development for engineers and researchers in this field.