F évrier 2002 - PowerPoint PPT Presentation

f vrier 2002 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
F évrier 2002 PowerPoint Presentation
Download Presentation
F évrier 2002

play fullscreen
1 / 29
F évrier 2002
66 Views
Download Presentation
Download Presentation

F évrier 2002

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Algorithmes de construction de treillis de Galoispour la résolution de problèmes en génie logicielPetko ValtchevDIROUniversité de Montréale-mail: valtchev@IRO.UMontreal.CA Février 2002

  2. X X X X X X X X X P a b c d e X X X X O P a b c d e 1 2 3 X X X X X X X X O 1 2 3 4 X X X X X X X X X X X X • Notre problématique: algorithmique flexible de construction 4 X X X X L K L+ P a b c d e O 5 6 X X X X X X  K    L Identification automatique d’abstractions 2 Concepts Treillis Propriétés O b j e t s • Analyse Formellede Concepts (AFC) approche algébrique pour la formation d’abstractions potentiellement utiles.

  3. Plan de la présentation 3 • Motivations • L’existant • Approche pour l’assemblage de treillis • Retombées algorithmiques

  4. Pourquoi s’y intéresser? 4 • Formation de groupes cohérents en génie logiciel (GL) • Toutes les étapes du cycle de vie concernées, surtout la ré-ingénierie • Ex. Entités = Variables, Objets (instances), Classes; • Ex. Propriétés = Procédures globales, Attributs/méthodes de classe; • Ex. Groupes = Modules/Structures d’objets, Classes, Classes abstraites; • Ex. Problèmes =Migration de code (semi-)automatique, Modularisation, Restructuration de hiérarchies de classes, Reconfiguration de fichiers source, etc. • Avantages de l’approche par treillis • groupe = concept formel, fondé mathématiquement • propriétés intéressantes de la structure = bornes inf et sup • solution exhaustive = tous les groupes

  5. Object at atPut Collection isEmpty ArrayedColl. size SequenceableColl. add includes atAllPut add first remove last remove LinkedList Bag Set addWithOcc addFirst minus Dictionary addLast at at remove keys atPut atPut atPut values atAllPut remove Exemple: réingénierie de hiérarchies de classes OO Les collections dans ObjectWorks en Smalltalk

  6. X X X (1) isEmpty X X X X X X (2) X size (3) X includes X X X X X X add (4) X X (5) X X X remove (6) X minus X X (7) addWithOccurences X at (8) X X X atPut (9) X atAllPut (10) X X (11) X first X last X (12) adFirst X (13) X (14) addLast X (15) keys values (16) X Exemple : les Collections* de SmallTalk Set Bag Dictionary Linked List Array Method Selectors code * Classes de collections de la librarie ObjectWorks de (sous-ensemble) [Godin et al. 98]

  7. 1,2,3 Indexed Extensible Collection A,D,L,B,S 1,2,3,8 1,2,3,4 A,D,L D,L,B,S 1,2,3,8,11,12 1,2,3,4,6 1,2,3,4,5 1,2,3,4,8 D,L A,L D,S L,B,S 1,2,3,8,9,10,11,12 1,2,3,4,5,6 A S Le treillis de Galois (de concepts) 1,2,3,8,9 A,D 1,2,3,4,6,8,9,15,16 1,2,3,4,5,8,11,12,13,14 1,2,3,4,5,7 D L B 1,..,16 

  8. Motivations du travail 8 • Constat: les outils algorithmiques des treillisne répondent pasaux caractéristiques du processus de production de logiciel • Ex. multiples acteurs, grands volumes de données, profusion des résultats intermédiaires (décomposition et recomposition), évolution des paramètres, etc. • algorithmes actuels [Ganter 84], [Bordat 86], [Nourine&Reynaud 99]: traitement par lot, centralisé, génération du treillis entier • Objectif: conception d’algorithmes flexibles pour étendre la porté de AFC • premiers pas: algos incrémentaux [Godin86], élagage [Dicky et al.96], • Notre approche: « opérationaliser » les constructions de l’AFC • divers produits / décompositions de treillis • fragmentation/concaténation de relations binaires

  9. Un problème concret: l’intégration de perspectives 9 • Cadre: « separation of concerns » dans les systèmes OO complexes • « perspective » = ensemble de fonctionnalités inter-connectées transcendant le découpage en classes • Approches: sujets[Harisson 93],aspects[Kiszales 97], vues[Mili 99], etc. • Perspectives du domaine: séparation du comportement des objets • Ex. Collections: sujetsConsultation (size,…) etModification (add,…) • hiérarchie de classespropre au sujet • Intégration de sujets/aspects =fusion dehiérarchies • Problème algorithmique: • va et viententre hiérarchies partielles (sujet) et globale (système) • « assemblage » de treillis partiels / décomposition du treillis global

  10. Plan de la présentation 10 • Motivations • L’existant • Approche pour l’assemblage de treillis • Retombées algorithmiques

  11. (O) (P) f g f(X) ={y  P  x X, x  y } = X' g(Y) ={x  O   y Y, x  y } = Y' correspondance de Galois {5, 7}' ={a, d} {b, d}' = {5, 6} Y  f(X) iff X  g(Y) {a, d}' = {5, 6, 7, 8} X'' = g º f(X) operateurs de ferméture {5, 7}'' ={5, 6, 7, 8} Y'' = f º g(Y) {b, d}'' = {a, b, d} X = X'', Y = Y'' {a, d}'' = {a, d} {5, 6}'' = {5, 6} Ensembles fermés Contextes Formels & Correspondances de Galois 11 K= (O, P, Â) O Formal Context[Wille82] relation d’incidenceobjets - attributs 1 2 3 4 5 6 7 8 X X X X X X X X a P X X X X X b X X X X X c X X X X d Ex.

  12. B(O,P,Â) (6,abcd) (12356,ab) (36,abc) (678,acd) Ordre Partiel (sub-concept of) (56,abd) (34678,ac) (X1, Y1)(X2, Y2)iff X1 X2 (Y2 Y1) (5678,ad) (12345678,a) (12345678,a) Operateurs de treillis (12356,ab) (5678,ad) Basic FCA theorem[Wille 82] (34678,ac) meet -ÙjÎJ (Xj, Yj) = (ÇjÎJXj,(ÈjÎJ Yj)'') join -ÚjÎJ(Xj, Yj) = ((ÈjÎJXj)'',ÇjÎJYj) (56,abd) (36,abc) (678,acd) (6,abcd) Treillis de Concepts Formels 12 Ex. ConceptFormel (X,Y) (57, ad) n’est pas un concept X  O, Y  P; X'' = X, Y'' = Y X = Y', Y = X' (5678, ad) est un concept X - extent, Y - intent

  13. (X,Y) génère les lower covers Xj – sous-ens. de X maximauxfermés (X1,Y1) … (Xj,Yj) ({o},{o}') P L a b c d e K O P a b c d e O 1 X X X (Ø,P) K 1 2 3 X X X X X X X X L 4 X X X X 1. B F0= Ø Yj - {o}'ÇY (oÎ O/X) (X1,Y1) … (Xj,Yj) 2. (L) = (A',A'') (X,Y) génère les upper covers Algorithmes Construisant le Treillis 13 Start Next T(L) = (O'',O') Bordat Godin Fi+1= Fi È{ {oi+1}'ÇY | YÎ Fi } Nourine & Raynaud

  14. P1 P2 K1= (O, P1,   OP1) K2= (O, P2,   OP2) L2 L1 Fragmentation de contextes Apposition = reconstitue le contexte après éclatement K= (O, P, ) i a b c d e f g h 1 x x x 2 x x x x 3 x x x x x 4 x x x x x K= K1 |K2 5 x x x x 6 x x x x x 7 x x x x 8 x x x x

  15. a #1 g L1  L2 h b d c #2 #3 #4 1 2 f i 4 L1 L2 #5 treillis global #6 #7 e L 3 5 7 8 #8 nœuds image 6 nœuds vide Visualisation par diagrammes imbriqués  treillis partiels

  16. : LL1L2; « projection » de l’intent Y sur P1 et P2 (nœuds pleins) • : L1L2L; intersection des extentsX1 et X2 ((X1,Y1), (X2,Y2)) = ((X1X2) , (X1X2)')   ((X,Y)) = (((YP1)',YP1),((YP2)',YP2)) Résultats existant 16 • Aucun algorithme connu (fusion, construction diagramme imbriqué) • Deux homorphismesliantL1 L2avec L : L1  L2 L

  17. Plan de la présentation 17 • Motivations • L’existant • Approche pour l’assemblage de treillis • Retombées algorithmiques

  18. ac 34678 Identifierconcepts 1 Calculer intents & extents 2 Détecterenfants immédiats 3 Construction en trois étapes L1 L2 L

  19. Def.R: L1 L2(O) R(c1,c2) = Ext(c1) Ext(c2)  Prop. (c1,c2)  -1(c)  R(c1,c2) = Ext(c)  abdf  56 Prop. (c1,c2) = (c)  {(c1,c2)} = Min(-1(c))  Ex. c#3=(56,abd) c#6=(568,f) Prop. (X,Y) = ((X1,Y1),(X2,Y2))  Y = Y1Y2 et X = X1X2 R(c1,c2) = 56 [ (c#3,c#6) ]R= -1(c) = { (c#3,c#6), (c#1,c#6), (c#3,c#2) } 2 Étape un & deux #2 #4 1 c #6

  20. Prop. (CN)ĉ  c (c1,c2)  LowerCovers( (c)),(c1,c2) = ĉ. Prop. (CNS)ĉ cĉ  Max((LowerCovers( (c))). ac 34678 abc acd acde acdf acgh 34 678 7 68 36  Max  (LowerCovers(c1,c2)) Étape trois 3  c #3 #7 #5

  21. ProcedureBuild_Global_Lattice Input:L1=  B11, L2=  B22 /*Couple of lattices */ Output:L=  B /*The lattice of apposition context */ B:= Ø 1. SORT(B1) ;SORT(B2) /*sort ofconcept sets in an ascendingorder */ 2. Foreach couple (ci,cj) in B1 x B2 2.1.E:= Ext(ci) Ext(cj)/*computation of R*/ 2.2. c:= Find_Psi(E, ci,cj) /* tentative retrieval of  based on R*/ 2.3. Ifc=NULL then c:= Make_Concept(E, Int(ci) Int(cj)) B:= B {c} Find_LowerCovers (c, ci,cj) /* detection of predecessors in L*/ Algorithme d’assemblage de treillis 21

  22. Plan de la présentation 22 • Motivations • L’existant • Approche pour l’assemblage de treillis • Retombées algorithmiques

  23. P a b c d e O 1 2 3 X X X X X X X X 4 X X X X X X X L X X X X K . . . L+ P a b c d e O 1 2 3 4 X X X X X X X X X X X X . . . P a b c d e O 5 6 X X X X X X X X X X X X X X  K   X X X  L Algorithmes dérivés: construction du treillis 23 « Diviser-pour-régner » Incrémentale (améliore [Godin et al. 95]) Hybride (incrémentale/par lot)

  24. X L K P a b c d e O 1 2 3 X X X X X X X X • Extraction de treillis partiels d’un treillis global L L1 L2 Algorithmes dérivés (suite) 24 • Maintien de treillis par incrémentation fine • Inversion de case de la table (ajout/enlèvement d’un (o,a)à I) 4 X X X • Construction directe du diagramme imbriqué

  25. Étape Ordre O(l1 + l2) Tri O(d(L1) + d(L2)) Recherche valeur Psi Recherche success. O(d(L1) + d(L2))m) Problème Estimer l1 l2 Sur l m ( Pb. #P-complet) Construction treillis O(d(L1)+ d(L2)) m l ) Parcours du produit O(d(L1)+ d(L2) + k ) l1 l2) Assemblage Total O( k ( l1 l2 + l m ) ) Complexité 25 l- nb de conceptsL li - nb de conceptsLi d(L)- degré d’un nœud k - nb d’objets,|O| m - nb d’attributs,|P| Hypothèse : croissance linéaire de lsur k ( |L|= O(|O| ) ) Assemblage : O(|L| . |O| . |P| ) ( meilleur algo ) Méthode « D&C » : O(|L| . |O|. |P| . log|P| ) (alg. moyen O(|L| . |O|2. |P|))

  26. Expérimentations 26

  27. Quelques projets applicatifs 27 • Analyse du panier du consommateur: • « Construction incrémentale d’une base non-redondante de règles d’association » • Conception OO: • « Restructuration de hiérarchies de classes Java en temps réel » • Migration de code procédural vers OO: • « Conception d'outils interactifs de détection de structures d'objets dans un code source procédural »

  28. L2 I2 I1 L3 I3 L1 Bilan 28 L K= (O, P,I) • Stratégie d’assemblage de treillis bien adaptée: • aux problèmes d’intégration de vues partielles sur un domaine • à la fragmentation des données et à la distribution du traitement • Cadre pour la conception/test de nouvelles méthodes pour: • construction, • exploration, • composition/décomposition de treillis.

  29. La suite... 29 • Nombreux problèmes algorithmiques • fusion de treillis de types dans les LPOO a typage dynamique • extraction de points de vue pertinents d’un treillis global? • étude d’autres opérateurs de produit de treillis (sub-direct, tensoriel) • construction efficace de tri-lattices (relations ternaires) • Étude et réalisation d’outils basés sur les techniques de treillis • analyse et restructuration pour la re-ingénierie • détection de points de vues à partir de code source/spécifications • extraction et factorisation d’information • diagrammes UML, documents XML (suite travail de thèse) • moteurs de recherche contextuelle sur la Toile (the Web) • vérification de systèmes dynamiques • détection de états stables dans le temps (tri-concepts temporisés)