Interaction Analysis in Aspect Oriented Models - Article de Katharina Mehner, Mattia Monga, Gabriele Taentzer

La page est créée Georges Lefevre
 
CONTINUER À LIRE
Interaction Analysis in Aspect Oriented Models - Article de Katharina Mehner, Mattia Monga, Gabriele Taentzer
Interaction Analysis in
             Aspect Oriented
             Models

             Article de Katharina Mehner, Mattia Monga,
             Gabriele Taentzer
             Présenté par: Arsène Sabas
             IFT6310

2008-02-11                                            1
Interaction Analysis in Aspect Oriented Models - Article de Katharina Mehner, Mattia Monga, Gabriele Taentzer
Plan de la présentation
              Introduction
              Contexte
              Contenu
                  Approche orienté-aspect (OA)
                  Modélisation des exigences par OA
                  Transformation de graph
                  Conclusion
              Discussion

2008-02-11                                             2
Interaction Analysis in Aspect Oriented Models - Article de Katharina Mehner, Mattia Monga, Gabriele Taentzer
Introduction

              Article publié
                   2006 IEEE International requirements
                    Engineering conference
              Auteurs:
                   Katharina Mehner (Siemens AG
                    Allemangne)
                   Mattia Monga (Milan University)
                   Gabriele Taentzer (Technical University of
                    Berlin)
2008-02-11                                                       3
Interaction Analysis in Aspect Oriented Models - Article de Katharina Mehner, Mattia Monga, Gabriele Taentzer
Contexte

              Motivations
                Redondance dans le code source dans les
                 classes écrites dans un langage objet.
                     synchronisation des accès aux ressources.
                     Optimisation de l’utilisation des ressources.
                     Sauvegarde de certaines données dans des
                      bases de données.
                     Traitement des exceptions.

                  Terme préoccupations transversales
                   (crosscutting concerns)

2008-02-11                                                            4
Contexte

              Motivations
                Implique que les classes sont peu
                 réutilisables et les applications sont
                 difficiles à maintenir.
                POA vient combler ces limites de POO.
                Cependant POA engendre certaines
                 interactions indésirables.
                Cet article présente une approche formelle
                 permettant de résoudre certaines de ces
                 interactions.

2008-02-11                                                5
Contexte

              Knuth’s Structured Programming with
               goto Statements.
                  ″A "calculus" of program transformations
                   is gradually emerging, a set of operations
                   which can be applied to programs without
                   rethinking the specific problem each time″
                   (p.283).

2008-02-11                                                      6
Contexte

              Knuth’s Structured Programming with
               goto Statements.
                  ″We understand complex things by
                   systematically breaking them into
                   successively simpler parts and
                   understanding how these parts fit together
                   locally″(291).

2008-02-11                                                      7
Approche orienté-aspect (OA)

               OA est une technologie qui permet de
                modéliser les préoccupations
                transversales. C’est un complément à
                OO.
               Un framework OA devrait fournir:
                   Un mécanisme de séparation.
                   Un mécanisme de composition.

2008-02-11                                         8
Approche orienté-aspect (OA)

             Terme                 Description
             Tangled code          Code embrouillé, code spaghetti.
             Crosscutting          Aspects (parties) de la programmation qui concernent plusieurs
             concerns              classe, et qui donc transcendent le modèle objet
                                   (synchronisation, logging, persistance…).
             Advice                Fragment de code destiné à être greffé.
             Joinpoint, pointcut   Infrastructure mise en place pour définir le lieu des greffes dans
                                   le code, et éventuellement quand elles doivent être appliquées
                                   ou pas.
             Aspect                Module définissant les greffons (advices) et leurs pointcuts.
             Weaver                Infrastructure mise en place pour greffer le code des aspects
                                   dans le code des méthodes de base. Le tissage peut avoir
                                    lieu avant, pendant ou après la compilation ou l’exécution.

2008-02-11                                                                                          9
Approche orienté-aspect (OA)

              Vue abstraite du concept de séparation des aspects
              des méthodes de base
2008-02-11                                                         10
Approche orienté-aspect (OA)

              OA est une méthode
               de développement
               logiciel horizontale.
              OO est une méthode
               de développement
               logiciel verticale.

                                       OA versus OO

2008-02-11                                            11
Modélisation des exigences
             par OA
              Objectif de l’article:
                   Analyser les interactions et détecter le
                    plutôt possible les potentielles
                    inconsistances en utilisant une méthode
                    formelle.
                   Les approches existantes sont soit
                    informelles, soit formelles mais pour
                    l’implémentation.

2008-02-11                                                     12
Modélisation des exigences
             par OA
              Étapes:
                  Construction du
                   diagramme des uses
                   case.

                  Construction du
                   diagramme de
                   classes.

2008-02-11                                13
Modélisation des exigences
             par OA
              Étapes:
                  Construction des
                   diagrammes
                   d’activités.

                                               Diagramme d’activités du
                  Spécification des pré       use case ″Buy flight″
                   et post-conditions

                                           Pré et post condition de l’activité
                                           ″Create custumer″

2008-02-11                                                                       14
Modélisation des exigences
             par OA
              Étapes:
                Un advice est modélisé par un use case
                 avec des diagrammes d’activités et des
                 pré, post conditions.
                Les pointcuts sont les activités. Chaque
                 activité peut représentée un joint point.
                Les aspects représentent les exigences
                 transversales.
                Ex: ″earn bonus″ est un aspect (″buy
                 flight″ et ″rent car″).

2008-02-11                                                   15
Modélisation des exigences
             par OA
              Étapes:
                  Les modificateurs
                   before, after, replace
                   indiquent quand est-
                   ce que le tissage a
                   lieu.
                  ″earn bonus″ est
                   avant ″Pay flight″ et
                   ″Pay rental″
                  Leur pointcut est
                   ″ Pay″.

2008-02-11                                  16
Modélisation des exigences
             par OA
              Interactions lors du tissage
                 Deux sortes d’interactions:
                      A2 est en conflit avec A1 si A2 after A1 ne
                       peut être réalisé car pre(A2) sont violées par
                       post(A1).
                      A2 dépends de A1 si un output de A1 est
                       requis par A2 ou A1 supprime quelque chose
                       interdit par A2.
                   Il peut y avoir des interactions entre
                    aspects, et entre aspects et méthodes de
                    base.
2008-02-11                                                          17
Transformation de graphe

              Théorie:
                  Un graphe est défini par des ensembles de
                   nœuds et d’arcs, et deux fonctions (source
                   et cible) qui apparient les arcs sur les
                   nœuds.
                  Une transformation de graphe est une
                   modification basée sur des règles d’un
                   graphe G en un graphe H.

2008-02-11                                                  18
Transformation de graphe

              Théorie:
                  Les règles sont exprimées par deux
                   graphes (L,R) où L = pré-conditions; R=
                   post-conditions.
                  Une phase de transformation de graphe
                   s’exécute en trouvant un appariement m
                   de L relatif à l’actuelle instance G tq m
                   préserve la structure et la compatibilité du
                   type G.

2008-02-11                                                        19
Transformation de graphe

              Théorie:
                  Une phase de transformation se fait en
                   deux étapes:
                     Construire D := G\m(\L∩R), ie supprimer tous
                      les items du graphe qui sont à supprimer.
                     Construire H:= D∪(R\(L∩R)), ie créer tous les
                      items du graphe qui sont à créer.
                  Une transformation de graphe consiste en
                   une ou plusieurs phases de transformation.

2008-02-11                                                       20
Transformation de graphe

              Théorie:
                 Des conditions positives ou négatives
                  (NAC) peuvent être appliquées.
                 Un système de transformation de graphe
                  (GTS) est un ensemble de règles et de
                  type de graphe.
                 AGG (Attribut graph Grammar) peut être
                  utilisé pour spécifier les systèmes de
                  transformation de graphe et analyser leurs
                  règles.

2008-02-11                                                 21
Transformation de graphe

              Analyse des conflits et des
               dépendances.
                  Utilise les paires critiques.
                  Une paire critique est une paire d’étapes
                   de transformation                     qui sont
                   en conflits.
                                  sont en conflit ssi p1 peut
                   désactiver p2 ou p2 peut désactiver p1.

2008-02-11                                                          22
Transformation de graphe

              Analyse des conflits et des
               dépendances.
                  Différents types de conflit:
                     Delete/use: p1 supprime un objet du graphe
                      utilisé par m2.
                     Produce/forbid: p1 produit une structure de
                      graphe qu’un NAC de p2 interdit.
                     Change/use: p1 change la valeur d’un attribut
                      d’un objet du graphe qui est utilisé par m2.

2008-02-11                                                       23
Transformation de graphe

              Analyse des conflits et des
               dépendances.
                  Différents types de dépendance:
                     Produce/use: p1 produit un objet du graphe
                      nécessaire à m2 de p2.
                     Delete/forbid: p1 supprime des objets du
                      graphe qu’un NAC de p2 interdit.
                     Change/use: p1 change l’attribut d’un objet
                      du graphe qui est utilisé par m2 de p2.

2008-02-11                                                          24
Transformation de graphe

              Passage des modèles OA aux graphes.
                  Les graphes peuvent être utilisés comme
                   une représentation abstraites des
                   diagrammes.
                  Les graphes apparaissent à deux niveaux:
                     Niveau type qui représente les diagrammes
                      de classes: graphe de types (TG).
                     Niveau instance qui représente les
                      diagrammes objets.

2008-02-11                                                        25
Transformation de graphe

              Passage des modèles OA aux graphes.
                  Les pré et post conditions des activités
                   sont représentées par les règles.

2008-02-11                                                    26
Transformation de graphe

              Analyse des
               interactions
                  Les paires critiques
                   sont utilisées pour
                   détecter les
                   potentiels conflits et
                   dépendances entre
                   aspects, et aspects
                   et méthodes de
                   base.

2008-02-11                                  27
Transformation de graphe

              Application à
               l’agence de voyage
               avec AGG.
                   Détection de conflits
                      Une entrée de
                       colonne A
                       désactive une
                       entrée de ligne B
                       si aij > 0: B est en
                       conflit avec A.

2008-02-11                                    28
Transformation de graphe

              Application à
               l’agence de voyage
               avec AGG.
                   Détection de
                    dépendances
                      Une entrée de
                       colonne A active
                       une entrée de
                       ligne B si aij > 0: B
                       dépends de A.

2008-02-11                                     29
Conclusion

              L’article décrit une approche formelle
               basée sur la théorie de transformation
               de graphe pour analyser et détecter les
               conflits et dépendances potentiels entre
               aspects, et aspects et méthodes de
               base.

2008-02-11                                                30
Discussion

              Approche pertinente pour la validation et
               la vérification des systèmes logiciels.
              Ne détermine pas toutes les interactions
               non désirables.
              Pas de projection sur le future de la part
               des auteurs.
              Manque un peu d’explication sur
               l’application des règles.

2008-02-11                                              31
2008-02-11   32
Vous pouvez aussi lire