SIGL CPAN : Graphe des dependances entre modules Perl

Post on 05-Jul-2015

2.592 views 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 of SIGL CPAN : Graphe des dependances entre modules Perl

Système d’Information Graphique Logiciel

Du dépôt logiciel CPAN

Présentation de CPAN

• Un dépôt logiciel

• Une communauté

• 14 000 paquets logiciels

• Plus de 65 000 modules

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)

Solution

• Extraction directe des dépendances

• Approche par exploration de graphes

• Riche en possibilités :

Spatialisation, coloration, interactivité..

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

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 »

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

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

Applet Web Géphi

• Graphe de packages

• Coloration des nœuds

• Diamètre variable

• Interactif (JavaScript)

• 6 niveaux de dépendances

• De 9 packages utilisés…

• .. on passe à 33 au total !

Un exemple : App-Context

Archives logicielles

• Accumulation des versions

• Plusieurs versions du même package

• Utilisation de packages obsolètes !

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

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

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