Projets étudiant

= Projets étudiants - 2009-2010 =

Placement automatique de noeuds dans un graphe - [mailto:gauthier.quesnel@toulouse.inra.fr Gauthier Quesnel] - INRA
Mots-clés


 * Manipulation de graphes
 * Placement automatiques
 * Interface graphique

Présentation du projet

L'interface graphique GVLE, dont une partie est représentée sur les captures d'écrans suivantes, permet de représenter des graphes de modèles. Ces modèles sont de deux types : les modèles atomiques (les feuilles de l'arbre) et les modèles couplés (les noeuds de l'arbre). GVLE représente la hiérarchie de modèles couplés dans une fenêtre (image de gauche), et les modèles couplés avec seulement un niveau de sous-modèles (image de droite). Nous nous intéressons dans ce projet, uniquement à la représentation graphique d'un modèle couplé et non de sa hiérarchie.

Le placement des modèles d'un modèle couplé est aujourd'hui défini par l'utilisateur et avec des moyens très limités (de simples déplacements de boîte). Ainsi, comme le présente la figure de droite, les connexions entre les modèles se croisent et peuvent être difficiles à placer lorsque le modèle couplé possède beaucoup de sous-modèles.



L'objectif de ce stage est de proposer un ensemble d'algorithmes, à introduire dans la bibliothèque vlegraph, afin de proposer un placement automatique de modèles d'un modèle couplé sur une zone de dessin CairoSurface le tout en proposant une nouvelle visualisation des objets, de simple cercles pour les modèles atomiques ou couplé, et des flèches pour les connexions entre modèles.



Ce projet est susceptible d'être suivi d'un stage rémunéré au sein de l'INRA. Le stage pourra être effectué à Toulouse ou à Calais sous les encadrements de Éric Ramat, Gauthier Quesnel et Patrick Chabrier avec pour sujet le développement de GVLE.

Objectif


 * Comprendre le fonctionnement des 5 classes de la bibliothèque vlegraph.
 * Implémenter une méthode de placement automatique : par ex. les algorithmes à ressorts.
 * Implémenter une représentation graphique Cairo d'un modèle couplé.
 * Rendre interactive la représentation graphique de modèles couplés (les modèles et les connexions doivent pouvoir être créées, modifiées et/ou supprimées).
 * Remplacer la vue de la GVLE par celle nouvellement développée.

Langages et technologies


 * C++ - CMake - Gtkmm - Cairomm
 * Méthodes de graphes
 * Algorithmes à ressorts

Plate-forme de tests unitaires pour VLE - [mailto:gauthier.quesnel@toulouse.inra.fr Gauthier Quesnel] - INRA
Mots-clés


 * Tests unitaires
 * Virtualisation

Présentation du projet

Les tests unitaires sont très importants dans le développement de logiciel informatique et plus particulièrement avec les méthode agiles. La plate-forme VLE dispose de tests unitaires mais ces tests ne sont exécutés que sur les machines des développeurs, bien souvent, du x86 sous Debian GNU/Linux ou Microsoft Windows XP. Les programmes CMake (générateurs de Makefiles) et CDash (analyseur de résultats de tests unitaires) permettent de mettre en place un outil efficace pour la gestion de tests unitaires depuis de multiples OS, compilateurs, saveurs de noyaux etc. Par exemple, la page suivantes est un exemple d'analyses des sorties de CDash depuis les tests unitaires de CMake.

Pour ce projet nous nous proposons de développer un ensemble de scripts, programmes et autres infrastructures logicielles afin de pouvoir lancer les tests unitaires de VLE depuis plusieurs sources (OS, compilateurs etc.). Pour cela, un ensemble de machines virtuelles lancées pour exécutées les tests unitaires doit être mis en place.

Objectif


 * Étudier les logiciels CMake et CDash.
 * Ajouter les scripts CMake à VLE pour prendre en compte les tests unitaires.
 * Utiliser des outils de virtualisation, de chroot etc. pour mettre en place un ensemble d'OS de tests :
 * Dans un premier temps : Debian GNU/Linux x86, Freebsd x86 et Windows XP.
 * Dans un second temps : Linux sur : x86-64, PPC etc.
 * Proposer un structure pour intégrer ces tests pour n'importe quel type de logiciel.

Langages et technologies


 * CMake, chroot, kvm, qemu, Xen.
 * Debian, FreeBSD, MacOS, Windows etc.