/ DÉTECTION DE DUPLICATION DANS DES DIAGRAMMES DE SÉQUENCE POUR LE REFACTORING DE MODÈLES DE CAS D'UTILISATION Présenté par : Hanae BOUTAYEB Samia MOATASSIME Manel BRICHNI Eric AUBRY-LACHAINAYE Alexandre MAIRIN Vincent ITIER Thibaud MARSIGNY Encadré par : Marianne HUCHARD Clementine NEBUT
/ 2 Introduction
/ 3 Plan 1. Explication 2. Ingénierie dirigée par les modèles 3. Le Refactoring 4. Les diagrammes de séquences 5. Compression des diagrammes de séquences 6. Algorithme de détection de duplication 1. Explication 2. Complexité d' UML 3. Présentation d'EMF 4. Présentation de TopCased 5. Description de notre application 6. Diagramme de classes PARTIE IPARTIE II
/ 4 I.1 Explications Tableau Algorithme de Détection Retourne : Indice Longueur
/ 5 I.2 Ingénierie dirigée par les modèles. Définition (IDM) - Transformation des modèles. Langages utilisés - UML (Unified Modeling Language) - MOF (Meta-Object-Facility) - QVT (Query-view-Transformation)
/ 6 I.3 Le refactoring. Définition - Opération de maintenance - Amélioration des qualités internes. Refactoring des modèles. Utilisation du refactoring dans le projet
/ 7 I.4 Les diagrammes de séquences. Éléments de diagramme de séquence. Drawable fragment
/ 8 I.4 Les diagrammes de séquences
/ 9. Types de cadres d’interaction
/ 10 I.4 Les diagrammes de séquences
/ 11 I.5 Compression des diagrammes de séquences
/ 12 I.6 Algorithme de détection de duplication Détection(m Suffixe, n Suffixe):Entier La signature:
/ 13 I.6 Algorithme de détection de duplication La modélisation
/ 14 I.6 Algorithme de détection de duplication Exemple 1: Sm = Tableau / Sn = [Occ1,Occ2,Occ3,Occ4] [Occ1,Occ2,Occ3,Occ4] Exemple 2: Sm = [Occ2,Occ3,Occ4,Occ5,Occ6,EndP, Occ1,Occ2,Occ3,Occ4] Sn = [Occ1,Occ2,Occ3,Occ4] [Occ2,Occ3]
/ 15 I.6 Algorithme de détection de duplication //Input: suffix Sm, Sn (m>n), MinimalLength For(i=1;i<=Sm.L;i++) If (Sm(i).Type != Sn(i).Type) Break; End If If (Sm(i).Type = OccurrenceSpecification) If (Sm(i) is unequal to Sn(i)) Break; End If G(i)=Max(G(i-1),i);//Default value For(j=1;i<=Sm(i).Exs.Length;j++) If (i < Sm(i).Exs(j).SPoint) Goto Maxj; End If G(i)=Max(G(i),Sm(i).Exs(j).EPoint+i); End For End If IF (Sm(i).Type = DiagramEndPoint) Break; End If End For
/ 16 Plan 1. Ingénierie dirigée par les modèles 2. Le Refactoring 3. Les diagrammes de séquences 4. Compression des diagrammes de séquences 5. Algorithme de détection de duplication 1. Explication 2. Complexité d' UML 3. Présentation d'EMF 4. Présentation de TopCased 5. Description de notre application 6. Diagramme de classes PARTIE IPARTIE II
/ 17 II.1 Explications Tableau Algorithme de Détection Retourne : Indice Longueur Diagramme de Séquence Transformation Diagramme de Séquence Transformation ETAPES : Compréhension UML, EMF
/ 18 II.2 Complexité d'UML
/ 19 II.3 Présentation de TopCased
/ 20 DefaultName.umldi DefaultName.uml
/ 21 II.4 Présentation d'EMF
/ 22 II.5 Description de notre application
/ 23
/ 24 II.6 Organisation des classes dans les packages ● element ● duplication ● reconstruction ● modele
/ 25 II.6 Classes importantes ● ChargementModele importation.uml, création de la resource ● SequenceDiagramModel représentation interne du diagramme ● ToSdm tableau objet SequenceDiagramModel ● ToUML objet SequenceDiagramModel.uml
/ 26 Conclusion Les points négatifs : -Communication -Gestion du temps (Config Eclipse, documents) Les points positifs : -Travail en groupe -Spécification UML -Approfondissement sur l'IDM -Outils : Eclipse avec plugin Topcased et EMF
/ 27 Bilan
/ 28 Perspective ● Arbre des suffixes ● Analyse Formelle de Concept