Knowledge

Cross-cutting concern

Source 📝

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:(

Index

aspect-oriented software development
aspects
program
modules
encapsulated
concerns
decomposed
code duplication
application
medical records
core concern
logging
aspects
object-oriented programming
procedural programming
program
functional language
modularity
Aspect-oriented programming
encapsulate
aspects
software engineering
Business rules
Caching
Code mobility
Data validation
optimizations
Environment variables
Error detection and correction
Internationalization and localization

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.