Abstract:
Software engineering seeks the realization of concerns in computerized systems. In object-oriented programming (OOP) each concern is realized by a separate entity (class). But there are some concerns such as logging, security, and so forth, which need to be realized using many entities. These types of concerns are called “Crosscutting concerns”. The implication of the crosscutting concerns compromise software modularity in terms of lower productivity, poor quality, and that they make the evolution of the designed systems very complicated. Aspect-oriented programming (AOP) overcomes these problems by modularizing the crosscutting concerns through explicit abstractions called aspects and composition mechanisms for composing the aspects with the software components.
This thesis investigates to what extent AOP is a practical solution for the mentioned problems. The thesis contains a case study for implementing AOP approach in developing ARS (Account Reconciliation System). The Aspect oriented based ARS represents a foundation for a modular version for bank accounts which contains crosscutting concerns treated as aspects. These concerns are Logging, Access control (Authentication and Authorization), Error handling, Transaction management and Input/output validation.
Our case study shows that the AOP has the potential to increase the quality of a software implementation with regard to its modularity, maintainability, readability, understandability, and reusability. However, AOP may cause problems with the structural complexity, correctness and testability of a software implementation.