Programmation par Aspect

Slides:



Advertisements
Présentations similaires
EPITECH 2009 UML EPITECH 2009
Advertisements

Active Directory Windows 2003 Server
Mathilde VINCENT - Olivier JOURDAN Paris - le 7/2/2012
MOT Éditeur de modèles de connaissances par objets typés
Le struts validator – framework de validation
IREMIA : Institut de REcherche en Mathématiques et Informatique Appliquées Université de la Réunion Uniformisation des mécanismes de conception de SMA.
Treuil IRD Abdelwahed FSSM-Marrakech
Réflexivité et réseaux d’ information
La machine virtuelle virtuelle utopie et/ou réalité ?
Spécification et qualité du logiciel
Introduction Pour concrétiser l’enseignement assisté par ordinateur
Urbanisation de Systèmes d'Information
Conception de Programmes Evolutifs Pré Soutenance de TER Année Encadrants : Cathy Escazut et Michel Gautero Auteurs: Paul-Kenji Cahier Sylvain.
Conception de Programmes Evolutifs Pré Soutenance de TER Année Encadrants : Cathy Escazut et Michel Gautero Auteurs: Paul-Kenji Cahier Sylvain.
Conception de Programmes Evolutifs
Cours n° 8 Conception et Programmation à Objets
Exposé de Système - Informatique et Réseau
UML - Présentation.
CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV EJB Entité Module Java Expert.
INTRODUCTION.
UML (Unified Modeling Langage)
ARM : un modèle réflexif asynchrone - J. Malenfant et S. Denier (LMO 2003, 3/02/2003) ARM : un modèle réflexif asynchrone pour les objets répartis et réactifs.
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Les contraintes d’integrité
Page de garde Introduction aux Design Patterns ISIA, Mars 2003
Active Directory Windows 2003 Server
Etude des Technologies du Web services
XML-Family Web Services Description Language W.S.D.L.
Initiation à la conception de systèmes d'information
Réalisée par :Samira RAHALI
© 2007 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Le Langage Java et les Exceptions Peter Van Roy Département dIngénierie Informatique,
[photo d'un système] Schéma ordonnancement XML Évaluation Code C Modélisation Solution GÉNÉRATEUR AUTOMATIQUE DE CODE pour OUTIL DE MODÉLISATION-IMPLANTATION.
Etude globale de système.
Techniques de test Boulanger Jean-Louis.
Structures de données IFT-2000
MOT Éditeur de modèles de connaissances par objets typés
Partie II Sémantique.
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI) Plate-forme.NET.
Technologie au cycle central
Programmation non procédurale Le projet ECOLE 2000
Sensibilisation a la modelisation
Patrons de conceptions de créations
Programmation Orientée Aspect sur le Framework .net
Travaux Pratiques Représentation des connaissances
1 Architecture orientée service SOA Architecture orientée service SOA (Service Oriented Architecture)
Cours Architecture des Systèmes Informatiques
INTRODUCTION.
Hatainville Les Moitiers d’Allonne – Tel : Website : stratic.online.com La démarche projet Mars 2001.
Algorithmique et programmation (1)‏
Créer des packages.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
CSI3525: Concepts des Langages de Programmation Notes # 13: Introduction au SmallTalk.
Enterprise Java Beans 3.0 Cours INF Bases de Données Hiver 2005, groupe 10 Stefan MARTINESCU.
C++ L’HERITAGE Fayçal BRAÏKI DUT INFORMATIQUE.
PHP objet Jérôme CUTRONA 10:13:27 Programmation Web
Initiation à la conception des systèmes d'informations
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
François CARCENAC,Frédéric BONIOL ONERA-DTIM Zoubir MAMMERI IRIT
Présentation AICHA REVEL INGENIEUR D’ÉTUDE STERIA DEPARTEMENT TRD
Struts.
Entity/Facet/Pattern Une application qui en a…
La programmation par objets Principes et concepts Etude de Smalltalk.
Cours MIAGE « Architectures Orientées Services »Henry Boccon-GibodCours MIAGE « Architectures Orientées Services »Henry Boccon-Gibod 1 Architectures Orientées.
22 Romain VERDIER Architecte FastConnect Yann SCHWARTZ Architecte/plombier Polom.
Web Services 17/01/2009.
1 Structure en MC Principes Stockage des données dans la mémoire volatile d’un ordinateur Problèmes Stockage temporaire «Petits» volumes de données Langages.
UML : DIAGRAMME DE CLASSES
TP D’UML Groupe N° 3.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 4 Support de cours rédigé par Bernard COFFIN Université.
Transcription de la présentation:

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

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 d’interprète Approches hybrides 4. Réflexion et Programmation par Aspect 5. AspectJ 6. Les références

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

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

1.c. Programmation par aspect Etape1: Départager les aspects Etape2: L’assemblage à travers la composition.

Exemple de AOP

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

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),

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

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

Le langage réflexif comporte deux niveaux : 1. Le niveau de base : 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 l’application (le “Quoi”)  2. Le niveau méta : Il décrit la manière d’interpréter le niveau de base (le “Comment”)

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.

Le langage réflexif: schéma

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

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

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 d’opérations

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

1.j. Hook C’est le morceau de bas niveau de code qui permet -d’exécuter une réification -donner la commande au méta objet associé.

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

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

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

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 d’effectuer une configuration Statique et Dynamique

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 d’interprète Approches hybrides 4. Réflexion et Programmation par Aspect 5. AspectJ 6. Les références

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

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 d’interprète Approches hybrides 4. Réflexion et Programmation par Aspect 5. AspectJ 6. Les références

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

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

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 d’interprète Approches hybrides 4. Réflexion et Programmation par Aspect 5. AspectJ 6. Les références

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

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 l’aspect de base.

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

La composition -Elle a lieu après la configuration -C’est l’application des règles de transformation à l’aspect de base -Elle produit un nouveau programme où les différents aspects sont fusionnés.

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 d’interprète Approches hybrides 4. Réflexion et Programmation par Aspect 5. AspectJ 6. Les références

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

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

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

La Composition -D’abord, l’interprète par défaut est étendu avec les définitions des métas objets -Puis, l’aspect de base est composé avec les aspects non fonctionnels par l’intermédiaire du lien méta

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 d’interprète Approches hybrides 4. Réflexion et Programmation par Aspect 5. AspectJ 6. Les références

Approches hybrides Transforme le programme et l’interprète,pour introduire les aspects non fonctionnels JAVASSIST est l’un des rares représentants de l’approche hybride

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 d’interprète Approches hybrides 4. Réflexion et Programmation par Aspect 5. AspectJ 6. Les références

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

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

4. Le Lien entre Réflexivité et AOP La programmation par aspect est un sous ensemble de la réflexion comportementale partielle La construction d’un 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

4. Le langage général Les causes de la difficulté de l’implémentation des aspects -diversité -leur large spectre La recherche se concentre sur la création d’un langage de programmation général: AspectJ

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 d’interprète Approches hybrides 4. Réflexion et Programmation par Aspect 5. AspectJ 6. Les références

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.

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 l’intermédiaire de mots-clés tels que before et after. Introduction Lexical: Ajouter des fonctionnalités a une classe.

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 d’interprète Approches hybrides 4. Réflexion et Programmation par Aspect 5. AspectJ 6. Les références

Les références 1. Le point sur la programmation par aspects Noury M. N. Bouraqadi- Saâdani—Thomas 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é

Les URL 1. MetaClassTalk http://csl.ensm-douai.fr/MetaclassTalk 2. Conférence sur AOP http://www2.parc.com/csl/projects/aop/workshops/icse98/ 3. International conference on Aspect-Oriented software development http://aosd.net/2006/index.php