12.07.2015 Views

T H E S E - LIFL

T H E S E - LIFL

T H E S E - LIFL

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

20 Contexte logiciel spécifique à la thèsemécanismes du logiciel. Dans le cas d’un langage de programmation, il s’agit desclasses, des méthodes, etc.– La capacité d’intercession, qui correspond à la capacité de pouvoir se modifiersoi-même. Dans le cas d’un logiciel, cette capacité correspond à la possibilité demodifier les entités réifiées et au fait que les modifications effectuées sont prisesen compte de façon immédiate (principe de connexion causale selon lequel laréification détermine le comportement du logiciel).La réflexion met en relation les deux niveaux fondamentaux que sont le niveau de base etle niveau méta. Le niveau de base capture le sujet principal du logiciel d’une application(par exemple la réservation d’un hôtel ou la gestion de comptes bancaires). Le niveauméta désigne alors le code réflexif, c’est à dire le code agissant sur les réifications du codede base. C’est notamment à ce niveau plus élevé qu’il est alors possible d’introduire desmécanismes d’exécution modularisant des préoccupations transversales (transaction,sécurité, etc.).Les langages à objet, de part leur structure et leur organisation, sont particulièrementadaptés à la mise en oeuvre du principe de reflexion. Dans ce contexte, lesobjets appartenant au niveau méta sont alors appelés méta-objets, et leur rôle consisteà contrôler le comportement des objets du niveau de base. La communication entre lesobjets du niveau de base et du niveau méta est alors gérée par un protocole à métaobjets(MOP) 10 qui constitue l’interface entre les différentes niveaux. L’un des MOPles plus représentatifs est le MOP de CLOS 11 [KdRB91].En ouvrant l’implémentation des logiciels, la réflexion offre une technologie particulièrementadaptée pour mettre en oeuvre le principe de séparation des préoccupations.En effet, les différents niveaux (de base, méta et multiples méta de plus haut niveau)permettent d’isoler les diverses préoccupations du logiciel, tandis que le MOP prend encharge la mise en oeuvre de la recomposition des préoccupations.2.2.3 Programmation par aspectsLa programmation par aspects (AOP 12 ) [KLM + 97, Aks96, MC96] représente unparadigme adressant spécifiquement la problématique de modularisation des préoccupationsentrelacées dans un système logiciel complexe, et cherchant ainsi à répondre auproblème de la tyrannie de la décomposition dominante.Plusieurs approches pour le developpement de logiciel par aspects et basées sur unemême modélisation sont présentées par Masuhara et Kiczales dans [MK03]. L’AOPintroduit une nouvelle unité de modularité nommée « aspect » qui encapsule une préoccupationentrelaçante. Un aspect se caractérise par les structures suivantes :– Un langage de coupe (pointcut language) qui permet de désigner un ensemblede points d’exécution du programme de base, appelés points de jonction (joinpoints). Selon la modélisation des points de jonction et des coupes, un langaged’aspect peut cibler de manière plus ou moins précise les points d’exécution duprogramme de base. Dans le cas de langage à objet, de tels points de jonctionpeuvent par exemple correspondre à l’appel d’une méthode ou bien à l’accès àune donnée, etc.10. métaObject Protocol11. Common Lisp Object System12. Aspect Oriented Programming

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!