Content deleted Content added
Bluelink 1 book for verifiability.) #IABot (v2.0) (GreenC bot |
→top: Clean up/copyedit |
||
(7 intermediate revisions by 5 users not shown) | |||
Line 1:
{{Short description|Feature linked to many parts of a program, unrelated to program's primary function}}
An '''aspect''' of a program is a [[Software feature|feature]] linked to many other parts of the program, but which is not related to the program's primary function. An aspect [[Cross-cutting concern|crosscuts]] the program's [[core concern]]s, therefore violating its [[separation of concerns]] that tries to encapsulate unrelated functions. For example, [[Data logging|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 and [[persistence (computer science)|persistence]] from [[business logic]] is the aim of [[aspect-oriented software development]] (AOSD), of which the [[aspect-oriented programming]] (AOP) [[programming paradigm|paradigm]] is the most widely employed.<ref>{{citebook|title=Aspect-Oriented Database Systems|url=https://archive.org/details/springer_10.1007-978-3-662-05851-0|author=Awais Rashid|year= 2004|publisher=Springer|isbn=3-540-00948-5}}</ref>▼
{{Refimprove|date=June 2008}}▼
{{single source|date=June 2008}}
▲
Aspect-orientation is not limited to programming since it is useful to identify, analyse, trace and modularise concerns
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 by [[aspect weaver|weaving]] 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
== References ==
{{reflist}}
▲{{Refimprove|date=June 2008}}
{{aosd}}
|