JDOC02.ppt

234 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
234
Sur SlideShare
0
Issues des intégrations
0
Intégrations
3
Actions
Partages
0
Téléchargements
1
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

JDOC02.ppt

  1. 1. École des Mines de Nantes Détection et correctionautomatique 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. 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., Canada2/23
  3. 3. Aujourd’hui n Vulgariser sans simplifier… – Une voiture ! n Détectionet correction automatique des défauts de conception dans les architectures à objets3/23
  4. 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. 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. 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..56/23
  7. 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 relations7/23
  8. 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 ... ... ... ... 18/23
  9. 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 conception9/23
  10. 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 uniforme10/23
  11. 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. 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. 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. 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. 15. Détection et correction automatique des défauts de conception dans les Détection et correction architectures à objets n Notre méta-modèle15/23
  16. 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 – Correction16/23
  17. 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 Ptidej17/23
  18. 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. 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 ... ... ... ... 119/23
  20. 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. 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. 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 cas22/23
  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

×