sigl cpan : graphe des dependances entre modules perl

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

Upload: julian-bilcke

Post on 05-Jul-2015

2.592 views

Category:

Technology


2 download

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

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