La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Algorithmes de construction de treillis de Galois pour la résolution de problèmes en génie logiciel Petko Valtchev DIRO Université de Montréal e-mail:

Présentations similaires


Présentation au sujet: "Algorithmes de construction de treillis de Galois pour la résolution de problèmes en génie logiciel Petko Valtchev DIRO Université de Montréal e-mail:"— Transcription de la présentation:

1 Algorithmes de construction de treillis de Galois pour la résolution de problèmes en génie logiciel Petko Valtchev DIRO Université de Montréal Février 2002

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

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 Exemple: réingénierie de hiérarchies de classes OO
Object at atPut Les collections dans ObjectWorks en Smalltalk Collection isEmpty size includes add remove SequenceableColl. atAllPut first last remove Set minus atPut at Bag addWithOcc atPut at DIRE QUE J ’UTILISE LE JARGON DE LA PROGRAMMATION PAR OBJETS Voici une hiérarchie de classes qui est tirée d’une bibliothèque SmallTalk et qui représente la descendence de la classe Collection. Autrement dit,sont dessinées les classes engendrant toutes les structures de données représentant des collections. Pour chaque classe, les sélecteurs des méthodes que la classe défini sont donnés en vert. Ex. ENSEMBLE - MINUS En rouge sont les sélecteurs que la classe hérite de ses super-classes mais qui sont interdits. Ex. TABLEAU - ADD Quand vous avez une telle hiérarchie, vous n’êtes pas contents. Pas contents du tant de rouge car il indique que votre hiérarchie est mal faite. Ex. REMOVE DEF. COLLECTION UNDEF. Sequenciable DEF. LISTE Ce que l ’on a tendance de faire dans ce cas c’est prendre les clases instanciables de la hiérarchie et chercher une autre organisation en hiérarchie qui optimise les critères de la conception OO, en particulier la factorisation maximale qui impose qu’un bout de code ne se retrouve qu ’une seule fois dans la hiérarchie. Vous allez donc rechercher des classes abstrates qui seront identifiées aux sous-ensembles de méthodes qu’elles vont introduire Ce que La FCA vous apportera dans ce cas, c ’est l ’ensemble de toutes les classes abstraites sensées, organiséees hiérarchiquement dans un treillis. LA solution que vouscherchez se retrouve donc plongée dans une structure plus large comportant toutes les variantes d ’une telle hiérarchie. LinkedList addFirst addLast atAllPut atPut remove Dictionary keys remove values ArrayedColl. add

6 Exemple : les Collections* de SmallTalk
Method Selectors code Set Bag Dictionary Linked List Array isEmpty size includes add remove minus addWithOccurences at atPut atAllPut first last adFirst addLast keys values (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) X X X X X Commen on y procède? On traduit la hiérarchie ou plutôt l ’ensemble des classes instanciables en une table binaire. La Table représente la relation « EST ACCESSIBLE PAR », ses lignes correspondent aux méthodes, les colonnes aux classes considérées et les cases pleines sont celles dont la ligne et la colonne sont compatibles * Classes de collections de la librarie ObjectWorks de (sous-ensemble) [Godin et al. 98]

7 Le treillis de Galois (de concepts)
A,D,L,B,S 1,2,3 Indexed Extensible Collection A,D,L 1,2,3,8 D,L,B,S 1,2,3,4 1,2,3,8,9 D,L 1,2,3,4,8 A,L 1,2,3,8,11,12 D,S 1,2,3,4,6 L,B,S 1,2,3,4,5 A,D A 1,2,3,8,9,10,11,12 1,2,3,4,6,8,9,15,16 1,2,3,4,5,8,11,12,13,14 1,2,3,4,5,6 S 1,2,3,4,5,7 D L B Voici le treillis de concepts qui sont des rectangles maximaux de X dans la table. CHAQUE concept est représentée comme un couple de numéros de lignes et de noms de colonnes UN CONCEPT représente un groupe de classes partageant des méthodes et suggère la définition possible d’une classe abstaraite Ex. La concept qui regroupe les classes LISTE et DICTIONNAIREavec 5 méthodes a été identifié comme étant la classe des collections indexées et extensibles (car admet des méthodes qui relèvent d’un adressage par index et un rajout) Cette classe est intéressante car n’a pu être découverte qu’en utilisant les treillis de Galois, alors que son existance a échapé aux méthodes concurentes appliquées au même exemple. Cela nous mène aux AVANTAGES de l ’APPROCHE par TREILLIS: exhaustivité (toutes les abstaractions sont incluses) la factorisation est maximale le nombre des classes abstarites est relativement petit (une minimisation a été proposéee menant à la définition d’une sous-structure ne comportant que des classes abstaraites « utiles ») 1,..,16

8 Motivations du travail
8 Constat: les outils algorithmiques des treillis ne répondent pas aux 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 [Godin 86], é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 Il y a eu des travaux effectue meme parmi les cherchers de votre departement et present actuellement dans la salle

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: sujets Consultation (size,…) et Modification (add,…) hiérarchie de classes propre au sujet Intégration de sujets/aspects = fusion de hiérarchies Problème algorithmique: va et vient entre hiérarchies partielles (sujet) et globale (système) « assemblage » de treillis partiels / décomposition du treillis global Il y a eu des travaux effectue meme parmi les cherchers de votre departement et present actuellement dans la salle

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

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

12 Treillis de Concepts Formels
12 Ex. Concept Formel (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 (6,abcd) (36,abc) (56,abd) (34678,ac) (5678,ad) (12356,ab) ( ,a) (678,acd) B(O,P,Â) X - extent, Y - intent Ordre Partiel (X1, Y1)  (X2, Y2) iff X1  X2 ( Y2  Y1) (sub-concept of) Operateurs de treillis Basic FCA theorem [Wille 82] meet - ÙjÎJ (Xj, Yj) = (ÇjÎJXj, (ÈjÎJ Yj)'') join - ÚjÎJ(Xj, Yj) = ((ÈjÎJXj)'', ÇjÎJ Yj) (6,abcd) (56,abd) (678,acd) (36,abc) (12356,ab) (34678,ac) (5678,ad) ( ,a) LES QUOTES - pour la simplification

13 Algorithmes Construisant le Treillis
13 Start Next Bordat (X,Y) génère les lower covers T(L) = (O'',O') (X1,Y1) … (Xj,Yj) Xj – sous-ens. de X maximaux fermés ({o},{o}') 1 a b c d e X X X O P (Ø,P) L K 1 2 3 X X X X X X X X a b c d e O P K L Godin X X X X 1. MULTITUDE de STRATEGIE DE CONSTRUCTION On ne donne que les plus remarquables () Ca commencé il y a 30 ans et ca continue d ’intriguer les chercheurs 2.LES DEUX TYPES D ’ALGOS A. Intéressés par l ’ordre B. Pas intéressé 3. Une bonne partie des travaux sur l ’algorithmique, en particulier les aspects incrémentaux ont été conduit à Montréal, ici même, à l ’UdM et parmi les personnes ici présentes certains y ont contribué F0= Ø 1. B Fi+1= Fi È { {oi+1}' ÇY | YÎ Fi } Nourine & Raynaud (X1,Y1) … (Xj,Yj) Yj - {o}' ÇY (o Î O/X) 2.  (L) = (A',A'') (X,Y) génère les upper covers

14 Fragmentation de contextes
K1= (O, P1,   OP1) P1 L1 K2= (O, P2,   OP2) P2 L2 Apposition = reconstitue le contexte après éclatement a b c d e f g h i K= (O, P, ) 1 x x x 2 x x x x 3 x x x x x K= K1 | K2 4 x x x x x 5 x x x x 6 x x x x x 7 x x x x 8 x x x x Commen on y procède? On traduit la hiérarchie ou plutôt l ’ensemble des classes instanciables en une table binaire. La Table représente la relation « EST ACCESSIBLE PAR », ses lignes correspondent aux méthodes, les colonnes aux classes considérées et les cases pleines sont celles dont la ligne et la colonne sont compatibles

15 Visualisation par diagrammes imbriqués
nœuds vide nœuds image L1  L2 a d b c g h 4 i 2 1 3 6 5 7 8 f e #1 #2 #3 #6 #8 #7 #4 #5 L1 L2 treillis partiels L treillis global On voit bien le squelette externe qui previent du premier trteillis et le contenu de chaque nœud qui n’est qu’une copie du diagramme du deuxième treillis. Tout se passe donc comme si l ’on avait remplacé les concept du treillis externe par des diagrammes du treillis interne. IL Y A DUX TYPES de nœuds pleins qui representent les concepts globaux, vides qui ne font pas partie de la représentation, mais peuvent véhiculer d ’autres informations. L ’ENS. des nœuds pleins induit un sous-treillis partiel qui est isomorphe aux treillis global vu auparavant. POURQUOI EST_CE QUE CE DESSIN SERAIT PLUS INTELLIGIBLE? A NOTER que lors d’ne visualisation, on peut ne montrer qu ’un seul nœud externe à la fois, on ne voit donc que

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

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

18 Construction en trois étapes
ac 34678 2 Calculer intents & extents L1  L2 L 1 Identifier concepts 3 Détecter enfants immédiats

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

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

21 Algorithme d’assemblage de treillis
21 Procedure Build_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 of concept sets in an ascending order */ 2. For each 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. If c = NULL then c := Make_Concept(E, Int(ci)  Int(cj)) B := B  {c} Find_LowerCovers (c, ci, cj) /* detection of predecessors in L */

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

23 Algorithmes dérivés: construction du treillis
23 « Diviser-pour-régner » X X X X X X X . . . 1 2 3 4 a b c d e X X X X X X X X X X X X O P 1 2 3 X X X X X X X X a b c d e O P K L Incrémentale (améliore [Godin et al. 95]) L+ 5 6 X X X X X X a b c d e O P  K  L Il y a eu des travaux effectue meme parmi les cherchers de votre departement et present actuellement dans la salle X X X X Hybride (incrémentale/par lot)

24 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) 1 2 3 X X X X X X X X a b c d e O P K L X X X X L1 L2 Extraction de treillis partiels d’un treillis global L Il y a eu des travaux effectue meme parmi les cherchers de votre departement et present actuellement dans la salle Construction directe du diagramme imbriqué

25 Complexité O(d(L1) + d(L2)) O(l1 + l2) Assemblage Total Ordre Étape
25 O(d(L1) + d(L2)) O(l1 + l2) Assemblage Total Parcours du produit Construction treillis Recherche success. Recherche valeur Psi Tri Ordre Étape O(d(L1) + d(L2))m) O(d(L1)+ d(L2)) m l ) O(d(L1)+ d(L2) + k ) l1 l2) O( k ( l1 l2 + l m ) ) l nb de concepts L li nb de concepts Li d(L) - degré d’un nœud k nb d’objets, |O| m nb d’attributs, |P| Problème Estimer l1 l2 Sur l m ( Pb. # P-complet) Hypothèse : croissance linéaire de l sur 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 » Il y a eu des travaux effectue meme parmi les cherchers de votre departement et present actuellement dans la salle

28 Bilan 28 L K= (O, P, I) L1 L3 L2 I1 I2 I3 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... Nombreux problèmes algorithmiques
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)


Télécharger ppt "Algorithmes de construction de treillis de Galois pour la résolution de problèmes en génie logiciel Petko Valtchev DIRO Université de Montréal e-mail:"

Présentations similaires


Annonces Google