Analyses et vérification des programmes à aspects - TEL - Thèses en ligne
Thèse Année : 2009

Analysis of aspect-oriented programs

Analyses et vérification des programmes à aspects

Résumé

Aspect oriented programming is a paradigm aiming at improving the separation of concerns. Typically, an aspect is defined for a concern that can not be isolated in a module. Aspects are then added to the base program through an automatic process called weaving. However, the expressiveness of general aspect languages allows to completely change the semantics of the base program (e.g., an aspect may insert arbitrary code). This jeopardizes the benefits (readability, maintainability, reusability, etc.) expected from a better modularisation of concerns. In particular, it may become impossible to reason on the base program without examining the woven program. This thesis provides an answer to the above problem by defining categories of aspects whose semantic impact remains under control. For each category of aspects, we specify the class of properties of the base program that is preserved by weaving. The membership of an aspect to a category is guaranteed by construction through aspect languages dedicated to each category. The use of these languages ensures that weaving preserves all properties of the corresponding class. These properties are represented as subsets of LTL and CTL*. We formally prove that, for any program, the weaving of any aspect in a category preserves any property of the related class. These languages and categories are defined in a formal framework independent of any base or aspect language. The expressiveness of that framework is shown by providing the semantics of complex primitives of aspect languages such as AspectJ and CaesarJ, and by proving the correctness of a standard aspect program transformation.
La programmation par aspects est un paradigme de programmation qui permet de mieux séparer les préoccupations d'une application. Un aspect est défini pour chaque préoccupation qui ne peut pas être isolée dans un module. Les aspects sont ensuite ajoutés au programme de base par un processus automatique appelé tissage. Cependant, l'expressivité des langages d'aspect généraux permet de modifier totalement la sémantique du programme de base (par ex., un aspect peut remplacer certains appels de méthode par du code arbitraire). Ce comportement peut entraîner la perte des avantages (lisibilité, maintenabilité, réutilisabilité, etc.) d'une meilleure modularisation des préoccupations. Il devient impossible de raisonner sur le programme de base sans regarder le programme tissé. Cette thèse apporte une réponse aux problèmes ci-dessus en définissant des catégories d'aspects dont l'impact sur la sémantique du programme de base reste sous contrôle. Pour chaque catégorie d'aspects, nous déterminons l'ensemble des propriétés du programme de base qui est préservé par tissage. L'appartenance d'un aspect à une catégorie est garantie par construction grâce à des langages d'aspect dédiés pour chaque catégorie. L'utilisation de ces langages assure que le tissage préservera l'ensemble des propriétés associé à la catégorie concernée. Les propriétés préservées sont représentées comme des sous ensembles de LTL et de CTL*. Nous prouvons formellement que quelque soit le programme de base, le tissage de n'importe quel aspect d'une catégorie préserve les propriétés de la catégorie correspondante. Ces langages et catégories sont définis dans un cadre formel indépendant de tout langage de base ou d'aspect. L'expressivité de ce cadre est montrée en décrivant des primitives complexes de langages d'aspect comme AspectJ et CaesarJ et en effectuant une preuve de correction de transformation d'aspect.
Fichier principal
Vignette du fichier
these_1_.pdf (861.14 Ko) Télécharger le fichier
Loading...

Dates et versions

tel-00752116 , version 1 (15-11-2012)

Identifiants

  • HAL Id : tel-00752116 , version 1

Citer

Simplice Djoko Djoko. Analyses et vérification des programmes à aspects. Langage de programmation [cs.PL]. Université de Nantes, 2009. Français. ⟨NNT : ⟩. ⟨tel-00752116⟩
172 Consultations
198 Téléchargements

Partager

More