Resumen
This article analyzes the role of aspect-oriented programming in software design. There is a growing agreement in the software community about the limitations of object orientation to cope with the problem of building highly reusable, adaptable and extensible software systems. Aspect-oriented programming (AOP) is one of the most promising alternatives to improve object-oriented programming techniques. AOP aims at providing better means of addressing the well-known problem of separation of concerns by using specialized mechanisms to encapsulate concerns whose behavior crosscuts essential application functionality. The article discusses three basic approaches to addressing the process of separation of concerns namely a linguistic view, a pure object-oriented view and an architecture-oriented view. The authors have carried out a simulation case study to empirically compare both object-oriented solutions against aspect-oriented ones, and aspect technologies against each other. According to the authors, the central problem of aspect technologies is not just about crosscutting or separation of concerns, but it involves deeper research about how to understand a number of software parts as separated artifacts and then integrate some of them into a coherent system. |