This articleneeds additional citations forverification. Please helpimprove this article byadding citations to reliable sources. Unsourced material may be challenged and removed. Find sources: "Aspect" computer programming – news ·newspapers ·books ·scholar ·JSTOR(June 2008) (Learn how and when to remove this message) |
This articlerelies largely or entirely on asingle source. Relevant discussion may be found on thetalk page. Please helpimprove this article byintroducing citations to additional sources. Find sources: "Aspect" computer programming – news ·newspapers ·books ·scholar ·JSTOR(June 2008) |
Incomputer programming, anaspect of a program is afeature linked to many other parts of the program, but is not related to the program's primary function. An aspectcrosscuts the program's core concerns, therefore violating itsseparation of concerns that tries to encapsulate unrelated functions. For example,logging code can crosscut many modules, yet the aspect of logging should be separate from the functional concerns of the module it cross-cuts. Isolating such aspects as logging andpersistence frombusiness logic is at the core of theaspect-oriented programming (AOP)paradigm.[1]
Aspect-orientation is not limited to programming since it is useful to identify, analyse, trace and modularise concerns through requirements elicitation, specification, and design. Aspects can be multi-dimensional by allowing both functional and non-functional behaviour to crosscut any other concerns, instead of just mapping non-functional concerns to functional requirements.[citation needed]
One view of aspect-oriented software development is that every major feature of the program, core concern (business logic), or cross-cutting concern (additional features), is an aspect, and byweaving them together (a process also called composition), one finally produces a whole out of the separate aspects. This approach is known as pure aspect programming, but hybrid approaches are more common. It is possible for functional concerns to crosscut non-functional or functional concerns (e.g., the need for more features harms mobility). A uniform approach to representation and composition, similar to the pure approach in AOP, is termed multidimensional representation.[citation needed]