Cross-cutting concern

Source: Wikipedia, the free encyclopedia.

In

aspect-oriented software development, cross-cutting concerns are aspects of a program that affect several modules, without the possibility of being encapsulated
in any of them. These
code duplication
), tangling (significant dependencies between systems), or both.

For instance, if writing an

logging
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.

Background

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

aspects.[1] Such cross-cutting concerns do not fit cleanly into object-oriented programming or procedural programming.[2]

Cross-cutting concerns can be directly responsible for tangling, or system inter-dependencies, within a

aspects to retain modularity. This allows for the clean isolation and reuse of code addressing the cross-cutting concern.[4] By basing designs on cross-cutting concerns, software engineering benefits can include modularity and simplified maintenance.[5]

Examples

Examples of concerns that tend to be cross-cutting include:

See also

References

Bibliography

  • Kiczales, Gregor; Lamping, John; Mendhekar, Anurag; Maeda, John; Lopes, Cristina; Longtier, Jean-Marc; Irwin (1997). "Aspect-Oriented Programming". Proceedings of the 11th European Conference on Object-Oriented Programming (ECOOP 1997): 220–242.
  • US patent 6467086, Kiczales et al., "Aspect-oriented programming", issued 2002-10-15 
  • Li, Harry; Krishnamurthi, Shriram; Fisler, Kathi (2002). "Verifying Cross-Cutting Features as Open Systems". ACM SIGSOFT Software Engineering Notes. 27 (6): 89–98.
    S2CID 52835673
    .
  • Parnas, David L. (December 1972). "On the Criteria To Be Used in Decomposing Systems into Modules". .
  • Tarr, Peri; Ossher, Harold; Harrison, William; Sutton, Stanley M. Jr. (1999). "N degrees of separation: Multi-dimensional separation of concerns". Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002). Los Angeles, California, USA: .

Further reading

  • Laddad, R. (2003): AspectJ in Action, Practical Aspect-Oriented Programming, Manning Publications Co.

External links