La programmation orientée aspect ou POA (en anglais, aspect oriented programming ou AOP) est un paradigme de programmation qui permet de traiter séparément les préoccupations transversales (en anglais, cross-cutting concerns), qui relèvent souvent de la technique, des préoccupations métier, qui constituent le cœur d'une application. Un exemple classique d'utilisation est la journalisation, mais certains principes architecturaux ou modèles de conception peuvent être implémentés à l'aide de ce paradigme de programmation, comme l'inversion de contrôle. La programmation orientée aspect est bien une technique transversale (paradigme) et n'est pas liée à un langage de programmation en particulier mais peut être mise en œuvre aussi bien avec un langage orienté objet comme Python qu'avec un langage procédural comme le C, le seul prérequis étant l'existence d'un tisseur d'aspect pour le langage cible (cf. § Tisseurs d'aspects). Les concepts de la programmation orientée aspect ont été formulés par Gregor Kiczales et son équipe, qui travaillaient alors pour le Xerox PARC. Le paradigme est breveté par eux-mêmes aux États-Unis en 1999. Les techniques actuelles de conception logicielles et de programmation amènent à découper un logiciel en modules logiciels a priori indépendants les uns des autres car gérant des aspects différents du système conçu. Certains de ces modules implémentent soit des tâches métier, soit des tâches plus applicatives comme l'authentification des utilisateurs ou encore offrant des services techniques comme la génération de trace ou le multi-threading. Ces modules représentent alors au même niveau d'abstraction, différentes considérations (différents aspects) d'une application, le plus souvent celui de la couche métier. Liste non exhaustive d'exemples de modules : gestion des utilisateurs (authentification) ; archivage des données (persistance) ; programmation concurrente (multi-threading) ; information pendant l'exécution du logiciel (historique des événements, trace) ; Dans la pratique, les considérations techniques que sont censés implémenter les modules non seulement s'entrecroisent (par exemple la gestion des utilisateurs fait aussi appel à la génération de trace) mais sont de plus réparties dans la couche métier : c'est l'intrication ou entrecroisement des aspects techniques.

À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.
Cours associés (3)
CS-112(i): Object oriented programming
L'objectif de ce cours est de développer des compétences de base en programmation. L'accent sera mis sur l'approche orientée-objet laquelle renforce la réutilisabilité, la maintenabilité et la fiabili
BIO-210: Applied software engineering for life sciences
We learn and apply software engineering principles to program projects in Python. Projects cover problems in life sciences, and will be developed over the course of the semester.
CS-207: System oriented programming
Cours de programmation en langage C se focalisant sur l'utilisation des ressources système, en particulier la gestion de la mémoire (pointeurs).
Séances de cours associées (33)
Théorème de Green : Démonstration et applications
Couvre la démonstration et les applications du théorème de Green dans les champs vectoriels.
Dynamique des fluides: Équations d'Euler
Couvre les équations d'Euler pour la dynamique des fluides et les lois de conservation appliquées.
Programmation orientée objet : comprendre l'héritage en C++
Explique l'héritage dans la programmation orientée objet C ++, couvrant la syntaxe, le contrôle d'accès et des exemples d'implémentation pratiques.
Afficher plus
Publications associées (64)

Systematic extraction of a control-oriented model from perturbative experiments and SOLPS-ITER for emission front control in TCV

Artur Perek, Mirko Wensing

Systematic extraction of locally valid dynamic models from experiments is necessary for controller design and the validation of high fidelity models. This paper describes the extraction of a dynamic model in the form of a transfer function, giving the dyna ...
2022

Spatial Layout Optimization. Guideline: Analysis

Yves Pedrazzini, Lesslie Astrid Herrera Quiroz

The main objective of this project is to generate guidance for settlement planning on the optimisation of spatial designs in terms of: zoning, densification/decongestion, morphology of the built environment and strategic planning of public open space. Simi ...
EPFL LASUR and GTH UNCHR2022

Impersonating Chatbots in a Code Review Exercise to Teach Software Engineering Best Practices

Denis Gillet, Maria Jesus Rodriguez Triana, Juan Carlos Farah, Sandy Ingram, Vandit Sharma

Over the past decade, the use of chatbots for educational purposes has gained considerable traction. A similar trend has been observed in social coding platforms, where automated agents support software developers with tasks such as performing code reviews ...
IEEE2022
Afficher plus
Concepts associés (16)
Séparation des préoccupations
La séparation des préoccupations (ou séparation des responsabilités), traduction du concept d’informatique théorique separation of concerns (SoC) en anglais, est un principe de conception visant à segmenter un programme informatique en plusieurs parties, afin que chacune d’entre elles isole et gère un aspect précis de la problématique générale. C'est une bonne pratique largement reconnue et mise en œuvre dans l'ingénierie logicielle.
Comparison of programming languages
Programming languages are used for controlling the behavior of a machine (often a computer). Like natural languages, programming languages follow rules for syntax and semantics. There are thousands of programming languages and new ones are created every year. Few languages ever become sufficiently popular that they are used by more than a few people, but professional programmers may use dozens of languages in a career. Most programming languages are not standardized by an international (or national) standard, even widely used ones, such as Perl or Standard ML (despite the name).
Groovy (langage)
Groovy est le nom d'un langage de programmation orienté objet destiné à la plate-forme Java. Il constitue un substitut au langage Java pour cette plate-forme et est inspiré de Python, Ruby et Smalltalk. Il est l'objet de la spécification JSR 241. Groovy utilise une syntaxe très proche de Java, avec des accolades, et est directement compilé, soit à la volée dynamiquement, soit classiquement avec un compilateur en bytecode. Groovy s'intègre et est entièrement compatible avec la JVM étant donné que le bytecode est le même.
Afficher plus

Graph Chatbot

Chattez avec Graph Search

Posez n’importe quelle question sur les cours, conférences, exercices, recherches, actualités, etc. de l’EPFL ou essayez les exemples de questions ci-dessous.

AVERTISSEMENT : Le chatbot Graph n'est pas programmé pour fournir des réponses explicites ou catégoriques à vos questions. Il transforme plutôt vos questions en demandes API qui sont distribuées aux différents services informatiques officiellement administrés par l'EPFL. Son but est uniquement de collecter et de recommander des références pertinentes à des contenus que vous pouvez explorer pour vous aider à répondre à vos questions.