So we have solutions for every general problem/topic. Can we find alternative solutions to address the same problem?
Code tangling and code scattering impact software in many ways:
1. Poor traceability – Simultaneous implementation of several concerns make it hard to trace requirements to implementation.
2. Lower Productivity – Simultaneous implementation of multiple concerns shifts the focus from the main concern to peripheral concerns. The High coupling leads to lower productivity. Further, different concerns implemented in one module requires different skills to handle the module.
3. Lower code reuse – Not hard to understand, since a module implements multiple concerns.
4. Poor qualify – Code tangling makes it hard to examine code and find problems.
5. Difficult evolution – Because of the above four problems, the software is difficult to maintain.
AOP can solve those problems by separating those crosscutting concerns. Indeed, those problems commonly exists in software. Those are identified as problems. In spite of the fact that AOP is able to solve those problems, not all systems can be applied with AOP(Based on my understanding).
Now, the questions is: what other techniques can be applied to do the same like AOP.