Introduction aux concepts et applications de l'orientation aspect (AOP)

Résumé

Présenté dans le cadre des séminaires de l'AGIL du département d'informatique et de génie logiciel de l'Université Laval.

Contexte

La programmation orientée aspect (AOP) est un paradigme de programmation visant à séparer les préoccupations transverses.

Selon les principes et les idéaux de la programmation orientée objet (OOP), chaque tâche et chaque concept devraient être encapsulés (groupés) dans une ou quelques classes. Il y a cependant un ensemble de préoccupations qui sont difficilement, voire même impossibles, à regrouper. Ces préoccupations, dites transverses, sont répandues et contaminent une grande partie du système, augmentant le couplage et réduisant la cohésion. La journalisation (logging) ou l'authentification en sont de bons exemples.

L'AOP a été créée afin de pallier aux déficiences de la programmation-objet face à ces préoccupations transverses. Le but de l'AOP est de faciliter le regroupement (modularité) des

Première partie: Introduction, motivations et limites

La première partie de ce séminaire visera à introduire l'AOP. L'accent sera davantage mis sur les concepts de base ainsi que sur les raisons qui peuvent motiver ou non l'utilisation de l'AOP.

Cette partie vise à répondre aux questions suivantes:

  1. Qu'est-ce que l'AOP (concepts de base) ?
  2. Pourquoi l'AOP (motivations) ?
  3. Qui utilise l'AOP (recherches et aspects pratiques) ?
  4. Quand utiliser l'AOP (applications) ?
  5. Quand ne pas utiliser l'AOP (limites) ?

Deuxième partie:Impacts de l'AOP sur l'architecture et la qualité du logiciel

L'AOP a été créée afin de répondre à des problèmes rencontrés en architecture logicielle (modularité, encapsulation, couplage faible, etc.). Ces problèmes architecturaux ont, bien entendu, des effets négatifs sur la qualité du logiciel (couplage, cohésion, maintenabilité, simplicité, etc.).

Dans un premier temps, nous tenterons d'expliquer les effets de l'AOP sur diverses métriques ainsi que sur le design du logiciel. La complémentarité de l'AOP avec les techniques et principes OO comme les design patterns sera également abordée.

Finalement, nous discuterons des liens entre l'AOP et les tests. En fait, l'AOP permet de simplifier et de faciliter l'écriture et l'automatisation de plusieurs types de tests. Nous verrons que l'AOP peut également avoir des impacts négatifs sur la qualité. Nous aborderons, notamment, les difficultés pour tester les aspects. Nous proposerons quelques techniques et bonnes pratiques afin de faciliter et systématiser ces tests. Nous verrons d'ailleurs en quoi la recherche peut aider dans ce domaine.

Téléchargements

Historique

  1. 25 juin 2009: Université Laval, Québec