La programmation orientée aspect (AOP) est un paradigme qui permet de traiter séparément les préoccupations transversales des préoccupations métier, facilitant ainsi la séparation du code technique et du code métier. Les tisseurs d'aspects jouent un rôle clé en intégrant ces aspects dans le code de l'application, que ce soit à la compilation ou à l'exécution. AspectJ est une implémentation notable de l'AOP, offrant des outils pour déclarer des aspects et fournir un support structuré et comportemental à la programmation orientée aspect.