16
La Programmation Orientée Aspect Par: Sari Meriem 1 UNIVERSITE de MOHAMED CHERIF MESAADIA SOUK-AHRAS Exposé sur:

Programmation orienté aspect

Embed Size (px)

Citation preview

Page 1: Programmation orienté aspect

1

La Programmation Orientée Aspect

Par: Sari Meriem

UNIVERSITE de MOHAMED CHERIF MESAADIASOUK-AHRAS

Exposé sur:

Page 2: Programmation orienté aspect

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

Page 3: Programmation orienté aspect

Introduction

3Sari Meriem Programmation Orientée Aspect 1ére Année Master GL

Page 4: Programmation orienté aspect

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

Page 5: Programmation orienté aspect

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

Page 6: Programmation orienté aspect

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

Page 7: Programmation orienté aspect

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

Page 8: Programmation orienté aspect

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

Page 9: Programmation orienté aspect

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

Page 10: Programmation orienté aspect

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

Page 11: Programmation orienté aspect

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

Page 12: Programmation orienté aspect

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

Page 13: Programmation orienté aspect

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

Page 14: Programmation orienté aspect

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

Page 15: Programmation orienté aspect

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

Page 16: Programmation orienté aspect

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