686:
117:
constructs consist entirely of procedure calling, there is no semantic through which two goals (the capability to be implemented and the related cross-cutting concern) can be addressed simultaneously. As a result, the code addressing the cross-cutting concern must be
407:
622:
595:
82:
a history of changes to the record database or user database, or an authentication system, would be cross-cutting concerns since they interact with more parts of the program.
615:
731:
608:
140:
to retain modularity. This allows for the clean isolation and reuse of code addressing the cross-cutting concern. By basing designs on cross-cutting concerns,
588:
Berg, K. van den, Conejero, J. and
Chitchyan, R. (2005). AOSD Ontology 1.0 ‐ Public Ontology of Aspect‐Orientation. AOSD Europe Network of Excellence,
90:
Cross-cutting concerns are parts of a program that rely on or must affect many other parts of the system. They form the basis for the development of
389:
Kiczales, Gregor; Lamping, John; Mendhekar, Anurag; Maeda, John; Lopes, Cristina; Longtier, Jean-Marc; Irwin (1997). "Aspect-Oriented
Programming".
495:
Tarr, Peri; Ossher, Harold; Harrison, William; Sutton, Stanley M. Jr. (1999). "N degrees of separation: Multi-dimensional separation of concerns".
596:
https://web.archive.org/web/20161220151503/https://www.captechconsulting.com/blogs/a-persistence-pattern-using-threadlocal-and-ejb-interceptors
526:
193:
736:
40:
20:
237:
133:
177:
222:
188:
650:
560:
552:
28:
655:
631:
576:
556:
500:
402:
274:
227:
129:
95:
44:
456:
137:
91:
123:
71:
48:
415:
Li, Harry; Krishnamurthi, Shriram; Fisler, Kathi (2002). "Verifying Cross-Cutting
Features as Open Systems".
504:
465:
424:
285:
269:
247:
242:
99:
582:
197:
182:
398:
645:
542:
Laddad, R. (2003): AspectJ in Action, Practical Aspect-Oriented
Programming, Manning Publications Co.
291:
202:
141:
67:
454:
Parnas, David L. (December 1972). "On the
Criteria To Be Used in Decomposing Systems into Modules".
509:
470:
232:
114:
36:
429:
75:
497:
Proceedings of the 1999 International
Conference on Software Engineering (IEEE Cat. No.99CB37002)
483:
442:
589:
522:
301:
257:
212:
161:
514:
475:
434:
279:
217:
110:
56:
51:
from the rest of the system in both the design and implementation, and can result in either
32:
171:
391:
Proceedings of the 11th
European Conference on Object-Oriented Programming (ECOOP 1997)
581:
Bergmans, L., M. Aksit (2001): Composing
Multiple Concerns Using Composition Filters,
725:
660:
296:
166:
156:
487:
446:
79:
700:
670:
600:
122:, or duplicated, across the various related locations, resulting in a loss of
518:
685:
479:
438:
675:
207:
710:
705:
570:
252:
583:
https://web.archive.org/web/20170909131212/http://trese.cs.utwente.nl/
604:
573:
360:
348:
336:
152:
Examples of concerns that tend to be cross-cutting include:
144:
benefits can include modularity and simplified maintenance.
590:
http://eprints.eemcs.utwente.nl/10220/01/BergConChi2005.pdf
564:
594:
Here is an example of handling a cross-cutting concern:
105:
Cross-cutting concerns can be directly responsible for
94:. Such cross-cutting concerns do not fit cleanly into
372:
63:(significant dependencies between systems), or both.
693:
638:
321:
16:Concept in aspect-oriented software development
616:
8:
332:
330:
623:
609:
601:
508:
469:
428:
109:, or system inter-dependencies, within a
314:
185:and other global configuration settings
575:, an Aspect-Oriented extension to the
417:ACM SIGSOFT Software Engineering Notes
288:(minimize needlessly replicated data)
194:Internationalization and localization
7:
732:Aspect-oriented software development
74:, the indexing of such records is a
21:aspect-oriented software development
373:Li, Krishnamurthi & Fisler 2002
39:, without the possibility of being
14:
684:
561:Internet Archive Wayback Machine
499:. Los Angeles, California, USA:
189:Error detection and correction
1:
401:, Kiczales et al., "
304:(mathematical normalization)
136:cross-cutting concerns into
66:For instance, if writing an
737:Aspect-oriented programming
656:Aspect-oriented programming
632:Aspect-oriented programming
501:IEEE Computer Society Press
403:Aspect-oriented programming
275:Aspect-oriented programming
130:Aspect-oriented programming
96:object-oriented programming
753:
682:
577:Java programming language
457:Communications of the ACM
113:. Because procedural and
519:10.1109/ICSE.1999.841000
405:", issued 2002-10-15
282:(restructuring software)
47:often cannot be cleanly
666:Cross-cutting concerns
563:; AOSD.net has become
286:Database normalization
270:Separation of concerns
248:Context-sensitive help
243:Transaction processing
100:procedural programming
43:in any of them. These
25:cross-cutting concerns
480:10.1145/361598.361623
439:10.1145/605466.605481
399:US patent 6467086
233:Real-time constraints
198:Language localisation
183:Environment variables
503:. pp. 107–119.
361:Kiczales et al. 1997
349:Kiczales et al. 1997
337:Kiczales et al. 1997
322:Kiczales et al. 2002
292:Multiple inheritance
203:Information security
142:software engineering
35:that affect several
115:functional language
719:
718:
528:978-1-58113-074-4
464:(12): 1053–1058.
302:Orthogonalization
258:Computer security
213:Memory management
744:
688:
625:
618:
611:
602:
532:
512:
491:
473:
450:
432:
411:
410:
406:
394:
376:
370:
364:
358:
352:
346:
340:
334:
325:
319:
280:Code refactoring
228:Product features
176:Domain-specific
57:code duplication
752:
751:
747:
746:
745:
743:
742:
741:
722:
721:
720:
715:
689:
680:
634:
629:
557:aspect oriented
549:
539:
537:Further reading
529:
494:
453:
414:
408:
397:
388:
385:
380:
379:
371:
367:
359:
355:
347:
343:
335:
328:
320:
316:
311:
266:
238:Synchronization
196:which includes
172:Data validation
150:
88:
72:medical records
17:
12:
11:
5:
750:
748:
740:
739:
734:
724:
723:
717:
716:
714:
713:
708:
703:
697:
695:
691:
690:
683:
681:
679:
678:
673:
668:
663:
658:
653:
648:
642:
640:
636:
635:
630:
628:
627:
620:
613:
605:
599:
598:
592:
586:
585:(24 July 2004)
579:
568:
548:
547:External links
545:
544:
543:
538:
535:
534:
533:
527:
510:10.1.1.89.1641
492:
471:10.1.1.90.8963
451:
412:
395:
384:
381:
378:
377:
365:
353:
341:
326:
313:
312:
310:
307:
306:
305:
299:
294:
289:
283:
277:
272:
265:
262:
261:
260:
255:
250:
245:
240:
235:
230:
225:
220:
215:
210:
205:
200:
191:
186:
180:
174:
169:
164:
159:
157:Business rules
149:
146:
87:
84:
15:
13:
10:
9:
6:
4:
3:
2:
749:
738:
735:
733:
730:
729:
727:
712:
709:
707:
704:
702:
699:
698:
696:
692:
687:
677:
674:
672:
669:
667:
664:
662:
661:Aspect weaver
659:
657:
654:
652:
649:
647:
644:
643:
641:
637:
633:
626:
621:
619:
614:
612:
607:
606:
603:
597:
593:
591:
587:
584:
580:
578:
574:
572:
569:
566:
562:
558:
554:
551:
550:
546:
541:
540:
536:
530:
524:
520:
516:
511:
506:
502:
498:
493:
489:
485:
481:
477:
472:
467:
463:
459:
458:
452:
448:
444:
440:
436:
431:
430:10.1.1.8.9445
426:
422:
418:
413:
404:
400:
396:
392:
387:
386:
382:
374:
369:
366:
362:
357:
354:
350:
345:
342:
338:
333:
331:
327:
323:
318:
315:
308:
303:
300:
298:
297:Microservices
295:
293:
290:
287:
284:
281:
278:
276:
273:
271:
268:
267:
263:
259:
256:
254:
251:
249:
246:
244:
241:
239:
236:
234:
231:
229:
226:
224:
221:
219:
216:
214:
211:
209:
206:
204:
201:
199:
195:
192:
190:
187:
184:
181:
179:
178:optimizations
175:
173:
170:
168:
167:Code mobility
165:
163:
160:
158:
155:
154:
153:
147:
145:
143:
139:
135:
131:
127:
125:
121:
116:
112:
108:
103:
101:
97:
93:
85:
83:
81:
77:
73:
70:for handling
69:
64:
62:
58:
54:
50:
46:
42:
38:
34:
30:
26:
22:
665:
555:glossary of
496:
461:
455:
423:(6): 89–98.
420:
416:
390:
383:Bibliography
368:
356:
344:
317:
151:
128:
119:
106:
104:
89:
76:core concern
65:
60:
52:
41:encapsulated
24:
18:
711:AspectWerkz
559:terms (via
375:, p. 1
363:, p. 2
351:, p. 6
339:, p. 1
324:, p. 4
223:Persistence
134:encapsulate
68:application
726:Categories
671:Join point
565:Modularity
553:AOSD.net's
393:: 220–242.
309:References
218:Monitoring
124:modularity
86:Background
53:scattering
49:decomposed
701:AspectC++
694:Languages
505:CiteSeerX
466:CiteSeerX
425:CiteSeerX
120:scattered
676:Pointcut
639:Concepts
488:53856438
447:52835673
264:See also
148:Examples
132:aims to
107:tangling
78:, while
61:tangling
45:concerns
706:AspectJ
571:AspectJ
253:Privacy
208:Logging
162:Caching
138:aspects
111:program
92:aspects
80:logging
37:modules
33:program
29:aspects
651:Aspect
646:Advice
525:
507:
486:
468:
445:
427:
409:
484:S2CID
443:S2CID
31:of a
523:ISBN
27:are
515:doi
476:doi
435:doi
98:or
59:),
19:In
728::
567:).
521:.
513:.
482:.
474:.
462:15
460:.
441:.
433:.
421:27
419:.
329:^
126:.
102:.
23:,
624:e
617:t
610:v
531:.
517::
490:.
478::
449:.
437::
55:(
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.