SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
École des Mines de Nantes

  Détection et correction
automatique des défauts de
      conception dans
 les architectures à objets

      Yann-Gaël Guéhéneuc
               Informatique
        Département informatique
     École des Mines de Nantes – OTI
Environnement

       n Équipe   Objets, Composants et Modèles
         – Langages à objets
         – Génie logiciel + Méta-modélisation
         – Composants, Aspects, Systèmes…
       n Avec Hervé Albin-Amiot
       n Sous la direction du Pr. Pierre Cointe
       + Équipe Contraintes
       n En collaboration avec OTI :     Object Technology
                                         International Inc., Canada
2/23
Aujourd’hui

       n Vulgariser   sans simplifier…
         – Une voiture !


       n Détectionet correction
        automatique des
        défauts de conception dans les
        architectures à objets
3/23
Détection et correction
                                        automatique des défauts
                                        de conception dans les

       Architectures à objets           architectures à objets




       n Langages   à objets « à classes »
         – Une classe = un moule : la classe Voiture
         – Un objet = une voiture : l’objet clio

         – Une classe = un ensemble d’attributs : un
           moteur et quatre roue s
         – Une classe = un ensemble de méthodes :
           avancer(), tourner()…

4/23
         ⇒ Des relations entre classes
Détection et correction
                                         automatique des défauts
                                         de conception dans les

       Architectures à objets            architectures à objets




       n Un   programme à objets
         – Un ensemble de classes : Voiture, Moteur,
           Roue, Volant , TrainDeRoues…
         – Et leurs méthodes : avancer(),
           faireAvancer(), tourner()…
                     (Et les relations correspondantes)
         – Un ensemble d’objets communicants :
          clio.moteur.faireAvancer(roueAG)
          clio.moteur.faireAvancer(roueAD)
5/23      …
Détection et correction
                                                                   automatique des défauts
                                                                   de conception dans les

       Architectures à objets                                      architectures à objets




       n Une           représentation


                  Voiture
                  Voiture                     Moteur                          Roue
        monMoteur:Moteur         1
        roueAG:Roue                  ...                          ...
        roueAD:Roue
        avancer()                                                 avancer()
        avancer() direction)         faireAvancer(Roue uneRoue)
        tourner(int                                               tourner(int direction)
        tourner(int direction)
                                                                                   4..5




6/23
Détection et correction
                                       automatique des défauts
                                       de conception dans les

       Défauts de conception           architectures à objets




       n Problème
         – Choix de conception
         – Choix et nombre des classes
         – Choix et nombre des relations




7/23
Détection et correction
                                                                                           automatique des défauts
                                                                                           de conception dans les

        Défauts de conception                                                              architectures à objets




                                          TrainDeRoues
                                1
                                    ...

                                    tourner(int direction)
                                                                              2              Roue

                                                                                  ...
                 Voiture                      Moteur                              avancer()
                                1                                                 tourner(int direction)
       ...                          ...
       avancer()
       tourner(int direction)       faireAvancer(Roue uneRoue)



                                                                           RoueAG                          RoueAD
                                                                 1
                                                                     ...                             ...

                                                                     ...                             ...


                                                                                                              1

8/23
Détection et correction
                                   automatique des défauts
                                   de conception dans les

       Défauts de conception       architectures à objets




       n Solutions
         – Patrons de conception
           •   Un nom
           •   Un problème
           •   Une solution
           •   Les conséquences
         – « Anti-patrons »
         – Défauts de conception

9/23
Détection et correction
                                           automatique des défauts
                                           de conception dans les

        Défauts de conception              architectures à objets




        n Le   patron de conception Composite
          – Problème : composer des objets sous
            forme d’arbre « tout – parties », de telle
            sorte que le traitement du tout et des
            parties soit uniforme




10/23
Détection et correction
                                      automatique des défauts
                                      de conception dans les

        Défauts de conception         architectures à objets




        n Le   patron de conception Composite
          – Solution :




11/23
Détection et correction
                                                   automatique des défauts
                                                   de conception dans les

        Défauts de conception                      architectures à objets




        n Le   patron de conception Composite
          – Les conséquences :
               • Défini des hiérarchies de primitives et de
                 composites
               • Là où le client attend une primitive, il peut aussi
                 recevoir un composite
               • Rend le client plus simple
               • Rend l’ajout de primitives simple
               • Peut rendre la conception trop générale
               •…
12/23
Détection et correction
                                           automatique des défauts
                                           de conception dans les

        Détection et correction            architectures à objets




        n Détecter   et corriger ⇒ Modéliser !

        n Modéliser   les patrons
          – Quoi modéliser ?
            • Problème
            • Solution
            • Compromis
          – Comment modéliser ?
13/23
            • Méta-modélisation = un modèle de modèles
Détection et correction
                                         automatique des défauts
                                         de conception dans les

        Détection et correction          architectures à objets




        n Modéliser    la solution des patrons
          – Classes
          – Attributs
          – Méthodes
          ⇒ Relations
        n Dans   les architectures à objets ?
          – Pareil !

14/23
Détection et correction
                                  automatique des défauts
                                  de conception dans les

        Détection et correction   architectures à objets




        n Notre   méta-modèle




15/23
Détection et correction
                                      automatique des défauts
                                      de conception dans les

        Détection et correction       architectures à objets




        n Après   la modélisation ?
          – Détection
          – Génération
          – Correction




16/23
Détection et correction
                                              automatique des défauts
                                              de conception dans les

        Automatique                           architectures à objets




        n Un   modèle de patron sait
          – Se détecter dans un modèle d’une
            architecture à objets
               • Arc consistance
          – Se détecter sous forme dégradée
               • Qu’est-ce qu’une forme dégradée ?
               • Programmation par contraintes avec
                 explications
          ⇒ Outil Ptidej
17/23
Détection et correction
                                         automatique des défauts
                                         de conception dans les

        Automatique                      architectures à objets




        n Un   modèle de patron sait
          – Générer du code qui lui corresponde
               • Java
               • Claire
          ⇒ Outil PatternsBox (Hervé Albin-Amiot)

          – Corriger un modèle d’architecture à objets
               • Code ou modèle ?
          ⇒ Outil Ptidej + JavaXL (Hervé Albin-Amiot)
18/23
Détection et correction
                                                                                            automatique des défauts
                                                                                            de conception dans les

        Automatique                                                                         architectures à objets




                                                                                         Composite !
                                           TrainDeRoues
                                 1
                                     ...

                                     tourner(int direction)
                                                                               2               Roue

                                                                                   ...
                  Voiture                      Moteur                              avancer()
                                 1                                                 tourner(int direction)
        ...                          ...
        avancer()
        tourner(int direction)       faireAvancer(Roue uneRoue)



                                                                            RoueAG                          RoueAD
                                                                  1
                                                                      ...                             ...

                                                                      ...                             ...

                                                                                                               1

19/23
Détection et correction
                                                                                                              automatique des défauts
                                                                                                              de conception dans les

        Automatique                                                                                           architectures à objets




                                                                                                      1

                     Voiture                             Moteur                               Direction
                                         1                                                                           n
           ensembleDirection:Direction       ...

           avancer()                                                                 avancer()
                                             faireAvancer(Roue uneRoue)
           tourner(int direction)                                                    tourner(int direction)




                                                                             Roue                             TrainDeRoues

                                                                  ...                                   roues:Ensemble

                                                                  avancer()                             avancer()
                                                                  tourner(int direction)                tourner(int direction)




                                                          RoueAG                              RoueAD

                                                   ...                               ...

                                                   ...                               ...
20/23
Travaux en cours

        n Définitions   des relations entre classes ?

        n Affinagede la génération et de la
         détection des relations entre classes

        n Modélisation    de l’exécution des
         programmes
          ⇒ Caffeine (machine virtuelle + Prolog)
21/23
Travaux futurs

        n Formalisationdes « anti-patrons » et
         des défauts de conception

        n Intégration
                  dans un environnement de
         développement intégré/incrémental

        n Mise   à l’échelle + études de cas
22/23
Merci !
        n   Plus d’informations, des références… ?
            –   Yann-Gaël Guéhéneuc : guehene@emn.fr
            –   Hervé Albin-Amiot : albin@emn.fr
            –   Équipe OCM : ocm@emn.fr
            –   Équipe Contraintes : contraintes@emn.fr
            +   L’Internet…




23/23

Más contenido relacionado

Destacado

Product Compliance Software Vendor Sourcing Guide
Product Compliance Software Vendor Sourcing Guide Product Compliance Software Vendor Sourcing Guide
Product Compliance Software Vendor Sourcing Guide Matt Whitteker
 
Vantieuhoc.com de thi ngu van lop 6 hoc ki 2 de 3
Vantieuhoc.com   de thi ngu van lop 6  hoc ki 2 de 3Vantieuhoc.com   de thi ngu van lop 6  hoc ki 2 de 3
Vantieuhoc.com de thi ngu van lop 6 hoc ki 2 de 3Dân Phạm Việt
 
Desarrollo de la computadora
Desarrollo de la computadoraDesarrollo de la computadora
Desarrollo de la computadoradaaanyta
 
الرياضة صحة وعافية
الرياضة صحة وعافيةالرياضة صحة وعافية
الرياضة صحة وعافيةHowraa Zoayed
 
المنح الفكرية في شرح المقدمة الجزرية لـ ملا على القاري
المنح الفكرية في شرح المقدمة الجزرية لـ ملا على القاريالمنح الفكرية في شرح المقدمة الجزرية لـ ملا على القاري
المنح الفكرية في شرح المقدمة الجزرية لـ ملا على القاريسمير بسيوني
 
Enlace covalente Jordan carrasco
Enlace covalente Jordan carrascoEnlace covalente Jordan carrasco
Enlace covalente Jordan carrascoJordan Carrasco
 
Gambaran Kerajaan Allah pada Zaman Yesus
Gambaran Kerajaan Allah pada Zaman YesusGambaran Kerajaan Allah pada Zaman Yesus
Gambaran Kerajaan Allah pada Zaman YesusAmelia Margaretha
 
Matematica financeira aula 04
Matematica financeira   aula 04Matematica financeira   aula 04
Matematica financeira aula 04AllangCruz
 
Camadas da deep web
Camadas da deep webCamadas da deep web
Camadas da deep webMatheus Nani
 
Modelos atomicos jordan carrasco
Modelos atomicos jordan carrascoModelos atomicos jordan carrasco
Modelos atomicos jordan carrascoJordan Carrasco
 
Protein structure and shape, Denaturation and Enzymes
Protein structure and shape, Denaturation and Enzymes Protein structure and shape, Denaturation and Enzymes
Protein structure and shape, Denaturation and Enzymes Sofia Paz
 
Practice distribution Random vs Block practice
Practice distribution   Random vs Block practicePractice distribution   Random vs Block practice
Practice distribution Random vs Block practiceMaxi1000000
 
Pedido de ripiado que una Susana con Rafaela
Pedido de ripiado que una Susana con RafaelaPedido de ripiado que una Susana con Rafaela
Pedido de ripiado que una Susana con RafaelaEquipo Ariel Bermúdez
 

Destacado (16)

Product Compliance Software Vendor Sourcing Guide
Product Compliance Software Vendor Sourcing Guide Product Compliance Software Vendor Sourcing Guide
Product Compliance Software Vendor Sourcing Guide
 
Vantieuhoc.com de thi ngu van lop 6 hoc ki 2 de 3
Vantieuhoc.com   de thi ngu van lop 6  hoc ki 2 de 3Vantieuhoc.com   de thi ngu van lop 6  hoc ki 2 de 3
Vantieuhoc.com de thi ngu van lop 6 hoc ki 2 de 3
 
Desarrollo de la computadora
Desarrollo de la computadoraDesarrollo de la computadora
Desarrollo de la computadora
 
الرياضة صحة وعافية
الرياضة صحة وعافيةالرياضة صحة وعافية
الرياضة صحة وعافية
 
Servicios web internet
Servicios web   internetServicios web   internet
Servicios web internet
 
المنح الفكرية في شرح المقدمة الجزرية لـ ملا على القاري
المنح الفكرية في شرح المقدمة الجزرية لـ ملا على القاريالمنح الفكرية في شرح المقدمة الجزرية لـ ملا على القاري
المنح الفكرية في شرح المقدمة الجزرية لـ ملا على القاري
 
Enlace covalente Jordan carrasco
Enlace covalente Jordan carrascoEnlace covalente Jordan carrasco
Enlace covalente Jordan carrasco
 
Gambaran Kerajaan Allah pada Zaman Yesus
Gambaran Kerajaan Allah pada Zaman YesusGambaran Kerajaan Allah pada Zaman Yesus
Gambaran Kerajaan Allah pada Zaman Yesus
 
Matematica financeira aula 04
Matematica financeira   aula 04Matematica financeira   aula 04
Matematica financeira aula 04
 
Camadas da deep web
Camadas da deep webCamadas da deep web
Camadas da deep web
 
Modelos atomicos jordan carrasco
Modelos atomicos jordan carrascoModelos atomicos jordan carrasco
Modelos atomicos jordan carrasco
 
Protein structure and shape, Denaturation and Enzymes
Protein structure and shape, Denaturation and Enzymes Protein structure and shape, Denaturation and Enzymes
Protein structure and shape, Denaturation and Enzymes
 
Semi submersible
Semi submersibleSemi submersible
Semi submersible
 
Practice distribution Random vs Block practice
Practice distribution   Random vs Block practicePractice distribution   Random vs Block practice
Practice distribution Random vs Block practice
 
Pedido de ripiado que una Susana con Rafaela
Pedido de ripiado que una Susana con RafaelaPedido de ripiado que una Susana con Rafaela
Pedido de ripiado que una Susana con Rafaela
 
Img 3443
Img 3443Img 3443
Img 3443
 

Más de Ptidej Team

From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software MiniaturisationPtidej Team
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel BriandPtidej Team
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel AbdellatifPtidej Team
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh KermansaraviPtidej Team
 
CSED - Manel Grichi
CSED - Manel GrichiCSED - Manel Grichi
CSED - Manel GrichiPtidej Team
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano PolitowskiPtidej Team
 
Will io t trigger the next software crisis
Will io t trigger the next software crisisWill io t trigger the next software crisis
Will io t trigger the next software crisisPtidej Team
 
Thesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptThesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptPtidej Team
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptPtidej Team
 

Más de Ptidej Team (20)

From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software Miniaturisation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel Briand
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel Abdellatif
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh Kermansaravi
 
Mouna Abidi
Mouna AbidiMouna Abidi
Mouna Abidi
 
CSED - Manel Grichi
CSED - Manel GrichiCSED - Manel Grichi
CSED - Manel Grichi
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano Politowski
 
Will io t trigger the next software crisis
Will io t trigger the next software crisisWill io t trigger the next software crisis
Will io t trigger the next software crisis
 
MIPA
MIPAMIPA
MIPA
 
Thesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptThesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.ppt
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.ppt
 
Medicine15.ppt
Medicine15.pptMedicine15.ppt
Medicine15.ppt
 
Qrs17b.ppt
Qrs17b.pptQrs17b.ppt
Qrs17b.ppt
 
Icpc11c.ppt
Icpc11c.pptIcpc11c.ppt
Icpc11c.ppt
 
Icsme16.ppt
Icsme16.pptIcsme16.ppt
Icsme16.ppt
 
Msr17a.ppt
Msr17a.pptMsr17a.ppt
Msr17a.ppt
 
Icsoc15.ppt
Icsoc15.pptIcsoc15.ppt
Icsoc15.ppt
 

JDOC02.ppt

  • 1. École des Mines de Nantes Détection et correction automatique des défauts de conception dans les architectures à objets Yann-Gaël Guéhéneuc Informatique Département informatique École des Mines de Nantes – OTI
  • 2. Environnement n Équipe Objets, Composants et Modèles – Langages à objets – Génie logiciel + Méta-modélisation – Composants, Aspects, Systèmes… n Avec Hervé Albin-Amiot n Sous la direction du Pr. Pierre Cointe + Équipe Contraintes n En collaboration avec OTI : Object Technology International Inc., Canada 2/23
  • 3. Aujourd’hui n Vulgariser sans simplifier… – Une voiture ! n Détectionet correction automatique des défauts de conception dans les architectures à objets 3/23
  • 4. Détection et correction automatique des défauts de conception dans les Architectures à objets architectures à objets n Langages à objets « à classes » – Une classe = un moule : la classe Voiture – Un objet = une voiture : l’objet clio – Une classe = un ensemble d’attributs : un moteur et quatre roue s – Une classe = un ensemble de méthodes : avancer(), tourner()… 4/23 ⇒ Des relations entre classes
  • 5. Détection et correction automatique des défauts de conception dans les Architectures à objets architectures à objets n Un programme à objets – Un ensemble de classes : Voiture, Moteur, Roue, Volant , TrainDeRoues… – Et leurs méthodes : avancer(), faireAvancer(), tourner()… (Et les relations correspondantes) – Un ensemble d’objets communicants : clio.moteur.faireAvancer(roueAG) clio.moteur.faireAvancer(roueAD) 5/23 …
  • 6. Détection et correction automatique des défauts de conception dans les Architectures à objets architectures à objets n Une représentation Voiture Voiture Moteur Roue monMoteur:Moteur 1 roueAG:Roue ... ... roueAD:Roue avancer() avancer() avancer() direction) faireAvancer(Roue uneRoue) tourner(int tourner(int direction) tourner(int direction) 4..5 6/23
  • 7. Détection et correction automatique des défauts de conception dans les Défauts de conception architectures à objets n Problème – Choix de conception – Choix et nombre des classes – Choix et nombre des relations 7/23
  • 8. Détection et correction automatique des défauts de conception dans les Défauts de conception architectures à objets TrainDeRoues 1 ... tourner(int direction) 2 Roue ... Voiture Moteur avancer() 1 tourner(int direction) ... ... avancer() tourner(int direction) faireAvancer(Roue uneRoue) RoueAG RoueAD 1 ... ... ... ... 1 8/23
  • 9. Détection et correction automatique des défauts de conception dans les Défauts de conception architectures à objets n Solutions – Patrons de conception • Un nom • Un problème • Une solution • Les conséquences – « Anti-patrons » – Défauts de conception 9/23
  • 10. Détection et correction automatique des défauts de conception dans les Défauts de conception architectures à objets n Le patron de conception Composite – Problème : composer des objets sous forme d’arbre « tout – parties », de telle sorte que le traitement du tout et des parties soit uniforme 10/23
  • 11. Détection et correction automatique des défauts de conception dans les Défauts de conception architectures à objets n Le patron de conception Composite – Solution : 11/23
  • 12. Détection et correction automatique des défauts de conception dans les Défauts de conception architectures à objets n Le patron de conception Composite – Les conséquences : • Défini des hiérarchies de primitives et de composites • Là où le client attend une primitive, il peut aussi recevoir un composite • Rend le client plus simple • Rend l’ajout de primitives simple • Peut rendre la conception trop générale •… 12/23
  • 13. Détection et correction automatique des défauts de conception dans les Détection et correction architectures à objets n Détecter et corriger ⇒ Modéliser ! n Modéliser les patrons – Quoi modéliser ? • Problème • Solution • Compromis – Comment modéliser ? 13/23 • Méta-modélisation = un modèle de modèles
  • 14. Détection et correction automatique des défauts de conception dans les Détection et correction architectures à objets n Modéliser la solution des patrons – Classes – Attributs – Méthodes ⇒ Relations n Dans les architectures à objets ? – Pareil ! 14/23
  • 15. Détection et correction automatique des défauts de conception dans les Détection et correction architectures à objets n Notre méta-modèle 15/23
  • 16. Détection et correction automatique des défauts de conception dans les Détection et correction architectures à objets n Après la modélisation ? – Détection – Génération – Correction 16/23
  • 17. Détection et correction automatique des défauts de conception dans les Automatique architectures à objets n Un modèle de patron sait – Se détecter dans un modèle d’une architecture à objets • Arc consistance – Se détecter sous forme dégradée • Qu’est-ce qu’une forme dégradée ? • Programmation par contraintes avec explications ⇒ Outil Ptidej 17/23
  • 18. Détection et correction automatique des défauts de conception dans les Automatique architectures à objets n Un modèle de patron sait – Générer du code qui lui corresponde • Java • Claire ⇒ Outil PatternsBox (Hervé Albin-Amiot) – Corriger un modèle d’architecture à objets • Code ou modèle ? ⇒ Outil Ptidej + JavaXL (Hervé Albin-Amiot) 18/23
  • 19. Détection et correction automatique des défauts de conception dans les Automatique architectures à objets Composite ! TrainDeRoues 1 ... tourner(int direction) 2 Roue ... Voiture Moteur avancer() 1 tourner(int direction) ... ... avancer() tourner(int direction) faireAvancer(Roue uneRoue) RoueAG RoueAD 1 ... ... ... ... 1 19/23
  • 20. Détection et correction automatique des défauts de conception dans les Automatique architectures à objets 1 Voiture Moteur Direction 1 n ensembleDirection:Direction ... avancer() avancer() faireAvancer(Roue uneRoue) tourner(int direction) tourner(int direction) Roue TrainDeRoues ... roues:Ensemble avancer() avancer() tourner(int direction) tourner(int direction) RoueAG RoueAD ... ... ... ... 20/23
  • 21. Travaux en cours n Définitions des relations entre classes ? n Affinagede la génération et de la détection des relations entre classes n Modélisation de l’exécution des programmes ⇒ Caffeine (machine virtuelle + Prolog) 21/23
  • 22. Travaux futurs n Formalisationdes « anti-patrons » et des défauts de conception n Intégration dans un environnement de développement intégré/incrémental n Mise à l’échelle + études de cas 22/23
  • 23. Merci ! n Plus d’informations, des références… ? – Yann-Gaël Guéhéneuc : guehene@emn.fr – Hervé Albin-Amiot : albin@emn.fr – Équipe OCM : ocm@emn.fr – Équipe Contraintes : contraintes@emn.fr + L’Internet… 23/23