urldate = {2014-03-20},
date = {2006-05-04}
}
+
+@inreference{wikiAdvice2014,
+ title = {Advice (programming)},
+ rights = {Creative Commons Attribution-{ShareAlike} License},
+ url = {https://en.wikipedia.org/w/index.php?title=Advice_(programming)&oldid=462233199},
+ booktitle = {Wikipedia, the free encyclopedia},
+ urldate = {2014-03-21},
+ date = {2014-03-14},
+ langid = {english},
+ note = {Page Version {ID:} 462233199},
+}
entangled with parts of the source code it does not really belong. Examples
include logging, debugging, optimization and security.
-Aspects is interacting with other modules by defining advices. An \emph{advice}
-in AspectJ is somewhat similar to a method in Java. It is meant to alter the
-behavior of other methods, and contains a body that is executed when it is
-applied.
+Aspects are interacting with other modules by defining advices. The concept of
+an \emph{advice} is known from both aspect-oriented and functional
+programming\citing{wikiAdvice2014}. It is a function that modifies another
+function when the latter is run. An advice in AspectJ is somewhat similar to a
+method in Java. It is meant to alter the behavior of other methods, and contains
+a body that is executed when it is applied.
An advice can be applied at a defined \emph{pointcut}. A pointcut picks out one
or more \emph{join points}. A join point is a well-defined point in the