- Research Article
1
- 10.15587/1729-4061.2016.63717
Integration of aspect-oriented approach means in object-oriented programming language
- Apr 22, 2016
- Eastern-European Journal of Enterprise Technologies
- Valentina Medvedeva + 1 more +1
The problem of complexity of developing and supporting the software cross-cutting concern and its solution using the aspect-oriented approach is examined. The complexity of aspect-oriented programming application in object-oriented programming languages is described. The problem of dependency of the declaration syntax of aspects and the method of their integration is investigated. The architecture that will provide the independence of the syntax of declaration and introduction of aspects in object-oriented programs is proposed. For separation, an urban design pattern that unites declaration of the aspect and its integration method is used. The system displays the classical entities of AOP in the object structure, which facilitates syntax mastering. Three methods for declaring aspects are developed, namely declaration using inheritance from a base class, template class generalization and flexible aspect creation at run time. For integration at compile time, a special integration module and the Roslyn compiler modification, which ensures implementation of the aspect configuration system and introduces advice invocation points in a code are developed. For integration at run time without using the dependency injection container, helper methods for creating proxy classes are designed. Also, modules for popular dependency injection containers, which allow integration by means of these containers are developed. Testing of the developed system, which showed a significant reduction in the size of a source code is carried out. The most pronounced reduction was in large enterprise-level systems. When using introduction at compile time, performance drop of programs is not observed. When using integration at run time, performance losses do not exceed those when using a similar proxy class.
Read more