Aspect-oriented software development

From Wiki @ Karl Jones dot com
Jump to: navigation, search

In computing, aspect-oriented software development (AOSD) is a software development process that seeks new modularizations of software systems in order to isolate secondary or supporting functions from the main program's business logic.

Description

AOSD allows multiple concerns to be expressed separately and automatically unified into working systems.

Traditional software development focuses on decomposing systems into units of primary functionality, while recognizing that there are other issues of concern that do not fit well into the primary decomposition. The traditional development process leaves it to the programmers to code modules corresponding to the primary functionality and to make sure that all other issues of concern are addressed in the code wherever appropriate. Programmers need to keep in mind all the things that need to be done, how to deal with each issue, the problems associated with the possible interactions, and the execution of the right behavior at the right time. These concerns span multiple primary functional units within the application, and often result in serious problems faced during application development and maintenance. The distribution of the code for realizing a concern becomes especially critical as the requirements for that concern evolve – a system maintainer must find and correctly update a variety of situations.

Aspect-oriented software development focuses on the identification, specification and representation of cross-cutting concerns and their modularization into separate functional units as well as their automated composition into a working system.

See also

External links