===Relationship to aspect-oriented programming===
The introduction of [[aspect-oriented programming]] in 1997<ref>{{Cite conference | doid oi = 10.1007/BFb0053381BF b 0053381| title = Aspect-oriented programming| work = Proceedings of the 11th European Conference on Object-Oriented Programming| conference = [[European Conference on Object-Oriented Programming|ECOOPECO OP]]'97| volume = 1241| pages = 220–242| series = [[Lecture Notes in Computer Science|LNCSLN C S]]| year = 1997| last1last 1 = KiczalesK i c z a l es | first1first 1 = G. | author1author 1-link = GregorGr Kiczalese go r K i c z ale s | last2last 2 = LampingLamp in g | first2first 2 = J. | last3last 3 = MendhekarMe n d h e k a r | first3first 3 = A. | last4last 4 = MaedaMa e d a | first4first 4 = C. | last5last 5 = Lopes | first5first 5 = C. | last6last 6 =Lo in gt i Loingtierer | first6first 6 = J. M. | last7last 7 = Irwin | first7first 7 = J. | isbnis b n = 3-540-63089-9| citeseerxcites e e r x = 10.1.1.115.8660| urlu r l = httpht t p ://wwww w w .csc s.ubc u b c .ca/~gregorgr e g or/papers/kiczalesk i c z a l e s-ECOOP1997EC O O P 1997-AOPA O P .pdfp d f}}</ref> raised questions about its relationship to subject-oriented programming, and about the difference between subjects and aspects. These questions were unanswered for some time, but were addressed in the patent on Aspect-oriented programming filed in 1999<ref>KiczalesK i c z a l es; GregorGr e g or J.; LampingLamp in g; John O.; Lopes; Cristina V.; Hugunin H u gun in; James J.; HilsdaleHi ls dale; Erik A.; BoyapatiBoy a p at i; Chandrasekhar, Aspect Oriented Programming, United States Patent 6,467,086, October 15, 2002</ref> in which two points emerge as characteristic differences from earlier art:
* the aspect program comprises both a) a cross-cut that comprises a point in the execution where cross-cutting behavior is to be included; and b) a cross-cut action comprising a piece of implementation associated with the cross-cut, the piece of implementation comprising computer readable program code that implements the cross-cutting behavior.
* the aspect transparently forces the cross-cutting behavior on object classes and other software entities
In the subject-oriented view, the cross-cut may be placed separately from the aspect (subject) and the behavior is not forced by the aspect, but governed by rules of composition. Hindsight<ref>William Harrison. DeD e-constructing and Re-constructing Aspect-Orientation, Seventh Annual Workshop on Foundations of Aspect Languages, Brussels, Belgium, 1 April 2008, edited by Gary T. Leavens , ACMA CM Digital Library, 2008, pp. 43-50</ref> makes it also possible to distinguish aspect-oriented programming by its introduction and exploitation of the concept of a query-like [[pointcutpoi n t cu t]] to externally impose the join-points used by aspects in general ways.
In the presentation of subject-oriented programming, the join-points were deliberately restricted to field access and method call on the grounds that those were the points at which well-designed frameworks were designed to admit functional extension. The use of externally imposed pointcutspoint cuts is an important linguistic capability, but remains one of the most controversial features of aspect-oriented programming.<ref>FriedrichFried Steimannrich St e i man n. The paradoxical success of aspect-oriented programming, Proceedings of the 21st annual ACMA CM SI GP SIGPLANLAN conference on Object-oriented programming systems, languages, and applications, Portland, Oregon, USA , 2006, pp. 481 - 497</ref>
===Relationship to aspect-oriented software development===
|