Subscribe by Email

Thursday, March 24, 2011

Overview of Aspect Oriented Software Development (AOSD)

Aspect oriented software development defines aspects that express customer concerns that cut across multiple system functions, features, and information. It provides a process and methodological approach for defining, specifying, designing, and constructing aspects - mechanisms beyond subroutines and inheritance for localizing the expression of a crosscutting concern.
Aspect Oriented Programming (AOP) provides the ability to intercept code execution with the purpose of inserting a process before, in place of, or after the code that would normally execute.

Predominant reasons for AOSD are:
- Help solve the issue of messy object architectures.
- Object oriented programming has difficulty dealing with global information.
- Also, functionality that requires the involvement of several different objects (possibly collected into a component) results in interdependency between those objects/components. This makes the application susceptible to the implementation changes of a dependent object/component.
- Maintenance and enhancement are also problems, as the interaction between these objects/components are typically hard coded within the containing object.

AOSD programming technologies (aspect-oriented programming, or AOP) provide linguistic mechanisms for separate expression of concerns, along with implementation technologies for weaving these separate concerns into working systems. Aspect-oriented software engineering (AOSE) technologies are emerging for managing the process of developing systems within this new paradigm.

No comments:

Facebook activity