PRATIQUE ALGO/METHODES 
Expliquez-moi... La programmation orientée aspect
 
Elaboré en 1997 par Xerox, ce paradigme de programmation commence à faire parler de lui en dehors des études académiques, et les outils utilisables par les développeurs deviennent fiables. (21/04/2006)
  Forum

Réagissez dans les forums de JDN Développeurs

Parmi les paradigmes de programmation proposés aux développeurs, la programmation orientée aspect (POA) semble être l'un des plus prometteurs. Ses principes ont été adoptés sur des projets d'envergure (comme Drupal), et améliore la programmation Objet sur certains points clefs - même s'il peut également être appliqué avec un langage procédural, pour peu qu'une implémentation existe.

L'idée première de ce paradigme est d'améliorer la séparation des "préoccupations" (Separation of Concerns) lors du développement. Ces préoccupations forment les différents aspects techniques du logiciel, habituellement fortement dépendants entre eux. La POA propose des mécanismes de séparation de ces aspects, afin de modulariser le code, le décomplexifier, et le rendre plus simple à modifier.

Ces mécanismes sont regroupés sous l'appellation d'inversion de contrôle, et consistent à extraire les dépendances et à les gérer depuis des modules externes : les aspects. Ceux-ci sont autonomes, et travaillent avec le cœur du logiciel par le biais d'un modèle de points d'exécution (join point model).

Ce dernier précise à quel point d'exécution (join point) tel aspect devra être activé. Le modèle défini par ailleurs un moyen de spécifier ou quantifier l'activation de plusieurs points d'exécution via des points d'action (pointcut), et une méthode pour affecter l'activation des points d'action, par le biais de "greffons".

Le développement Aspect comprend trois étapes :
 1) Décomposition par aspects : le développeur décomposer les besoins de son logiciel pour y isoler les préoccupations susceptibles de servir à plusieurs étapes de celui-ci. On identifie ainsi les différents traitements du logiciel

 2) Implémentation des préoccupations : chaque préoccupation est implémentée séparément.

 3) Recomposition par aspects : un outil appelle Tisseur (weaver) intègre les différentes préoccupations en créant des modules, c'est à dire les fameux aspects. L'aspect est ainsi tissé pour produire du code traditionnel, qui perd du coup ses notions d'aspect et produit du code Java (ou autre) classique. L'intérêt de la PAO réside dans la maintenabilité, pas le code final.

La POA est dépendante de l'implémentation de ses concepts au sein d'un langage. AspectJ reste l'implémentation la plus populaire, dédiée à Java et gérée par le projet Eclipse. D'autres frameworks Java ont depuis vu le jour, à commencer par JBoss AOP et Nanning, et les frameworks pour les autres langages ont suivi le pas : C, C#, PHP, Python, Cobol et d'autres peuvent aujourd'hui profiter des apports de la POA à l'aide d'extensions dédiées.
 
Xavier Borderie, JDN Développeurs
 
 
Accueil | Haut de page