La programmation par aspects (
aspect-oriented programming
) est un style de développement logiciel qui est apparu dans la seconde moitié des années 1990. Elle se situe dans une lignée de styles de programmation qui ont été proposés, au fil de l’évolution de l’informatique, pour améliorer la structuration des programmes. L’idée sous-jacente est que, plus un langage informatique permet de structurer les programmes, plus la conception de ces programmes, leur écriture, leur compréhension, leur maintenance et leur évolution en seront facilitées. Parmi les prédécesseurs du style de programmation par aspects, nous pouvons citer la programmation fonctionnelle, la programmation procédurale, la programmation modulaire, la programmation objet et la programmation réflexive. Chacun de ces styles a apporté des concepts qui permettent de rendre la structure d’un programme plus claire et lisible. De même, la programmation par aspects capitalise sur l’expérience acquise avec ces styles de programmation et permet de faire progresser la structuration des programmes informatiques. La programmation par aspects ne remet pas en cause les styles de programmation l’ayant précédée. Au contraire, les langages de programmation par aspects continuent de s’appuyer sur les styles existants, notamment et surtout la programmation objet. Elle les complète en améliorant leur capacité à écrire des programmes plus modulaires et mieux structurés.
La programmation par aspects est née du constat que, dans de nombreux programmes informatiques, l’écriture de certaines fonctionnalités s’articule mal avec le reste du programme et conduit à du code qui est peu lisible, mal structuré et difficile à maintenir. Ces fonctionnalités sont alors dites transverses au reste du programme. La programmation par aspects s’appuie sur ce constat et propose la notion d’aspect qui est un nouvel élément de structuration des programmes informatiques qui permet d’écrire les fonctionnalités transverses de façon plus claire et mieux structurée, rendant ainsi le programme plus facilement maintenable.
Face au constat de l’absence de concepts pour la prise en compte des fonctionnalités transverses, la programmation par aspects aborde la problématique de savoir quels sont les bons artefacts de programmation qui permettent de retranscrire les fonctionnalités transverses et surtout comment ceux-ci peuvent être intégrés avec le reste du programme. Pour cela, la programmation par aspects définit le concept d’aspect comme étant constitué d’un ensemble de coupes et de greffons. Les coupes définissent le caractère transverse de l’aspect et permettent l’intégration de l’aspect avec le reste du programme, tandis que les greffons définissent le comportement de l’aspect.
Dans...