Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Aspect (computer programming)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Feature linked to many parts of a program, unrelated to program's primary function}} {{Refimprove|date=June 2008}} {{single source|date=June 2008}} In [[computer programming]], an '''aspect''' of a program is a [[Software feature|feature]] linked to many other parts of the program, but is not related to the program's primary function. An aspect [[Cross-cutting concern|crosscuts]] the program's core concerns, 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 at the core of the [[aspect-oriented programming]] (AOP) [[programming paradigm|paradigm]].<ref>{{cite book|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> 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|date=April 2010}} 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 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|date=April 2010}} == References == {{reflist}} {{aosd}} [[Category:Aspect-oriented software development]] [[Category:Aspect-oriented programming]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Aosd
(
edit
)
Template:Citation needed
(
edit
)
Template:Cite book
(
edit
)
Template:Refimprove
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Single source
(
edit
)