La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Programmation par Aspect Présente Par : Linda Dib STL-M2 APr.

Présentations similaires


Présentation au sujet: "Programmation par Aspect Présente Par : Linda Dib STL-M2 APr."— Transcription de la présentation:

1 Programmation par Aspect Présente Par : Linda Dib STL-M2 APr

2 Le PLAN 1. Définitions 2. Pourquoi la programmation par aspect? 3. Méthodes Programmation par aspect Approche par transformation de programme Approche par transformation dinterprète Approches hybrides 4. Réflexion et Programmation par Aspect 5. AspectJ 6. Les références

3 1.a. Aspect de Base Décrit les services dune application. Exemple: Dans une libraire électronique -rechercher un ouvrage -passer une commande - …

4 1.b. Aspects non fonctionnels Interviennent sur la manière de réaliser ces services. Exemple: -distribution -persistance -synchronisation

5 1.c. Programmation par aspect Etape1: Départager les aspects Etape2: Lassemblage à travers la composition.

6 Exemple de AOP

7 1.d. La Réflexion Un concept de Brian Smith « La réflexion est la capacité dune entité à sauto représenter et plus généralement à se manipuler elle-même. » Propriété de base: soutient les calculs de méta

8 1.d. La Réflexion Deux types de réflexion: -Structurale: pièce décrivant la structure (de charge statique) du programme -Comportementale: pièce décrivant son comportement (dynamique),

9 1.e. Introspection Un système réfléchissant observant sa propre exécution

10 1.f. Intercession Un système réfléchissant peut changer son exécution

11 1.g. Le langage réflexif Le langage réflexif comporte deux niveaux : 1. Le niveau de base : Il décrit les services réalisés par lapplication (le Quoi) 2. Le niveau méta : Il décrit la manière dinterpréter le niveau de base (le Comment)

12 1.h. méta lien Le lien entre un objet de base et un méta objet également désigné sous le nom d'un lien causal de raccordement.

13 Le langage réflexif: schéma

14 1.i. Réflexion comportementale Partielle Apporter la réflexion comportemental dans une langue comme java est un nouveau défi

15 1.i. Réflexion comportementale Partielle Les caractéristiques: -ladaptabilité -modularité -Basée sur la réification des opérations au niveau de base

16 1.i. Réflexion comportementale Partielle Le méta niveau est structuré en termes de méta - objets Le méta niveau raisonne et agit sur des réifications du calcul du niveau de base Ces calculs sont décrits en terme dopérations

17 1.i. Réflexion comportementale Partielle Example de reifications des operations : -Message sending & receiving -Instantiation -Casting & Serialization (in Java) -Field accesses

18 1.j. Hook Cest le morceau de bas niveau de code qui permet -dexécuter une réification -donner la commande au méta objet associé.

19 1.k. Objet Réflectif C est un objet dans lequel quelques opérations sont réifiées et sont commandées par un méta objet

20 1.l. Sélection Spatiale Permet de choisir ce qui sera réifié dans une application Le choix spatial peut être fait statiquement ou dynamiquement - le choix d'entité - choix d'opération - choix d'Intra opération

21 1.l. Sélection Temporelle -Choisit quand les réifications sont effectuées -Optimise l'exécution globale d'un système se servant de la réflexion une étape plus loin

22 1.m. Reflex 1.0 Implémente la Réflexion comportementale Partielle en Java et pour Java Inclus les concepts de sélection spatiale et temporelle Permet deffectuer une configuration Statique et Dynamique

23 Le PLAN 1. Définitions 2. Pourquoi la programmation par aspect? 3. Méthodes Programmation par aspect Approche par transformation de programme Approche par transformation dinterprète Approches hybrides 4. Réflexion et Programmation par Aspect 5. AspectJ 6. Les références

24 2. AOP : Utilité Assure la réutilisation des différents aspects

25 Le PLAN 1. Définitions 2. Pourquoi la programmation par aspect? 3. Méthodes Programmation par aspect Approche par transformation de programme Approche par transformation dinterprète Approches hybrides 4. Réflexion et Programmation par Aspect 5. AspectJ 6. Les références

26 3. Méthode Programmation par aspect -Considérons laspect de base comme un Programme P0 écrit pour un interprète I0 -Lexécution de P0 par I0 produit un résultat R0

27 3. Méthode Programmation par aspect -Les aspects non fonctionnels interviennent dans le traitement -Il produisent un résultat final R1différent du résultat R0

28 Le PLAN 1. Définitions 2. Pourquoi la programmation par aspect? 3. Méthodes Programmation par aspect Approche par transformation de programme Approche par transformation dinterprète Approches hybrides 4. Réflexion et Programmation par Aspect 5. AspectJ 6. Les références

29 Approche par transformation de programme « Consiste à définir chaque aspect non fonctionnel sous la forme dun ensemble de règles de transformation à appliquer à laspect de base. » Dans cette approche nous nallons pas modifier linterprète. Difficulté de cette approche: Construction des règles de transformation génériques, indépendantes de laspect de base.

30 Règles de transformation Définies en terme de points de jonction abstraits Points de jonction -Utilisés lors de la composition -Permettent de référencer des éléments de laspect de base.

31 La configuration -Consiste à lier les points de jonction abstraits à des éléments concrets de la définition de laspect de base (affectations, boucles,...) -Indique les points de jonction à utiliser pour composer chaque aspect non fonctionnel avec laspect de base.

32 La composition -Elle a lieu après la configuration -Cest lapplication des règles de transformation à laspect de base -Elle produit un nouveau programme où les différents aspects sont fusionnés.

33 Le PLAN 1. Définitions 2. Pourquoi la programmation par aspect? 3. Méthodes Programmation par aspect Approche par transformation de programme Approche par transformation dinterprète Approches hybrides 4. Réflexion et Programmation par Aspect 5. AspectJ 6. Les références

34 Approche par transformation de linterprète Construction d un nouvel interprète I1 à partir de - des aspects non fonctionnels - de linterprète par défaut I0 Cette approche est basée sur le concept de réflexion

35 La réflexion La réflexion permet de séparer naturellement laspect de base des aspects non fonctionnels METACLASSTALK sépare clairement les définitions des différents aspects non – fonctionnels

36 La configuration -Définir pour chaque objet du niveau de base, le(s) méta - objet(s) chargé(s) den contrôler lexécution -Désigne des points de jonction où les méta - objets doivent intervenir

37 La Composition -Dabord, linterprète par défaut est étendu avec les définitions des métas objets -Puis, laspect de base est composé avec les aspects non fonctionnels par lintermédiaire du lien méta

38 Le PLAN 1. Définitions 2. Pourquoi la programmation par aspect? 3. Méthodes Programmation par aspect Approche par transformation de programme Approche par transformation dinterprète Approches hybrides 4. Réflexion et Programmation par Aspect 5. AspectJ 6. Les références

39 Approches hybrides Transforme le programme et linterprète,pour introduire les aspects non fonctionnels JAVASSIST est lun des rares représentants de lapproche hybride

40 Le PLAN 1. Définitions 2. Pourquoi la programmation par aspect? 3. Méthodes Programmation par aspect Approche par transformation de programme Approche par transformation dinterprète Approches hybrides 4. Réflexion et Programmation par Aspect 5. AspectJ 6. Les références

41 4. Les différences entre la Réflexion et AOP -La réflexion est un concept de structure générique -La programmation par aspect : introduit aux programmeurs des langages aspects spécifiques ASL -La réflexion est : solution-oriented -La programmation par aspect: problem-oriented

42 4. Les différences entre la Réflexion et AOP -La programmation par aspect permet uniquement de partager puis composer les différents aspects -La réflexion et/ou la réflexion comportementale peuvent être aussi utilisée pour: programmation dynamique les programmes adaptatifs

43 4. Le Lien entre Réflexivité et AOP La programmation par aspect est un sous ensemble de la réflexion comportementale partielle La construction dun langage aspect général sur un système réflexif générique permet de garantir les aspects comportementaux et diminue la complexité de la programmation

44 4. Le langage général Les causes de la difficulté de limplémentation des aspects -diversité -leur large spectre La recherche se concentre sur la création dun langage de programmation général: AspectJ

45 Le PLAN 1. Définitions 2. Pourquoi la programmation par aspect? 3. Méthodes Programmation par aspect Approche par transformation de programme Approche par transformation dinterprète Approches hybrides 4. Réflexion et Programmation par Aspect 5. AspectJ 6. Les références

46 5. ASPECTJ Le langage AspectJ est issu des travaux menés au Xerox-PARC sur la programmation par aspects. ASPECTJ est une extension du langage objet java.

47 5. ASPECTJ Quelques définitions: Aspect : introduit une construction qui représente un aspect non-fonctionnel et éventuellement la configuration associée Joint point : point de jonction Pointcut : un ensemble de points de jonction Advice: code qui sera exécuté automatiquement dans tous les pointcut dans un certain point de jonction. Les règles de transformation sont introduites par lintermédiaire de mots-clés tels que before et after. Introduction Lexical: Ajouter des fonctionnalités a une classe.

48 Le PLAN 1. Définitions 2. Pourquoi la programmation par aspect? 3. Méthodes Programmation par aspect Approche par transformation de programme Approche par transformation dinterprète Approches hybrides 4. Réflexion et Programmation par Aspect 5. AspectJ 6. Les références

49 Les références 1. Le point sur la programmation par aspects Noury M. N. Bouraqadi- SaâdaniThomas Ledoux 2.Aspect Oriented Programming versus Reflection: a first drafy J.Malenfant and P.Cointe 3. Supporting Dynamic Crosscutting with Partial Behavioral Reflection: a Case Study Leonardo Rodríguez Éric Tanter Jacques Noyé 4. AspectJ Tutorial Morgan Deters 5.Partial Behavioral Reflection: Spatial and Temporal Selection of Reification Éric Tanter- Jacques Noyé- Denis Caromel - Pierre Cointe 6. Supporting Dynamic Crosscutting with Partial Behavioral Reflection: a Case Study Leonardo Rodríguez Éric Tanter Jacques Noyé

50 Les URL 1. MetaClassTalk 2. Conférence sur AOP se98/ 3. International conference on Aspect-Oriented software development


Télécharger ppt "Programmation par Aspect Présente Par : Linda Dib STL-M2 APr."

Présentations similaires


Annonces Google