Improving Software Modularity Using AOP

Software modularity is a software design technique that increases the level to which software is composed of separate interchangeable components called modules. The modules are devised by breaking down the program functions. Each module accomplishes one function and contains all that is necessary to accomplish it. Modules represent a separation of concerns, and improve the maintainability by enforcing logical boundaries between the components. Languages that formally support the module concept include Java, AspectJ, etc. OOP supports modularity, i.e., the source code for an object can be written and maintained independently of the source code for other objects.