Cross-cutting concern

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.

[2] Cross-cutting concerns can be directly responsible for tangling, or system inter-dependencies, within a program.

[2] Aspect-oriented programming aims to encapsulate cross-cutting concerns into 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.