Analyses et vérifications des programmes à aspects

par Simplice Djoko Djoko

Thèse de doctorat en Informatique et applications

Sous la direction de Pascal Fradet et de Rémi Douence.

Soutenue en 2009

à Nantes .

    mots clés mots clés


  • Résumé

    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 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 (p. 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. 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

  • Titre traduit

    Analyses and verification of aspect oriented programming


  • 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.

Consulter en bibliothèque

La version de soutenance existe sous forme papier

Informations

  • Détails : 1 vol. (151 f.)
  • Annexes : Bibliogr. f. 147-151 [57 réf.]

Où se trouve cette thèse ?

  • Bibliothèque : Université de Nantes. Service commun de la documentation. BU Sciences.
  • Disponible pour le PEB
Voir dans le Sudoc, catalogue collectif des bibliothèques de l'enseignement supérieur et de la recherche.