You are on page 1of 2

ASPECT ORIENTED SOFTWARE DEVELOPMENT

Aspect-oriented software development (AOSD) is an approach to software development that addresses limitations


inherent in other approaches, including object-oriented programming. Modularization of cross-cutting concerns
cannot be done by applying the decomposition principles of the traditional programming languages because they do
not have the same decomposition rules. AOSD aims to address crosscutting concerns by providing means for
systematic identification, separation, representation and composition.
Crosscutting concerns are encapsulated in separate modules, known as aspects. Aspects help to promote localization
which is required to solve the problem of crosscutting concerns. This results in better support for modularization
hence reducing development, maintenance and evolution costs.
ASPECTS:
1) Express the concerns and automatically incorporates them into a system.
2) Enhances the ability to express separation of the concerns.
3) Leads to well-designed, maintainable software system.
4) localization can be promoted
CONCERN:
A concern is a particular set of information that has an effect on the code of a computer program.
CROSS-CUTTING CONCERN:
Cross-Cutting concerns are aspects of a program that affect other concerns.
The drive for implementing AOSD comes from the need to address the problems resulting from code tangling and
scattering that is presented by cross-cutting concerns
1) Code Scattering:
The implementation of a concern is scattered if its code is spread over multiple modules.The concern affects the
implementation of multiple modules.Its implementation is not modular.
2) Code Tangling:
The implementation of a concern is tangled if its code is intermixed with code that implements other
concerns.The module in which tangling occurs is not cohesive.

ADVANTAGES OF AOSD :
 Complements object orientation.
 Reuse of classes and aspects.
 Complements the conventional designs rather than replace them.
 Reduced cost of coding.
 Modularizes cross-cutting concerns improving code maintainability and understandability.

DISADVANTAGES OF AOSD:

 A new development technique :It requires learning and training (a new way of thinking)
 Code fragmentation : Several small classes and aspects
 Lack of tool support : There are a few tools and IDE extensions
 Code bloating : As small source can tip to much bigger object code
ASPECT ORIENTED SOFTWARE DEVELOPMENT

You might also like