Upload
meriemsari
View
18
Download
3
Embed Size (px)
Citation preview
1
La Programmation Orientée Aspect
Par: Sari Meriem
UNIVERSITE de MOHAMED CHERIF MESAADIASOUK-AHRAS
Exposé sur:
Introduction
2
L'approche orientée objet a procuré des bénéfices indénombrables dans la communauté génie logicielle.
Elle offre un modèle de programmation riche très proche du monde réel.
Ses limites et échoue face à la modularisation des préoccupations transversales au système (la sécurité, la gestion transactionnelle de la persistance, la synchronisation, le logging…).
Ces modules enchevêtrées avec les modules métiers du système.
Ce phénomène dégrade considérablement le maintien, la compréhension et l'évolutivité du code.
Sari Meriem Programmation Orientée Aspect 1ére Année Master GL
Introduction
3Sari Meriem Programmation Orientée Aspect 1ére Année Master GL
Introduction
4
La programmation orientée aspect intervient pour capturer des préoccupations transversales en utilisant des aspects.
Sari Meriem Programmation Orientée Aspect 1ére Année Master GL
Définitions
5
La programmation orientée aspect (POA) est un paradigme de programmation qui permet de traiter séparément les préoccupations transversales.
Dit en anglais: Aspect-Oriented Programming (AOP).
Elle n'est pas liée à un langage de programmation en particulier.
Elle peut être mise en œuvre aussi bien avec un langage orienté objet (Python) qu'avec un langage procédural (C).
Sari Meriem Programmation Orientée Aspect 1ére Année Master GL
Définitions
6
Les préoccupations transversales sont les fonctionnalités dites non métiers.
L'enchevêtrement du code est provoqué quand un module est implémenté pour traiter plusieurs préoccupations en même temps.
Sari Meriem Programmation Orientée Aspect 1ére Année Master GL
Définitions
7
L'éparpillement du code survient quand une préoccupation est implémentée dans plusieurs modules.
Sari Meriem Programmation Orientée Aspect 1ére Année Master GL
Concepts
8
Aspect.
Point de jonction (joinpoint).
Coupe (pointcut).
Code advice (advice code).
Tissage (weaving).
Sari Meriem Programmation Orientée Aspect 1ére Année Master GL
Aspect
9
Un aspect est une entité logicielle qui capture une fonctionnalité transversale à une application.
Les trois eléments principaux définis dans un aspect sont:
Les coupes définissent où l'aspect doit être intégré dans une application. Les codes advice définissent ce que fait l'aspect (le quoi). Le mécanisme d'introduction permet d'ajouter du contenu structurel dans une application.
Sari Meriem Programmation Orientée Aspect 1ére Année Master GL
Point de jonction
10
Un point de jonction est un point dans le flot de contrôle d'un programme dans lequel un ou plusieurs aspects peuvent être appliqués.
Les points de jonction sont groupés en fonction de leur type.
Un point de jonction désigne un moment de l'exécution.
Sari Meriem Programmation Orientée Aspect 1ére Année Master GL
Coupe
11
Une coupe sélectionne un ensemble de points de jonction.
Chaque langage définit sa propre syntaxe.
Une coupe est définie avec un langage de patterns qui permet d'indiquer où l'aspect doit être intégré dans l'application en utilisant des quantificateurs, des opérateurs booléen et des caractères joker…
Sari Meriem Programmation Orientée Aspect 1ére Année Master GL
Code advice
12
Un code advice est un bloc de code définissant le comportement d'un aspect.
Un code advice est un bloc d'instruction qui spécifie le comportement de l'aspect.
Un code advice est toujours associé à une coupe ou plus exactement aux points de jonctions sélectionnés par cette coupe.
En effet, un code advice n'est jamais appelé manuellement.
Un code advice peut être exécuté selon trois modes : avant, après, ou autour d'un point de jonction.
Sari Meriem Programmation Orientée Aspect 1ére Année Master GL
Tissage
13
Le tissage (weaving) est le processus qui prends en entrée un ensemble d'aspects et une application de base et fournit en sortie une application dont le comportement et la structure sont étendus par les aspects.
Sari Meriem Programmation Orientée Aspect 1ére Année Master GL
Avantages
14
Maintenance aisée.
Meilleure réutilisation.
Main de productivité.
Amélioration de la qualité du code.
Sari Meriem Programmation Orientée Aspect 1ére Année Master GL
Inconvénients
15
La génération automatique de code peut produire un code qui peut être difficile à analyser.
Sari Meriem Programmation Orientée Aspect 1ére Année Master GL
Stratégies d’Implémentation
16
Le tissage statique par instrumentation du code source ou du pseudo-code machine intermédiaire .
Le tissage dynamique lors de l'exécution du logiciel.
Sari Meriem Programmation Orientée Aspect 1ére Année Master GL