Programmation Orientée Aspect

28 mai 2017

On oppose généralement la programmation orientée objet et la programmation orientée aspect. Les techniques de conception logicielles actuelles tentent d’architecturer les applications en modules a priori indépendants les uns des autres. En effet, ces modules gèrent des aspects différents du système conçu. C’est le principe même de la programmation orientée objet où le logiciel est découpé en unité de sens : les objets. Mais dans la pratique, on s’aperçoit que ces couches logicielles sont intimement liées : c’est l’entrecroisement des aspects techniques.

Ainsi, une couche logicielle initialement dédiée à gérer la logique métier applicative, va se retrouver dépendante de modules gérant les aspects transactionnels, journalisation, etc. Se limiter aux méthodes de programmation ‘classiques’ conduit ainsi à une complexification du code, de son développement et de sa maintenance. Il a donc été introduit un nouveau concept permettant de gérer les aspects transversaux d’une application : la programmation orientée aspect. L’inversion de contrôle mise en œuvre par la programmation par aspect permet d’extraire les dépendances entre objets/modules (aspects techniques entrecroisés). Ces dépendances sont gérées depuis l’extérieur de ces modules. Elles sont spécifiées dans des composants du logiciel nommés aspects.

AspectJ et la programmation orientée aspect

AspectJ, une extension à Java, permet d’ajouter les fonctionnalités nécessaires à ce dernier pour obtenir un langage orienté aspect. Première solution de programmation orientée aspect disponible, AspectJ  présente d’excellentes performances et intègre toutes les possibilités de la POA. L’inconvénient d’AspectJ est qu’il est purement statique (voir tisseur statique et dynamique) et de s’écarter du standard Java en nécessitant un compilateur spécifique. Ainsi, il est possible d’utiliser Java pour implémenter toutes les préoccupations et ensuite intégrer les nouvelles fonctionnalités d’AspectJ pour définir les règles d’assemblement. Un exemple concret d’application dans un système distribué sera présenté pour illustrer tous ces concepts.

La première version du compilateur date de 1998 mais la première version de AspectJ date de 2001. AspectJ s’est joint à la communauté open source Eclipse en 2002. Il est ainsi devenu un plugin standard pour la plate-forme de développement Eclipse. En 2005, AspectWerks (un ancien concurrent) a rejoint le projet enrichissant encore l’outil qui en est ainsi à sa 5ème version.

Wrap Up

  • 8/10
    Note obtenue
  • 6.8/10
    Densité du rapport
  • 7.5/10
    Utilisabilité

Caractéristiques

  • Une note de 15/20
  • Année 2016
  • Présenté au CNAM ..(sur demande)
  • 34 pages

Points forts / Points faibles

  • + Contenu clair et lisible
  • + Des descriptifs techniques
  • + Des applications concrètes
  • + Nombreuses illustrations
  • - Analyse à approfondir

One Comment

  • PACNAM 28 mai 2017 at 14 h 51 min

    Bonjour,
    Pour vos questions, c’est par ici.

    Bonne journée

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *