SIGL CPAN : Graphe des dependances entre modules Perl

14
Système d’Information Graphique Logiciel Du dépôt logiciel CPAN

description

Présentation d\'un prototype de système de visualisation du réseau de dépendances logicielles entre les librairies Perl de la communauté CPAN (+ 14 500 modules). Rapport complet : http://tinyurl.com/sigl-rapport Galerie d\'images : http://tinyurl.com/sigl-gallery

Transcript of SIGL CPAN : Graphe des dependances entre modules Perl

Page 1: SIGL CPAN : Graphe des dependances entre modules Perl

Système d’Information Graphique Logiciel

Du dépôt logiciel CPAN

Page 2: SIGL CPAN : Graphe des dependances entre modules Perl

Présentation de CPAN

• Un dépôt logiciel

• Une communauté

• 14 000 paquets logiciels

• Plus de 65 000 modules

Page 3: SIGL CPAN : Graphe des dependances entre modules Perl

Problématique

• Dépendances fortes

• Comment les représenter ?

• L’approche CPAN deps :– Dépendances entre packages uniquement

– Versions obsolètes ignorées

– Il manque des dépendances !

– Exploration limitée (liens vers page CPAN)

Page 4: SIGL CPAN : Graphe des dependances entre modules Perl

Solution

• Extraction directe des dépendances

• Approche par exploration de graphes

• Riche en possibilités :

Spatialisation, coloration, interactivité..

Page 5: SIGL CPAN : Graphe des dependances entre modules Perl

Etape 1 : Moisson de CPAN

• Robot de collecte.. en Java !

• Téléchargement du code source

• Téléchargement des métadonnées

• Adaptation aux :–Différents formats d’archives

–Différentes structures et syntaxes

Page 6: SIGL CPAN : Graphe des dependances entre modules Perl

Etape 2 : Plateforme de consultation

• Modèle client / serveur

• Plusieurs clients :–Plugin Géphi

–Navigateur Web : XML, SVG..

–Navigateur Web : Applet Géphi

« CPAN Explorer »

Page 7: SIGL CPAN : Graphe des dependances entre modules Perl

Plugin Géphi

• Recherche paramétrée :– Dépendances d’un composant

– Utilisateurs du composant

– Profondeur réglable

• Téléchargement des graphes

• Utilisation des outils de Géphi

Page 8: SIGL CPAN : Graphe des dependances entre modules Perl

Coté serveur : GFeed

• Application Python

• Génération de graphes à la demande

• Standalone, portable et léger

• Peut gérer le multi-formats (GDF, PNG..)

• Scalable (Intégration avec Apache, FCGI..)

• Possibilité d’envoyer des flux de graphes

Page 9: SIGL CPAN : Graphe des dependances entre modules Perl

Applet Web Géphi

• Graphe de packages

• Coloration des nœuds

• Diamètre variable

• Interactif (JavaScript)

Page 10: SIGL CPAN : Graphe des dependances entre modules Perl

• 6 niveaux de dépendances

• De 9 packages utilisés…

• .. on passe à 33 au total !

Un exemple : App-Context

Page 11: SIGL CPAN : Graphe des dependances entre modules Perl

Archives logicielles

• Accumulation des versions

• Plusieurs versions du même package

• Utilisation de packages obsolètes !

Page 12: SIGL CPAN : Graphe des dependances entre modules Perl

Etat du projet

• Base de données du mois de Mai

• Intégration avec Géphi :–Recherche simple de composants Perl

–Consultation des graphes globaux

• Prototype de l’applet publique

• Evaluation avec des développeurs

Page 13: SIGL CPAN : Graphe des dependances entre modules Perl

Objectifs à moyen terme

• Création du site plateforme

• Améliorations prioritaires :–Mise à jour automatisée

– Envoi en streaming

–Mise en cache

• Association avec la communauté CPAN

Page 14: SIGL CPAN : Graphe des dependances entre modules Perl

TX SIGL CPAN - Printemps 2008Remerciements• Antoine Jouglet

• Mathieu Bastian

• Sébastien Heymann

Liens• Géphi: http://gephi.org

• Jeremy Palmier

• Thomas Drugeon

• La communauté Perl