Aspect Oriented Programming: Trends and Applications
The competitive advantage of aspect oriented programming (AOP) is that it improves the maintainability and understandability of software systems by modularizing crosscutting concerns. However, some concerns, such as logging or debugging, may be overlooked and should be entangled and distributed across the code base. AOP is a software development paradigm that enables developers to capture crosscutting concerns in split-aspect modes. Additionally, it is a novel notion that has the potential to improve the quality of software programs by removing the complexity involved with the production of code tangles via the usage of separation of concerns. As a result, it provides more modularity. Throughout its early development, some believed that AOP was easier to build and maintain than other implementations since it was based on an existing one. The statements are predicated on the premise that local improvements are easier to implement. Additionally, without appropriate visualization tools for both static and dynamic structures, cross-cutting challenges may be difficult for developers and researchers to appreciate. In recent years, AspectJ has begun to enable the depiction of crosscutting concerns via the release of IDE plugins. This article explains aspect oriented programming and how it may be used to improve the readability and maintainability of software projects. Additionally, it will evaluate the challenges it presents to application developers and academics.
Avgustinov, P., Hajiyev, E., Ongkingco, N., de Moor, O., Sereni, D., Tibble, J., and Verbaere, M. (2007). Semantics of static pointcuts in AspectJ. ACM SIGPLAN Notices, 42(1), 11–23.
Bryar A.Hassan and T. A. R. (2020). Formal Context Reduction in Deriving Concept Hierarchies from Corpora Using Adaptive Evolutionary Clustering Algorithm. Complex & Intelligent Systems.
Beneken, G., Marschall, F., and Rausch, A. (2005). A Model Framework Weaving Approach, In: Proceedings of the First Workshop on Models and Aspects-Handling Crosscutting Concerns in MDSD at the 19th European Conference on Object-Oriented Programming (ECOOP 2005). 19th European Conference on Object-Oriented Programming (ECOOP 2005).
Chapman, M. P., Colyer, A. M., and Dalziel, B. J. (2013). Monitoring dynamic aspect oriented applications at execution time. Google Patents.
Gulia, P., Khari, M., and Patel, S. (2019). Metrics analysis in object oriented and aspect oriented programming. Recent Patents on Engineering, 13(2), 117–122.
Hentunen, D. (2015). Detecting a return-oriented programming exploit. Google Patents.
Hassan, B. A. (2020). CSCF: a chaotic sine cosine firefly algorithm for practical application problems. Neural Computing and Applications, 120.
Hassan, B. A. (2021). Analysis for the overwhelming success of the web compared to microcosm and hyper-G systems. ArXiv Preprint ArXiv:2105.08057.
Hassan, B. A., Ahmed, A. M., Saeed, S. A., and Saeed, A. A. (2016). Evaluating e-Government Services in Kurdistan Institution for Strategic Studies and Scientific Research Using the EGOVSAT Model. Kurdistan Journal of Applied Research, 1(2), 1–7.
Hassan, B. A. and Qader, S. M. (2021). A New Framework to Adopt Multidimensional Databases for Organizational Information System Strategies. ArXiv Preprint ArXiv:2105.08131.
Hassan, B. A. and Rashid, T. A. (2019). Operational framework for recent advances in backtracking search optimisation algorithm: A systematic review and performance evaluation. Applied Mathematics and Computation, 124919.
Hassan, B. A. and Rashid, T. A. (2021a). A multidisciplinary ensemble algorithm for clustering heterogeneous datasets. Neural Computing and Applications. URL: https://doi.org/10.1007/s00521-020-05649-1
Hassan, B. A. and Rashid, T. A. (2021b). Artificial Intelligence Algorithms for Natural Language Processing and the Semantic Web Ontology Learning. ArXiv Preprint ArXiv:2108.13772.
Hassan, B. A., Rashid, T. A., and Hamarashid, H. K. (2021). A Novel Cluster Detection of COVID-19 Patients and Medical Disease Conditions Using Improved Evolutionary Clustering Algorithm Star. Computers in Biology and Medicine, 104866.
Hassan, B. A., Rashid, T. A., and Mirjalili, S. (2021). Performance evaluation results of evolutionary clustering algorithm star for clustering heterogeneous datasets. Data in Brief, 107044.
Hassan, B. and Dasmahapatra, S. (n.d.). Towards Semantic Web: Challenges and Needs.
Ju, K. and Bo, J. (2007). Applying IoC and AOP to the Architecture of Reflective Middleware. 2007 IFIP International Conference on Network and Parallel Computing Workshops (NPC 2007), 903–908.
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., and Griswold, W. (2001). Getting started with AspectJ. Communications of the ACM, 44(10), 59–65.
Lau, R. Y. K., Zhang, W., and Xu, W. (2018). Parallel aspect‐oriented sentiment analysis for sales forecasting with big data. Production and Operations Management, 27(10), 1775–1794.
Lemos, O. A. L., Ferrari, F. C., Masiero, P. C., and Lopes, C. V. (2006). Testing aspect-oriented programming pointcut descriptors. Proceedings of the 2nd Workshop on Testing Aspect-Oriented Programs, 33–38.
Mcheick, H. and Godmaire, S. (2018). Designing and implementing different use cases of aspect-oriented programming with AspectJ for developing mobile applications. Proceedings of the 7th International Conference on Software Engineering and New Technologies, 1–8.
Maaroof, B. B., Rashid, T. A., Abdulla, J. M., Hassan, B. A., Alsadoon, A., Mohamadi, M., … Mirjalili, S. (2022). Current Studies and Applications of Shuffled Frog Leaping Algorithm: A Review. Archives of Computational Methods in Engineering, 1–16.
Nguyen, T. (2018). Java Spring Framework in developing the Knowledge Article Management application: A brief guide to use Spring Framework.
Panwar, P., Agarwal, D., Vyas, P., Jadhav, P. A., and Joshi, S. D. (2019). Evolution of Testing with Respect to the Programming Paradigms. International Journal of Mechanical Engineering and Technology, 10(3).
Rademacher, F., Sachweh, S., and Zündorf, A. (2019). Aspect-oriented modeling of technology heterogeneity in microservice architecture. 2019 IEEE International Conference on Software Architecture (ICSA), 21–30.
Raheman, S. R., Maringanti, H. B., and Rath, A. K. (2018). Aspect oriented programs: Issues and perspective. Journal of Electrical Systems and Information Technology, 5(3), 562–575.
Rajan, H. and Sullivan, K. J. (2005). Classpects: unifying aspect-and object-oriented language design. Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005., 59–68.
Saeed, M. H. R., Hassan, B. A., and Qader, S. M. (2017). An Optimized Framework to Adopt Computer Laboratory Administrations for Operating System and Application Installations. Kurdistan Journal of Applied Research, 2(3), 92–97.
Vidal, C., Benavides Cuevas, D. F., Leger, P., Galindo Duarte, J. Á., and Fukuda, H. (2015). Mixing of join point interfaces and feature-oriented programming for modular software product line. BICT 2015: 9th EAI International Conference on Bio-Inspired Information and Communications Technologies (2015), p 433-437.
Wand, M., Kiczales, G., and Dutchyn, C. (2001). A semantics for advice and dynamic join points in aspect-oriented programming. SAIG, 45–46.
Zhang, L. (2011). Study on comparison of AOP and OOP. 2011 International Conference on Computer Science and Service System (CSSS), 3596–3599.
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Authors who publish with this journal agree to the following terms:
1. Authors retain copyright and grant the journal right of first publication with the work simultaneously licensed under a Creative Commons Attribution License [CC BY-NC-ND 4.0] that allows others to share the work with an acknowledgment of the work's authorship and initial publication in this journal.
2. Authors are able to enter into separate, additional contractual arrangements for the non-exclusive distribution of the journal's published version of the work (e.g., post it to an institutional repository or publish it in a book), with an acknowledgment of its initial publication in this journal.
3. Authors are permitted and encouraged to post their work online (e.g., in institutional repositories or on their website) prior to and during the submission process, as it can lead to productive exchanges, as well as earlier and greater citation of published work (See The Effect of Open Access).