Liste des projets 2009-2010

Sommaire

M2 I2L

Placement automatique de noeuds dans un graphe - Gauthier Quesnel - INRA

Etudiant : ??

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.

Fichier:Gvle-projet-manipulation1.png
GVLE : représentation de la hiérarchie de modèles couplés et de atomiques. (2 KB)

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.

Fichier:Gvle-projet-manipulation2.png
GVLE : Représentation du contenu d'un modèle couplé. Les boîtes vertes représentent les modèles couplés, les boîtes noires, les modèles atomiques. (3 KB)

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

Plate-forme de tests unitaires pour VLE - 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 logiciels informatiques et plus particulièrement avec les méthodes 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écuter 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 une structure pour intégrer ces tests pour n'importe quel type de logiciel.

Langages et technologies

VLE et les SIG - Raphael Duboz - CIRAD et Eric Ramat - INRA/LIL/ULCO

Etudiant : Rémi Tylski

Information importante : ce projet est suivi obligatoirement d'un stage recherche pour l'étudiant à la Maison de la Télédetection - Montpellier

Mots-clés

  • modélisation spatiale
  • SIG
  • modèle VLE

Présentation du projet

Le projet VLE (Virtual Laboratory Environment) est une plate-forme de multi-modélisation et de simulation développée à l'INRA de Toulouse, au Cirad et au Laboratoire d'Informatique du Littoral de l'université du Littoral. A l'heure actuelle, VLE dispose d'extensions pour la prise en compte de modèles spatiaux (Cell-DEVS, en particulier). En réalité, tout modèle peut représente un objet spatial (un lieu, une parcelle, ...) sans avoir un caractère particulier sous VLE. Dans ce cas, aucune extension n'est nécessaire. La description de la géométrie est alors interne au modèle et seules les connexions entre modèles pourraient traduire un certain voisinage spatial entre modèles. Une première expérience a été tenté pour construire de manière automatique un modèle spatial à partir de la description géométrique d'un parcellaire. Cette expérience est basée sur une description vectorielle au format shapefile et la bibliothèque GEOS pour les calculs géométriques.

L'objectif du projet est donc d'étudier les concepts des SIG et de les mettre en application sur un modèle particulier sous VLE. Cette mise en oeuvre sera l'occasion de construire une boucle contenant :

  • la construction dynamique de modèles VLE à partir de description Raster ou vectoriel à l'initialisation d'un modèle ;
  • la mise à jour du SIG pendant la simulation sachant que la géométrie et/ou les relations spatiales et/ou les données spatiales changent pendant la simulation.

Dans ce travail, on pose les hypothèses suivantes :

  • pas de relation privilégiée avec un SIG (des fichiers shapefiles peuvent suffir) ;
  • les données du SIG ne sont modifiées que par le modèle VLE (pas de dynamique dans le SIG).

Objectifs

  • étude des concepts des SIG : raster / vecteur ; topologie ; opérateurs spatiaux ; gestion du temps dans les SIG ;
  • réalisation d'un executive de construction ;
  • réalisation de l'interaction avec un SIG (ou plutôt avec des fichiers de type SIG).

Langages et technologies

Refonte d’un outil de chat sous Eclipse - Grégory Bourguin

Etudiants : Matthieu Maillard

Description

Dans le cadre du projet CooLDev, nous avons créé un outil de chat sous forme de plugin Eclipse permettant aux utilisateurs d’échanger de manière synchrone. Ce chat a été réalisé en se fondant sur la technologie JSDT de Sun. Malheureusement, JSDT possède des limites qui posent problème dans l’utilisation de notre outil en situation réelle. Le but de ce projet est donc d’opérer une refonte du plugin de chat existant en changeant principalement sa couche réseau.

Etapes :

  • Découverte de l’environnement de création de plugins Eclipse
  • Etude des problèmes liés au plugin de chat existant
  • Sélection d’un protocole réseau adéquat
  • Refonte du plugin

Développement pour le projet XiVO - Sylvain BOILY - Proformatique

Etudiant : Jean-Claude Soret

Description

Le projet de M2I2L est constitués de plusieurs "développements" autour du projet XiVO.

Ce projet est sous licence GPLv3 et les détails sont disponibles via un wiki : https://wiki.xivo.fr

XiVO est une solution de serveur de téléphonie complète basée sur Asterisk.

Conception et développement d'un outil de Literate Programming - Christophe Romain

Etudiants : ??

Description

Le projet porte sur literate programming; il y a plusieurs outils libre à ce sujet, mais chacun à des avantages/inconvenients, et tant de gens continuent à garder de mauvaises habitudes de développement...

l'idée est de faire un outil de literate programming très interfacable et avec certaines propriétés qu'il manque aujourd'hui aux outils de literate programming existants:

  • différent backend :
  • pour l'outil de literate programming (tangling/untangling): noweb, eweb (erlang), camlweb(ocaml), etc.
  • pour le control de version: git, bzr, monotone, meme svn pour ceux qui veulent. (forcément les DCVS on l'avantage avec le système de noeuds d'être extrêmement compacte)
  • choix ouvert d'édition des fichiers: vim, leo, etc., i.e. ne pas imposer un éditeur particulier
  • etc.

Il faut rendre le literate programming viable en enlevant les barrières actuelles: exemple, pouvoir modifier directement les sources générées (bidirectional literate programming), pouvoir travailler à plusieurs sur le même literate program (avec noweb de base c'est quasi impossible, avec leo sans trop modifier le code on peut difficilement le faire), etc...

c'est un sujet plus vaste qu'un simple projet libre, il y a de la réflexion, de la synthese, au moins pour lancer un VRAI projet libre, et si possible poser les premières briques.

Un proof of concept de plugin vim par exemple serait ideal, ce plugin pouvant ou exploiter l'existant (leo, lp4all, noweb, etc..) ou repartir des des bases plus simples. avec un client/serveur, rendant l'interfacage très simple.

Développement pour FusionForge - Julien Heyman - Atos Origin

Etudiant : William Berteloot

Description

FusionForge est une forge logicielle, fork/renommage de Gforge, lui-même fork de sourceforge (après qu'il soit passé propriétaire).

Il est au cœur du projet COCLICO qui a pour but de fusionner toutes les forges basées sur Gforge et Sourceforge.

Le projet est codé en grande partie en PHP. Il fonctionne avec du Postgresql ou du Mysql. Beaucoup de scripts (création des utilisateurs, création des dépôts pour le projet, génération des statistiques, création des tarballs des sources, ...) sont lancés par les crons. Ces scripts sont de types shell, perl ou php.

FusionForge implémente un système de plugin qui lui permet de s'interfacer facilement avec d'autres produits. On peut par exemple cité MediaWiki (permet de gérer un wiki par projet, mailman, cvs, svn, git, ldap, mantis, ...). Beaucoup d'entreprises ont développé des plugins qu'on espère voir reverser à FusionForge.

Ce projet est hébergé sur http://fusionforge.org (donc hébergé par lui même).

La communauté fonctionne avec le bug tracker fourni par fusionforge, deux mailings lists (general et commit) via le plugin mailman et dispose d'un canal irc #fusionforge sur irc.freenode.net où il est possible de joindre la communauté.

Objectifs

Il reste encore beaucoup de choses à réaliser (voir la Roadmap), notamment :

  • mette en place une configuration unifiée
  • mettre en place un packaging unifié entre rpm et deb
  • mettre en place des tests selenium
  • rajouter des tests unitaires
  • travailler sur le connecteur Mylyn (plugin Eclipse : http://www.eclipse.org/mylyn/)
  • Migrer les requêtes en base de données vers db_query_params (afin d'échapper automatiquement les paramètres et réduire les failles sur les injections sql)
  • Changer la librairie permettant la génération des graphes (statistiques en autre...) car la librairie actuelle (jpgraph) a une double licence (open source et commerciale), et n'est donc pas packagée chez debian dans une version récente. (cf [1])
  • etc.

Liens

La Ferme du Sart - Yohan Pannet

Etudiant : ??

Description

Fermes Urbaines est un concept de magasins de produit frais. Tout le business plan de la société est orienté de la même manière que le logiciel libre. Le concept a pour magasin­test la Ferme du Sart, un magasin de 1500m2 en métropole lilloise. Nous utilisons entre autre le logiciel OpenERP.

Point de départ: Actuellement, le site Web de la Ferme du Sart (www.lafermedusart.com) est hébergé dans nos locaux. Nous souhaitons le faire héberger à l'extérieur pour des raisons de sécurité et pour libérer de la bande passante. C'est aussi l'occasion de le refondre.

L'étudiant devra valider le choix de l'hébergement et/ou en proposer un autre. La contrainte principale est de pouvoir faire communiquer le site Web avec notre serveur applicatif. De même il devra valider le choix de Joomla!. Il s'occupera ensuite de la mise en place de la solution (squelette du site). La deuxième partie du stage consiste à la recherche de modules pour intégrer les fonctionnalités du site: notation des produits, inscription à des événements. Si aucune solution ne semble satisfaisante, il devra développer le module adéquat (et le mettre à disposition de la communauté) en lien avec un intégrateur OpenERP pour l'interface avec le serveur applicatif (gestion du flux des données CRM/ERP).

Objectifs

Mise en place du site Web de la société:

  • Validation de l'hébergement
  • Choix du CMS (ou autre)
  • Intégration ou développement de fonctionnalités (existante et nouvelles).

Langage et technologies

  • Joomla! (à déterminer)
  • Python

Projets pour SonarSource, PMD et XRadar - Romain Pelisse

Il s'agit là de plusieurs propositions de projets. Si l'un d'entre eux vous intéresse, prenez contact avec Romain Pelisse pour déterminer les détails/frontières de votre projet ainsi que la personne qui sera votre encadrant

Idées de projets autour de PDM :

  • Créer un moteur de règles en Java pour vérifier la qualité d'un template HTML : le pendant de PMD mais pour du code HTML qui n'est pas du XTML et avec beaucoup plus de règles (utilisation de http://htmlparser.sourceforge.net/ ?) - peut être fournir simplement à PMD un moyen d'analyser du HTML qui ne soit pas valide au sens XML (limite actuelle de PMD)
  • Réutilisation de la grammaire Ruby disponible dans JRuby (AST) pour en effet étendre PMD
  • Réutilisation de la grammaire Groovy disponible dans ... Groovy (AST) pour en effet étendre PMD
  • Etendre Squid pour couvrir ces deux langages toujours avec les arbres AST disponibles dans JRuby et Groovy
  • Reprendre le développement du détecteur de code mort - DCD - dont une base de code est déjà inclue dans PMD.
  • En un poil plus ambitieux, la même chose mais cette fois ci sur du C/C++ avec le parseur disponible dans le projet eclipse CDT
  • La même chose mais cette fois ci sur du PHP avec le parseur disponible dans le projet eclipse PDT
  • Très lié au monde Sonar : Création d'un plugin eclipse qui vient colorer le code source à la volée à partir des infos disponibles via les webservices Sonar
  • Toujours lié au monde Sonar : Création d'un composant Flash de visualisation de dépendances entre packages/classes

Enfin, j'ajoute aussi une idée intéressante liés à Mercurial (et finalement peut être Git). A ma connaissance, aucun solution de gestion de source distribué ne dispose de librairie "full Java". L'idée serait donc de développer une librairie "full-java" qui "parle" le protocole utilisé par Mercurial et aussi qui comprennent aussi la gestion de son dépôt local. Cette librairie formerait un atout précieux pour offrir une réelle intégration de Mercurial au sein de "run time" Java comme Eclipse, Ant ou Maven...

Pour des infos complémentaires sur ces projets vous pouvez aisément "googler" ces produits :

XRadar <http://www.google.com/search?q=XRadar&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:fr:official&client=firefox-a>

"Java Hudson" <http://www.google.com/search?q=Java+Hudson&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:fr:official&client=firefox-a>

par exemple... PS: La page de Hudson est un peu longue à charger par contre.

Idées de projets autour de Sonar :

Sur l'ensemble de sujets proposés, tous les projets qui nécessitent de la manipulation d'arbres AST demandent un effort de mise à niveau et une capacité d'abstraction assez important.

Les deux projets les plus abordables du côté de Sonar sont certainement :

  • La création d'un plugin Eclipse de colorisation du code source à la volée en s'appuyant sur l'ensemble des informations qualité mises à disposition par Sonar sous forme de Web Services : code dupliqué, couverture de code par les tests unitaires, violations, code commenté, ...
  • La création d'un moteur de règle pour analyser la qualité de templates HTML (JSP, JSP, PHP, ...) :
    • Transformer du code HTML en pur XHTML à l'aide de la librairie http://nekohtml.sourceforge.net/
    • Réutilisation du moteur de règle PMD pour profiter d'un framework éprouvé
    • Ecriture de nouvelles règles qualité

OCS Inventory - Goneri Lebouder - Atos Origin Open Source Center

Etudiant : Aurélien Werner

Description

OCS Inventory est un logiciel de gestion d'inventaire et de télédiffusion. Les administrateurs de parc informatique peuvent ainsi retrouver la liste de leurs machines et télédiffusion.

Le logiciel est un ensemble client serveur qui utilise MySQL comme base de données et qui est décomposé de la façon suivante :

  • un serveur central écrit en Perl,
  • une interface d'administration écrite en PHP,
  • un agent pour Windows écrit en C++,
  • et enfin un agent pour UNIX lui même réalisé en Perl

Ces composants sont utilisés sur de nombreux gros parcs informatiques en France et dans le monde. Les références principales étant :

  • Gendarmerie : 90 000 machines,
  • Assurance Maladie : 107 000 machines

Nous sommes toujours à la recherche de personnes motivées pour contribuer sur le projet et sommes près a aider pour la periode d'intégration comme nous le faisons déjà aujourd'hui.

Les tâches qui nous semble intéressantes dans un premier temps concerne l'interface d'administration (PHP/MySQL) et les agents. Cependant, le stagiaire peut aussi vouloir améliorer des points qui l'intéresse (meilleur détection de son matériel, amélioration de point l'architecture, documentation).

Nous sommes disponible sur IRC #ocsinventory-ng sur FreeNode.

gDTC - Benjamin Drieu - April

Etudiant : Valentin Schmitt

Description gDTC est un outil libre de gestion d'association, développé initialement par l'April pour ses besoins internes. L'April travaille actuellement à l'extension du projet vers un outil d'aide à l'animation de communautés au sein de l'association.

Ainsi, plusieurs modules sont en cours de spécification :

  • module de mailing permettant d'envoyer des informations personnalisées par mail à plusieurs milliers d'adhérents ;
  • module comptable (interface avec l'outil comptable) ;
  • module de gestion de groupe de travail (définition d'ACL, gestion du bénévolat valorisé) ;
  • module de tableau de bord.

Nous proposons un projet autour du module de mailing. Les 5000 adhérents de l'April reçoivent un certain nombre d'informations personnalisées par mail, le système actuel montre des insuffisances en termes de performances et de souplesse.


Objectif

L'objectif est d'implémenter ce module de mailing en se basant sur des spécifications existantes. Parmi les tâches prévues :

  • participer à la finalisation des spécifications et du schéma de base de données ;
  • développer le moteur d'envoi de mails :
    • service en tâche de fond (daemon) ;
    • respect des standards SMTP ;
    • gestion des préférences utilisateur (format de réception) ;
    • logs ;
    • contrôle des délais et de la masse d'envoi, gestion des priorités.
  • gestion et analyse des retours de mail (bounce) : statistiques, remontée d'alertes, ...
  • développement de l'interface de programmation de mailing (sélection des destinataires) et de suivi (statistiques, progression) ;
  • amélioration de l'interface d'écriture de mail (syntaxe smarty, structuration du mail, sélection des en-têtes).

Langages et technologies

  • SMTP, Exim
  • PHP/Smarty
  • MySQL

Développement pour w.c.s. - Frédéric Péters - Entr'ouvert

Etudiant : Zoser Biziki

Description

w.c.s. est un serveur de téléformulaires, d'abord développé pour des administrations locales (pour des besoins de formulaires du type "inscription médiathèque"), il a depuis évolué pour également convenir à d'autres tâches, par exemple comme système de suivi de bugs, ou encore comme site de vote pour la dernière assemblée générale de l'April.

w.c.s. est développé par Entr'ouvert, une SCOP (coopérative) travaillant principalement autour de l' "administration électronique", bien engagée, en elle même et par ses travailleurs, dans les logiciels libres. Il est rarement évident de marier "développement d'entreprise" et "développement communautaire", mais une base de travail commune a été posée en choisissant de développer publiquement (Subversion) et d'utiliser une licence claire à savoir la GNU GPL. Le site officiel du projet est http://wcs.labs.libre-entreprise.org/

Langages et technologies

Développement pour la libgit2 - Andreas Ericsson

Etudiants : Sébastien Dumont et Romain Gauthier

Description

Git [2] est un logiciel de gestion de versions décentralisé. C'est un logiciel libre créé par Linus Torvalds. Ce logiciel a été créé pour remplacer BitKeeper [2]. Du fait de son développement dans l'urgence, son design n'a pas prévu une couche facilement réutilisable, c'est à dire une bibliothèque digne de ce nom.

Un projet a donc été lancé en parallèle du développement de git pour développer cette bibliothèque : la libgit2 [3][4].

Quelques précisions sur le projet (au 2009.09.28):

  • Langage C;
  • Guidé par les tests unitaires (3274 lignes de code correspondants aux tests);
  • Initié par Shawn O. Pearce le 2e commiteur de git (1320 patchs);
  • Un log history de 155 patchs;
  • 7 commiteurs différents dont 1 Français;
  • Un projet très attendu par la communauté et certaines entreprises.

libgit2 - Hervé Cauwelier - itaapy

Etudiants : (2 étudiants)

Description

La librairie partagée /libgit2/ [5], écrite en C, est censée, à terme, remplacer le noyau du système de contrôle de versions /Git/ [6] (ce qu'on appelle la plomberie).

Mais le développement de libgit2 est inactif depuis quelques mois. L'objectif de ce projet est de lui donner un nouveau souffle, et aussi à son wrapper Python [7].

Le point de départ sera l'effort en cours mené par Hervé Cauwelier [8][9][10].

itools : améliorer la localisation de documents - J. David Ibáñez - itaapy

Etudiant :

Description

Parmi d'autres fonctionnalités, la bibliothèque itools [11], écrite en Python, inclut des utilitaires pour la traduction de documents ODF et HTML.

Une des étapes de la chaîne de traduction consiste à extraire d'un document le texte qui est susceptible d'être traduit. L'objectif de ce projet consiste à améliorer l'algorithme utilisé aujourd'hui, pour faire un découpage plus précis.

itools : optimiser l'indexation de documents MS Office - J. David Ibáñez et Hervé Cauwelier - itaapy

Etudiant :

Description

La librairie itools.office [12] est capable d'extraire le texte contenu dans fichiers de type .xls, .doc et .ppt (ce qui permet son indexation dans un moteur de recherche).

L'objectif de ce projet est d'optimiser ce code, pour ce faire, le module "office/ole.py" doit d'abord être réécrit en C. La tâche à réaliser est bien définie dans les bug-tracker du projet itools [13][14].

Dans l'idéal ce projet devra contribuer au logiciel catdoc [15], puisque le code d'itools en dérive.

Empaqueter itools dans diverses distributions GNU/Linux - Guillaume Romanczyk - itaapy

Etudiant :

Description

L'objectif de cette tâche consiste à fournir des paquets de la bibliothèque itools [16], et de ses dépendances si nécessaire, pour autant de distributions GNU/Linux que possible : Gentoo [17], Debian [18], Arch [19], etc.

L'étudiant devra proposer les paquets pour inclusion dans ces distributions et travailler avec ses communautés, en suivant ses procédures, pour résoudre les problèmes que pourraient empêcher l'inclusion des paquets.

Améliorer le script iodf-greek.py - J. David Ibáñez - itaapy

Etudiant :

Description

La bibliothèque itools [20] inclut un utilitaire nommé iodf-greek.py qui prend un fichier ODF [21] et en génère un autre où le texte et les images ont été remplacés pour rendre ainsi le document anonyme. La fonctionnalité est aussi disponible à travers une interface web [22].

Ce développement a été réalisé pour OfficeShots [23]. L'objectif de cette tâche est d'améliorer ce script, comme par exemple, en filtrant les macros qui peuvent être inclues dans un document ODF.

M2 ISIDIS

Placement automatique de noeuds dans un graphe - Gauthier Quesnel - INRA

Etudiants : ?? (deux étudiants)

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

Plate-forme de tests unitaires pour VLE - 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 logiciels informatiques et plus particulièrement avec les méthodes 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écuter 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 une structure pour intégrer ces tests pour n'importe quel type de logiciel.

Langages et technologies

Plate-forme Web de démonstration pour la gestion des plans d'expériences de VLE - Eric Ramat - INRA/LIL/ULCO

Etudiant : Daniel Salomé

Mots-clés

  • développement Web
  • exécution sur cluster

Présentation du projet

VLE est aujourd'hui disponible sous forme d'un exécutable modulaire pour la simulation de modèles à base d'événements discrets. Il s'accompagne aussi d'outils d'interface comme gvle ou eov pour la construction de modèles, l'exécution d'expériences simples et de visualisation temps-réel des simulations. Ces outils sont plutôt orientés mono-postes même si la visualisation temps-réel peut être déportée par rapport au noeud d'exécution de la simulation.

Dans ce projet, on se propose de construire, à partir d'un cluster de 8 serveurs SUN V20Z bi-processeurs et d'un serveur bi-processeur, un "petit" serveur de démonstration de vle en mode cluster. Ce serveur doit aussi embarquer un dépôt de modèles vle sous forme de paquets et des interfaces de gestion des expériences.

Objectif

L'objectif est de proposer une interface Web pour la définition et l'exécution de plans d'expériences. Il se découpe en plusieurs sous-projets :

  • les plans d'expériences :
    • étude de la solution de développement Web (Python) :
      • pour le framework Web : Pylons (le livre)
      • pour la persistance : SQLAchemy et SQLite (un livre)
      • pour les templates : Mako
      • pour l'AJAX : jQuery (communauté française)
      • pour l'URL dispatching : Routes
      • les paquets debian : python2.5, python-pylons, python-authkit, python-sqlalchemy, sqlite3, python-mako, libjs-jquery et python-routes (plusieurs paquets s'installent lors de l'installation du paquet python-pylons)
    • développement des scripts de définition d'un plan d'expériences simple (au sens VLE)
  • l'interface utilisateur :
  • tracé de courbes de résultats avec matplotlib et SciPy à partir des sorties de simulations
    • courbes 2D (sortie, temps)
    • grilles (avec choix de la date de l'état à visualiser)
    • gestion des modèles (dépôt de modèles VLE - ssh via des comptes sur le serveur)
  • le cluster :
    • recherche d'une distribution adéquate pour le clustering et installation sur le cluster
    • installation du noeud root et déploiement de l'architecture Web
  • l'exécution sur le cluster :
    • exécution des plans sur le cluster
    • visualisation de la progression de l'exécution des plans
    • reporting d'exécution des plans

La grande majorité des tâches ont été réalisé dans le cadre d'un projet et d'un stage en 2009. Il reste "plus" que la partie déploiement de l'application et gestion de l'exécution sur cluster.

Langages et technologies

  • Python - Pylons
  • Linux/clustering

Implémentation de sources lumineuses de type flammes dans un moteur d'illumination globale - Christophe Renaud

Etudiants : Ulrich DUVENT

Présentation du projet

Dans le cadre de leurs activités de recherche, les membres du projet OASIS du Laboratoire d'Informatique du Littoral ont développé une plateforme logicielle de simulation de l'éclairage nommée IGLOO. Cette plateforme permet d'expérimenter divers algorithmes d'illumination dont l'objectif est de fournir des images de synthèse réalistes. Dans sa version actuelle, cette plateforme ne gère ques des sources de lumière relativement simples. L'objectif de ce travail est d'implanter des sources plus complexes de type flammes (bougies, torches, ...) au sein de cette plateforme. La conception modulaire de la plateforme permettra de concentrer le travail sur quelques classes existantes et quelques classes à créer. De même les développements envisagés se feront de manière progressive, en partant de descriptions très simples de flammes pendant la phase d'intégration des classes à développer pour aller au fur et à mesure vers des modèles plus complexes. Le travail sera à réaliser en C++ sous Linux.

A noter qu'aucune connaissance spécifique en synthèse d'images n'est requise pour ce projet.

Conception et développement d’une base de données pour le Business Process - Mourad Bouneffa

Etudiants : ?? (deux étudiants)

Présentation du projet

L’activité de Business Process a pour principal objectif de modéliser les processus de gestion et de management d’une entreprise. Ces processus sont généralement des processus métier (activité de ventes, etc. ). Ces processus sont supportés par des applications qui sont elles mêmes déployées sur des machines disséminées sur différents sites et utilisées par différents types d’acteurs de l’entreprise.

[Fig.1: Modélisation globale de l’activité d’une organisation]

Ces dernières années de nombreuses entreprises et organisations se sont intéressées à la modélisation et à la gestion quasi automatisée des processus ce qui a donné naissance à la notion de BPM (Business Process Management). En effet, l’agilité du management exige de disposer d’une image réelle des différents processus de l’entreprise, de pouvoir matérialiser les différents liens de dépendance qui existent notamment entre les processus, les processus et les applications, les applications et les acteurs, etc. Cela constitue une aide importante dans le cadre de la réingénierie des activités de l’entreprise ou de son système d’information. La figure 1 schématise les différents constituants d’une cartographie d’un système d’information rentrant dans le cadre de la gestion globale des processus d’une organisation.

Il s’agit donc comme le montre cette figure de modéliser les processus métiers, les fonctionnalités devant être mises en oeuvre pour exécuter ces processus, les applications informatiques implémentant ces processus, les supports techniques (machines et réseaux) supportant ces applications et l’organisation de l’entreprise aussi bien au niveau de l’organigramme que de la dissémination géographique.

Des exemples de modélisation sont donnés, à titre indicatif, par les figures 2, 3, et 4.

  • Ce projet consiste à concevoir une base de données (en utilisant le formalisme UML) permettant de représenter tous les constituants d’une modélisation globale de l’activité de l’entreprise.
  • Cette base sera par la suite créée sur le S.G.B.D. Mysql
  • Il s’agira par la suite d’implémenter une application web permettant d’alimenter la base de données et des requêtes prédéfinies que l’on définira dans le cadre du projet. Le langage utilisé pour la réalisation de l’application sera le langage Java (utilisation de pages JSP).

Implémentation agile d’outils coopératifs de gestion de projets informatiques : utilisation de la plate-forme BonitaBPMs - Mourad Bouneffa

Etudiants : Aliou Mbaye

Présentation du projet

Le travail visé par ce projet est l'utilisation de la plate-forme de BPM (Business Process Management) open source BonitaBPM (http://www.bonitasoft.com/) pour la mise en oeuvre de workflows destinés à la gestion de projets informatiques.

La plate-forme de BPM de BonitaSoft se compose de plusieurs outils permetant entre autres :

  • La conception ou design d’un BPM de façon graphique à l’aide d’un pluging Eclipse dédiés.
  • Un portail s’exécutant sous Tomcat pour le déploiement et l’administration des processus métiers
  • Des outils permettant un déploiement sur un serveur d’applications
  • Etc.

Dans ce projet, le travail à réaliser consiste à :

  • Elaborer des BPM (en utilisant le pluging Eclipse de BonitaBPM) pour la gestion de projet informatiques correspondant aux principales approches de développement qui sont : le processus 2TUP (processus en Y) et l’eXtreme programming.
  • Ces BPM seront déployés sur la plate-forme de déploiement de BonitaBPM.
  • Développer des services web permettant de relier les workflows ou BPMs ainsi déployés aux outils utilisés par les développeurs et les gestionnaires de projets (IDE, etc.)

Refonte d’un outil de chat sous Eclipse - Grégory Bourguin

Etudiants : ??

Description

Dans le cadre du projet CooLDev, nous avons créé un outil de chat sous forme de plugin Eclipse permettant aux utilisateurs d’échanger de manière synchrone. Ce chat a été réalisé en se fondant sur la technologie JSDT de Sun. Malheureusement, JSDT possède des limites qui posent problème dans l’utilisation de notre outil en situation réelle. Le but de ce projet est donc d’opérer une refonte du plugin de chat existant en changeant principalement sa couche réseau.

Etapes :

  • Découverte de l’environnement de création de plugins Eclipse
  • Etude des problèmes liés au plugin de chat existant
  • Sélection d’un protocole réseau adéquat
  • Refonte du plugin

Développement d'une application Intranet (J2EE) permettant d'importer des données dans la base Oracle - Mourad Bouneffa et Nicolas Girard - MAIA EOLIS

Etudiants : Max Devulder, Nicolas Deroo et Guillaume Ansel

Description

MAIA EOLIS développe actuellement une base de données visant à recueillir l'ensemble des données de surveillance, de fonctionnement et de calcul des éoliennes de ses parcs éoliens. La quantité de données est relativement importante et cela ne fera qu'augmenter avec le nombre de parcs éoliens exploités par Maia Eolis.

En complément de cette base de données, Maïa Eolis développe une interface intranet afin de faciliter et d'optimiser l'utilisation des données présentes au travers de fonctions, de requêtes simple, de suivi de courbe de puissances et d'importation de données.

Comme mentionné ci-dessus la base de données et l'intranet de Maïa Eolis sont en cours de développement et un certain nombre d'étape dans le projet ont déjà été définies.

Le projet consiste à développer des nouvelle fonctionnalités permettant d'importer des données météorologiques issues de mâts de mesure, de stations météos et de prévisions de production dans la base de données.

Tâches à réaliser :

  • Création des interfaces Web en JSP permettant aux utilisateurs de sélectionner des fichiers de données (csv).
  • Développement des objets Java pour traiter les fichiers et récupérer les données.
  • Développement des interfaces (Remote et Local) et des class (EntityBean) de la partie métier.
  • Création la partie contrôle pour gérer les pages JSP

Moyens informatiques mis en œuvre :

  • La Plate-forme J2EE ((Java 2 Enterprise Edition )est une norme proposée par la société Sun, portée par un consortium de sociétés internationales, visant à définir un standard de développement d'applications d'entreprises multi-niveaux, basées sur des composants.
  • Le FramWork Struts pour fournir un cadre standard de développement d'applications Web en Java respectant l'architecture dite MVC (Modèle-Vue-Contrôleur).
  • Utilisation des EJB3 (EnterpriServeur d'application JBOSS

Conception et évaluation de la qualité des applications distribuées - Henri Basson

Etudiants : ??

Description

L’assurance la qualité des applications distribuées a pour objectif principal de répondre aux exigences, architecturales, fonctionnelles, comportementales et qualitatives, des clients et des utilisateurs. Ces exigences peuvent être exprimées généralement par des critères qualitatifs à satisfaire tels que la modularité, l'évolutivité, la réutilisabilité, la fiabilité, la sécurité de fonctionnement, etc. Des modèles existent déjà pour exprimer les liens qui existent entre ces facteurs de haut niveau et des métriques du logiciel. Les mesures sont obtenues de façon automatique et peuvent concerner la structure du logiciel (mesures statiques) ou son comportement (mesures dynamiques).

Dans le cadre de l’aide à la décision pour l’assurance qualité des applications distribuées, ce sujet a pour objectif de concevoir et développer une arborescence, permettant à l’expert de l’application distribuée en cours d’instancier ses caractéristiques qualitatives. Ensuite, moyennant l’application d’une batterie des métriques, pouvoir fournir un bilan de conformité des caractéristiques qualitatives par rapport aux seuils tolérés de ces caractéristiques.

  • Langage d’implémentation Java ou C#
  • Plateforme Eclipse ou .NET (visual studio 2008)

Utilisation de moteur des règles Drools pour l'analyse d'impact des modification des applications distribuées - Henri Basson

Etudiants : ??

Description

La gestion de l'évolution des applications distribuées dans leurs composants, leurs connecteurs et de configurations est un processus vital pour la pérennité de Systèmes évolutifs.

Dans ce cadre, l’analyse de l'impact des modifications d’un composant ou d’un connecteur, sur le reste de l’application est une activité critique pour une bonne gestion de l’évolution. Pour y parvenir, plusieurs approches ont été élaborées. Celle qui semble être la plus systématique s’appuie sur une approche intégrée de modélisation des applications distribuées. Elle applique ensuite une approche à base des règles permettant d’identifier les chemins de propagation des modifications et d’aider au contrôle de l’évolution.

Les données représentatives de l’application constituent une base des faits sur laquelle s’appuie un moteur d’inférence constitué des règles JESS dont le finalité est d’aboutir à une analyse pertinente de l’impact de modifications envisagées.

  • Langage d’implémentation Java
  • Plateforme Eclipse

Rénovation d'une application d'analyse du sommeil - Arnaud Lewandowski

Etudiants : ??

Description

L'analyse du sommeil fait l'objet d'études approfondies. Une application, une sorte "d'agenda du sommeil", a été développée pour permettre aux sujets étudiés de rapporter leurs périodes de sommeil, dans le but d'analyser celles-ci. L'application a notamment pour vocation d'être utilisée par les skippers, lors de courses nautiques, afin de calculer leurs temps de sommeil, le retard accumulé, l'impact sur la vigilance, etc.

L'application se décline en deux versions : une version PC, développée en Java SE, et une version mobile, développée en Java ME. Le développement, effectué dans le cadre d'un stage, ne donne pas entière satisfaction et rend l'évolution de l'application très difficile.

L'objectif du projet est donc de rénover le code dans un premier temps, et ensuite de terminer l'application.

Modélisation d’un système multi-agent pour la gestion de traçabilité : Utilisation de la plateforme Madkit - Hanaa Mazyad

Etudiant : Alex Ohoussou

Description

Un système multi-agents est un système distribué, constitué de plusieurs agents stables vivant au même moment, partageant des ressources communes et communicant entre eux.

Ce projet consiste à mettre en place un système multi-agents pour gérer la traçabilité d’un système d’apprentissage collaboratif. En effet, Il s’agit d’implémenter des agents capables de surveiller les étudiants inscrits sur une plateforme de gestion de projets (Connexion/déconnexion, travail effectué sur la plateforme, etc.). Le but de ce système est de faciliter le travail de l’enseignant en lui permettant de connaître la contribution de chaque étudiant au travail du groupe auquel il appartient. Ce projet est à programmer en Java sur la plate-forme MadKit.

M1 INFO

Génération automatique de routes en 3D - Christophe Renaud

Etudiants : Valentin Henon et Aurélie Blot

Description

L'objectif de ce projet consiste à développer un embryon de simulateur de conduite, permettant de :

  • reconstruire une route en 3D à partir d'un ensemble de coordonnées géographiques (x,y,z) contenues dans un fichier ;
  • autoriser le déplacement d'un véhicule virtuel sur cette route, en visualisant le déplacement du véhicule depuis le point de vue du conducteur ;
  • enregistrer les images produites par la séquence de déplacement dans un fichier vidéo.

Le travail sera à réaliser en C++ et à l'aide des librairies OpenGL pour la visualisation3D et wxWidgets pour la création d'un interface graphique. L'enregistrement dans un fichier vidéo sera également réalisé à l'aide d'une librairie non définie à ce jour.

Gestion de paquets VLE à distance - Gauthier Quesnel - INRA

Etudiant : Tatiana Pruvost

Information importante : ce projet est suivi obligatoirement d'un stage rénuméré à l'INRA pour l'étudiant

Mots-clés

  • VLE, serveur de paquets VLE, téléchargement, ftp et http.

Présentation du projet

La plate-forme VLE est une plate-forme de modélisation et de simulation de systèmes dynamiques. Elle permet à ses utilisateurs de développer des paquets qui représentent des projets de modélisation. Il existe plusieurs sortes de paquets dans VLE : les paquets sources et les paquets binaires. Les paquets sources contiennent comme indiqué dans leurs noms, les sources des modèles de simulations, les données de ces modèles et les fichiers d'expériences. Les paquets binaires proposent la même chose mais en remplaçant les sources des modèles par leur représentation compilée, c'est-à-dire, au format de fichiers .so ou .dll.

Afin de simplifier la vie des utilisateurs, nous aimerions qu'à partir de VLE et GVLE, nous puissions récupérer la liste des paquets disponibles sur une URL spécifiée. Cette liste est transmise à l'utilisateur qui peut alors sélectionner le ou les paquets qu'il aimerait récupérer ainsi que leur format.

Le dépôt de paquets est un dossier dans lequel se trouve tous les projets disponibles dans un format très simple. Chaque paquet VLE est stocké dans un dossier où se trouve :

  • un fichier description.txt : un fichier texte décrivant le paquet.
  • un fichier nom-paquet.tar.gz : une archive avec les sources du projet.
  • un fichier nom-paquet-win32.zip : une archive binaire pour win32.
  • un fichier nom-paquet-linux.zip : une archive binaire pour linux.

Objectifs

  • Regarder la bibliothèque libxml2 et ses méthodes nanoftp et nanohttp.
  • Développer une classe Repository dont l'interface permet (en utilisant nanoftp et nanohttp) de :
    • récupérer la liste de paquets du répertoire principal (un répertoire par modèle).
    • récupérer la description du paquet dans le répertoire (fichier Description.txt).
    • récupérer un fichier zip, tar.gz du répertoire du paquet.
  • Proposer une interface en ligne de commande depuis VLE.
  • Proposer une interface graphique pour GVLE.

Langages et technologies

Génération de fichiers OpenDocument et OpenXML - Gauthier Quesnel - INRA

Etudiant : Guillaume Radenne

Information importante : ce projet est suivi obligatoirement d'un stage rénuméré à l'INRA pour l'étudiant

Mots-clés

Présentation du projet

VLE est un simulateur qui utilise des modèles de simulations et des valeurs d'initialisations pour générer des sorties. Ces sorties sont aujourd'hui enregistrées dans des fichiers simples au formats textes simples comme les fichiers cvs. Nous aimerions disposer de sorties plus conviviales pour les utilisateurs à travers les applications qu'ils utilisent, c'est-à-dire, OpenOffice ou Microsoft Office.

Les sorties d'un simulateur sont souvent représentées sous la forme de tableau dont l'ordonnée représente l'évolution du temps de la simulation et l'abscisse les variables observées. Ainsi, les formats de fichiers XML .ods et .xls semblent être de très bons candidats puisqu'ils sont issus des tableurs. Le but du projet est de développer deux greffons à OOV pour générer, en cours de simulation, des fichiers pour les tableurs OpenOffice ou Microsoft Office.

Objectifs

  • Étudier le fonctionnement de l'équipe de VLE.
  • Comprendre le fonctionnement des plug-ins OOV.
  • Étudier les normes OpenDocument, OpenXML dans leurs parties tableurs, et uniquement sur les données.
  • Implémenter le greffon OpenDocument.
  • Implémenter le greffon OpenXML.

Langages et technologies

jvle : wrapper Java pour VLE - Eric Ramat - INRA/LIL/ULCO

Etudiant : Loik Hameaux

Information importante : ce projet est suivi obligatoirement d'un stage rénuméré à l'INRA pour les étudiants

Mots-clés

Présentation du projet

Le projet VLE (Virtual Laboratory Environment) est une plate-forme de modélisation et de simulation développée à l'INRA de Toulouse, au Cirad et au Laboratoire d'Informatique du Littoral de l'université du Littoral. La manipulation des projets de simulation est possible via plusieurs environnements et langages :

  • gvle, une interface graphique,
  • rvle, un wrapper R pour le logiciel R de statistiques,
  • pyvle, un wrapper python pour le scripting python et en particulier pour la construction d'interfaces Web

Pour être complet et répondre aux besoins des utilisateurs (informaticiens, chercheurs, ...), nous envisageons de proposer un wrapper Java. Ce wrapper aura les mêmes fonctionnalités (même API) que les wrappers R et Python :

  • la manipulation des fichiers de description d'une expérience et d'un modèle (les fichiers VPZ)
  • le contrôle d'une ou plusieurs simulations
  • la récupération en natif des données de sortie d'une simulation

Objectifs

  • étude de la technologie JNI (Java Native Interface) du langage Java
  • écriture du module de conversion de types (comment passer d'un objet C++ à un objet Java ou type simple)
  • écriture du wrapper proprement dit

Langages et technologies

  • Java et C++
  • JNI

Plugins de modélisation pour gvle - Eric Ramat - INRA/LIL/ULCO

Etudiants : Remy Desrivières et Grégory Lengagne

Information importante : ce projet est suivi obligatoirement d'un stage rénuméré à l'INRA pour l'un des étudiants

Mots-clés

  • interface graphique avec GTKmm/C++
  • algorithmes de tracé de graphes

Présentation du projet

Le projet VLE (Virtual Laboratory Environment) est une plate-forme de modélisation et de simulation développée à l'INRA de Toulouse, au Cirad et au Laboratoire d'Informatique du Littoral de l'université du Littoral. VLE dispose d'une interface graphique de définition et de gestion de modèles et des expériences associées. A l'heure actuelle, la phase de construction combine à la fois un aspect graphique (la construction d'un graphe hiérarchique de modèle couplés) et un aspect programmation en C++. L'aspect graphique est déjà disponible. La partie développement en C++ est réalisée de manière simple via un éditeur de code. Or un environnement de modélisation doit se doter d'outils de plus haut niveau afin que le modélisateur puisse raisonner au niveau d'un ou plusieurs formalismes (équations différentielles, équations aux différences, automates à états finis, réseau de Petri, ...) et que l'écriture du code C++ soit allégé au maximum.

L'idée générale du projet est donc de développer des plugins (greffons) de modélisation à base d'interfaces graphiques (boites de dialogue, panel graphique, ...) et accompagnés de générateur de code C++. La génération de code sera simplifiée grâce à l'utilisation d'un système de templating comme ctemplate.

Objectifs

  • étude d'un formalisme qui se présente sous forme d'une extension sous VLE
  • conception de l'interface graphique
  • développement de l'interface graphique
  • écriture des fichiers de templates
  • génération de code C++

Tous les formalismes ne donnent pas lieu à la même difficulté. Certains vont se limiter à une boite de dialogue (par exemple, DifferenceEquation) et d'autres vont nécessiter des éditeurs graphiques (par exemple, PetriNet ou FSA).

Langages et technologies

  • GTKmm et C++
  • Glade
  • Cairo

Modification d’un logiciel de visualisation en Java - Arnaud Lewandowski et Alexei Sentchev

Etudiants : ??

Description

Depuis les deux dernières années, l’Institut de Recherche et Développement (IRD) développe un logiciel en Java « Ichthyop » pour la simulation, l’analyse statistique et la visualisation du transport et la dispersion des larves de poissons. La documentation, les sources et le démo sont en accès libre (http://www.ur097.ird.fr/projects/ichthyop). On s’intéresse à l’utilisation de ce logiciel en Manche, ce qui nécessite un certain nombre de modifications. Il s’agit d’introduire les traits de côtes, bathymétrie, fichiers d’entrée, compiler et réaliser des tests. Le projet se terminera par la création d’un manuel détaillé pour les utilisateurs qui n’ont pas de connaissance de Java.

Contact : Alexei Sentchev, MCF physique, Laboratoire d’Océanologie et Géosciences, MREN, Wimereux, sentchev@univ-littoral.fr

Conception et développement d’un site web : Semiotics of Law - Anne Wagner et Arnaud Lewandowski

Etudiants : Freddy DUVENT, Edgar SMITH et Ali YAZIT

Contexte

Depuis 20 ans, la sémiotique juridique s’est développée dans le monde et nous souhaitons rendre nos travaux de recherche, nos bases de données, nos références bibliographiques visible sur le Net à tous ainsi que de créer un forum de discussion et des accès sécurisés pour nos membres afin de présenter des travaux en cours.

Objectifs

Le projet devra suivre une démarche complète d'analyse et de conception impliquant le client (en l'occurrence, Mme A. Wagner). La solution web proposée devra notamment assurer les fonction suivantes :

  • Présentation dynamique du site avec des informations sources et clefs pour tout public sur nos différents axes de recherche.
  • Gestion sécurisée des accès via des sessions
  • Différents modes de travail (administrateur, comité scientifique, membres)
  • Planification des différentes conférences et gestion des modifications
  • Mise en place d’une base de données de nos membres et mise à jour automatique
  • Mise en place des CV du comité scientifique avec possibilité de remise à jour
  • Construction automatique de références bibliographiques et gestion des modifications par l’administrateur.
  • Mise en place d’un intranet avec forum de discussion sécurisé

Interfacer le moteur de rendu d'illumination globale Igloo avec le modeleur Blender - Samuel Delepoulle

Etudiants : ??

Description

Blender est un modeleur 3D libre qui permet de réaliser des scènes interactivement (géométrie, matériaux, textures, illumination, séquences...). Par défaut Blender utilise un moteur de rendu simplifié pour générer des images de synthèse (images et animations). Il est aussi possible d'appeler d'autres moteurs afin d'obtenir un rendu plus réaliste (Povray, Indigo, YafRay, Mental Ray...). Par ailleurs, l'équipe OASIS (Optimisation et Accélération des Séquences d'Images de Synthèse) du LIL utilise un moteur de rendu développé en interne (Igloo).

Travail à réaliser : réaliser un plug-in d'appel du moteur Igloo depuis Blender.

Optimisation combinatoire sur GPU Nvidia 8800 - Denis Robilliard et Virginie Marion

Etudiants : ??

Objectif : Préciser une borne inférieure pour le 7ème nombre de Van der Waerden, par un algorithme d'optimisation stochastique implanté sur GPU (cartes graphiques à haute puissance de calcul).

Présentation

On considère une séquence de 0 et de 1, et on s'intéresse aux bits dont les indices dans la suite forment une progression arithmétique (c'est à dire ceux d'indice i, i+k, i+2*k, i+3*k, ... contenus dans la séquence) et qui sont de même valeur (que des 0 ou que des 1), que l'on appellera "suite monochromatique". Si on considère par exemple k = 3, on peut trouver une séquence binaire sans une telle suite monochromatique (ex : 00110001). Par contre dès que la séquence est de longueur 9, on trouve toujours une telle suite : donc le nombre de Van der Waerden sur 2 couleurs (0, 1) pour k = 3, noté W(2,3) vaut 9.

Actuellement on connait aussi W(2,4)=35, W(2,5)=178, W(2,6)=1132, ce dernier nombre ayant été trouvé en 2008. On cherchera à préciser une borne inférieure pour W(2,7) : c'est à dire trouver des séquence de longueur X (probablement supérieur à 1132) telles qu'elles ne contiennent pas de suite monochromatique => on saura donc que W(2,7) > X.

Plan de réalisation

  • écriture du code en C
  • découverte du langage CUDA, extension du C à la programmation parallèle sur GPU Nvidia
  • parallélisation du code
  • tests

Un joueur artificiel pour le jeu "Hansa" - Denis Robilliard

Etudiants : ??

Objectif : perfectionner une interface existante et proposer un joueur artificiel pour le jeu de plateau "Hansa" (illustré ci-dessous).

Documents

Liens externes

Plan de réalisation

  • documentation et compréhension des règles du jeu
  • analyse de l'existant
  • amélioration de l'interface (meilleur rendu graphique, drag and drop, ...)
  • conception d'une fonction d'évaluation du prochain coup
  • recherche et implantation des algorithmes classiques "minimax" et "alpha-béta" (voir wikipedia)
  • tests et corrections

Programmation système sous Mac - Arnaud Lewandowski et Grégory Bourguin

Etudiants : ??

Description

Dans le cadre de travaux de recherche sur le travail collaboratif menés au sein du laboratoire d'informatique, nous cherchons à "piloter" les applications en cours d'exécution sur le système d'exploitation. Un certain nombre de concepts intéressants sont mis en oeuvre dans le système d'exploitation Mac OS X (comme le scripting d'applications avec Automator, etc.). L'objectif de ce projet est de comprendre leur fonctionnement et d'évaluer leur intérêt potentiel dans le cadre des recherches mentionnées ci-dessus.

Les différentes étapes du projet consisteront à :

  • tester les différents concepts liés au "pilotage" d'applications
  • appréhender le langage de programmation C/Cocoa de Mac OS X
  • se familiariser avec l'api qui permet de communiquer avec les applications en cours d'exécution sur la machine
  • développer un outil permettant de démontrer quelques actions de pilotage de ces applications (déplacement de fenêtre, écoute d'événements, lancement de commandes, etc.)

Un ordinateur portable sous Mac pourra éventuellement être mis à la disposition des étudiants.

Développement d'une interface pour faciliter la simulation multi-robotique - Amine Boumaza

Etudiants : ??

Mots-clés

  • Robotique distribuée
  • Simulation
  • Communication réseaux et parallélisme

Présentation

La recherche en robotique s'appuie sur l'utilisation de plate-forme de simulation assez complexe qui fournissent des environnements de simulation très fidèles. Toutefois la mise en place de telles plate-forme nécessite souvent un grand investissement qui rend leur utilisation difficile.

Dans un premier temps les étudiants doivent développer des interfaces pour faciliter l'utilisation de la plate-forme Player-Stage (http://playerstage.sourceforge.net) pour pouvoir simuler une flottille de robots mobiles. L'interface devra permettre de lancer les simulations sur différents hôtes en parallèle qui communiquent par TCP/IP avec un serveur central.

Dans une second temps les étudiants devront implanter des algorithmes existants de contrôle de robots pour par exemple la patrouille, la coordination de mouvements le déploiement etc.

Parallélisation d'un simulateur de "Tetris" sur carte Nvidia 8800 - Amine Boumaza et Denis Robilliard

Etudiants : ??

Objectif

Paralléliser sur GPU (cartes graphiques à haute puissance de calcul) un simulateur de jeu de Tetris. Ce projet s'inscrit dans le cadre d'une compétition sur le meilleur joueur artificiel de Tetris, avec pour objectif d'améliorer le programme vainqueur en titre actuellement. Les GPUs cibles seront des Nvidia série 8000 et au-delà, programmés en langage CUDA.

Plan de réalisation

  • prise en main de la version actuelle (en C)
  • découverte du langage CUDA, extension du C à la programmation
  • parallèle sur GPU Nvidia
  • parallélisation du code
  • tests de performance

Résolution parallèle d'équation aux dérivées partielles sur GPU - Amine Boumaza

Etudiants : ??

Description

Au cours des dernières années, les processeurs graphique (GPU) on évolués en de puissantes machines multiprocesseur hautement parallélisées. En outre, le GPU prend en charge le calcul de haute précision (jusqu'à 32bit float), et est totalement programmable. En raison de leur puissance de calcul croissante et de leur flexibilité, les GPU actuels deviennent une plate-forme de calcul très puissante pour résoudre des problèmes de calcule. Dans ce travail, les étudiants se concentrons sur le développement d'algorithmes parallèles pour résoudre les problèmes de calcul scientifique très chère de manière efficace.

Concrètement les problèmes auxquels ce projet s'adresse sont des problème de résolution d'équation aux dérivées partielles, où le but est de trouver une fonction en 2 dimension (voir la demo). Ce genre de fonctions peuvent se résoudre en appliquant un calcule local très simple de manière itérative à chaque point d'une grille représentant la fonction. Une des particularité des ces résolutions est le fait que ces calculs peuvent être exécuter de manière complètement asynchrone sans ordre particulier, se qui en fait de bonnes candidates pour une résolution parallèle sur GPU. Le but de ce projet est d'adapter une version non parallèle d'un programme de résolution en C en langage CUDA (http://www.nvidia.com/object/cuda_home.html) pour être exécuter sur un GPU NVIDIA.

La version actuelle (non parallèle) du code pourra être fournie aux étudiants. Aucune connaissances sur les équation aux dérivées partielles n'est requise.

Technologies utilisées

  • langage C
  • langage CUDA (extension du C pour les GPU)
  • OpenGL (pour la visualisation des solutions)

Création d’un outil de planification des heures d’enseignements dans les technologies du Web - Grégory Bourguin

Etudiants : Cyrille LEFAIRE

Description

Une manière de faciliter l’accès à l’Emploi Du Temps (EDT) des étudiants de la Licence Informatique de l’ULCO serait de le rendre directement accessible sur le web. L’idée de ce projet est de créer une plateforme permettant de saisir/modifier/publier (sur le serveur web, par envoi automatique de courriers électroniques) et éventuellement imprimer cet EDT (géré à la semaine).

Les binômes impliqués pourront au choix (et en fonction du nombre d’étudiants) :

  • créer le site web et les bases de données associées dans les technologies de leur choix.
  • étudier/mettre en oeuvre les technologies pour effectuer du mailing automatisé (bases de données + techno pour mailing)
  • étudier/mettre en oeuvre les technologies pour exporter des pages en version pdf (bases de données + techno pour mise en forme & exportation)
  • etc.

Etapes :

  • appréhension du sujet
  • choix technologiques
  • réalisation

Extension d’un outil de suivi des heures d’enseignements dans les technologies du Web - Grégory Bourguin

Etudiants : Maxime FIBA, Olivier KOWALSKI, Mathieu SGARD, Nicolas DUQUESNE

Description

Chaque année, les enseignants doivent effectuer un suivi de l’ensemble des heures de Cours/TD/ TP qu’ils ont effectuées. Ce suivi doit être effectué pour chaque formation et pour chaque matière enseignée. Une application a déjà été créée l’an dernier. Le but de ce projet est de parfaire cette application.

Etapes :

  • appréhension du sujet (étude de l’application existante)
  • choix technologiques
  • réalisation

Extension d’un outil de suivi des heures d’enseignements en Java - Grégory Bourguin

Etudiants : ??

Description

Chaque année, les enseignants doivent effectuer un suivi de l’ensemble des heures de Cours/TD/ TP qu’ils ont effectuées. Ce suivi doit être effectué pour chaque formation et pour chaque matière enseignée. Une « application » a déjà été créée sous forme de tableaux Excel accompagnés de macros en Visual Basic Application. Le but de ce projet est de transposer cette « application » dans une nouvelle écrite en Java (interfacé avec une base de données ou avec génération de fichiers type XML).

Etapes :

  • appréhension du sujet (étude de l’application existante)
  • choix technologiques
  • réalisation

Extension d’un gestionnaire de références bibliographiques en PHP - Grégory Bourguin

Etudiant : Alpha Ammar BALDE

Description

Une bonne partie du travail des chercheurs étant de rédiger des articles s'appuyant sur les travaux existants dans leur domaine, les citations sous forme de référence bibliographiques ont une grande importance dans toute publication. Les mêmes références peuvent être citées dans plusieurs papiers et elles doivent souvent être mises en forme dans des styles qui diffèrent d'un éditeur à l'autre.

Le sujet de ce projet est de parfaire un gestionnaire de références qui a été cré l’an dernier, sous forme de BD MySQL avec une interface de type formulaire PHP. L'outil pourra entre autres permettre de stocker/éditer/supprimer des références, de retrouver des références sur divers critères et de mettre en forme le résultat d'une recherche en fonction d'un style particulier (et éventuellement d'un format de fichier).

Refonte d’un outil de chat sous Eclipse - Grégory Bourguin

Etudiants : Maxime GRARE et Jean-Charles VERNIER

Description

Dans le cadre du projet CooLDev, nous avons créé un outil de chat sous forme de plugin Eclipse permettant aux utilisateurs d’échanger de manière synchrone. Ce chat a été réalisé en se fondant sur la technologie JSDT de Sun. Malheureusement, JSDT possède des limites qui posent problème dans l’utilisation de notre outil en situation réelle. Le but de ce projet est donc d’opérer une refonte du plugin de chat existant en changeant principalement sa couche réseau.

Etapes :

  • Découverte de l’environnement de création de plugins Eclipse
  • Etude des problèmes liés au plugin de chat existant
  • Sélection d’un protocole réseau adéquat
  • Refonte du plugin

Rénovation d'une application d'analyse du sommeil - Arnaud Lewandowski

Etudiants : David Sauvage et Fabien Geldhof

Description

L'analyse du sommeil fait l'objet d'études approfondies. Une application, une sorte "d'agenda du sommeil", a été développée pour permettre aux sujets étudiés de rapporter leurs périodes de sommeil, dans le but d'analyser celles-ci. L'application a notamment pour vocation d'être utilisée par les skippers, lors de courses nautiques, afin de calculer leurs temps de sommeil, le retard accumulé, l'impact sur la vigilance, etc.

L'application se décline en deux versions : une version PC, développée en Java SE, et une version mobile, développée en Java ME. Le développement, effectué dans le cadre d'un stage, ne donne pas entière satisfaction et rend l'évolution de l'application très difficile.

L'objectif du projet est donc de rénover le code dans un premier temps, et ensuite de terminer l'application.

Conception et évaluation de la qualité des applications distribuées - Henri Basson

Etudiants : Siham LAZIM et Eynass ALBARQAWI

Description

L’assurance la qualité des applications distribuées a pour objectif principal de répondre aux exigences, architecturales, fonctionnelles, comportementales et qualitatives, des clients et des utilisateurs. Ces exigences peuvent être exprimées généralement par des critères qualitatifs à satisfaire tels que la modularité, l'évolutivité, la réutilisabilité, la fiabilité, la sécurité de fonctionnement, etc. Des modèles existent déjà pour exprimer les liens qui existent entre ces facteurs de haut niveau et des métriques du logiciel. Les mesures sont obtenues de façon automatique et peuvent concerner la structure du logiciel (mesures statiques) ou son comportement (mesures dynamiques).

Dans le cadre de l’aide à la décision pour l’assurance qualité des applications distribuées, ce sujet a pour objectif de concevoir et développer une arborescence, permettant à l’expert de l’application distribuée en cours d’instancier ses caractéristiques qualitatives. Ensuite, moyennant l’application d’une batterie des métriques, pouvoir fournir un bilan de conformité des caractéristiques qualitatives par rapport aux seuils tolérés de ces caractéristiques.

  • Langage d’implémentation Java ou C#
  • Plateforme Eclipse ou .NET (visual studio 2008)

Jeu Vampire VS Loup-Garous - Cyril Fonlupt

Etudiants: Julie BOCQUELET et Rémy DEBIENNE et Denis JEAN

Objectifs

  • Mettre en place une interface graphique ergonomique permettant au joueur de prendre en main le logiciel rapidement et simplement.
  • Créer des règles du jeu cohérentes et équilibrées.
  • Réussir à intégrer ces règles dans le logiciel.

Conception et développement d’une base de données pour le Business Process - Mourad Bouneffa

Etudiant : Said MALLA

Présentation du projet

L’activité de Business Process a pour principal objectif de modéliser les processus de gestion et de management d’une entreprise. Ces processus sont généralement des processus métier (activité de ventes, etc. ). Ces processus sont supportés par des applications qui sont elles mêmes déployées sur des machines disséminées sur différents sites et utilisées par différents types d’acteurs de l’entreprise.

[Fig.1: Modélisation globale de l’activité d’une organisation]

Ces dernières années de nombreuses entreprises et organisations se sont intéressées à la modélisation et à la gestion quasi automatisée des processus ce qui a donné naissance à la notion de BPM (Business Process Management). En effet, l’agilité du management exige de disposer d’une image réelle des différents processus de l’entreprise, de pouvoir matérialiser les différents liens de dépendance qui existent notamment entre les processus, les processus et les applications, les applications et les acteurs, etc. Cela constitue une aide importante dans le cadre de la réingénierie des activités de l’entreprise ou de son système d’information. La figure 1 schématise les différents constituants d’une cartographie d’un système d’information rentrant dans le cadre de la gestion globale des processus d’une organisation.

Il s’agit donc comme le montre cette figure de modéliser les processus métiers, les fonctionnalités devant être mises en oeuvre pour exécuter ces processus, les applications informatiques implémentant ces processus, les supports techniques (machines et réseaux) supportant ces applications et l’organisation de l’entreprise aussi bien au niveau de l’organigramme que de la dissémination géographique.

Des exemples de modélisation sont donnés, à titre indicatif, par les figures 2, 3, et 4.

  • Ce projet consiste à concevoir une base de données (en utilisant le formalisme UML) permettant de représenter tous les constituants d’une modélisation globale de l’activité de l’entreprise.
  • Cette base sera par la suite créée sur le S.G.B.D. Mysql
  • Il s’agira par la suite d’implémenter une application web permettant d’alimenter la base de données et des requêtes prédéfinies que l’on définira dans le cadre du projet. Le langage utilisé pour la réalisation de l’application sera le langage Java (utilisation de pages JSP).

Conception et développement d'une API d'automatisation de traitement de demandes d'information - David Duvivier

Etudiants : Serghei MIHAI et Alexis HUET

Description

Le but est de fournir une API permettant d'automatiser une demande d'information de la part d'un utilisateur, et de permettre au bot de réagir en conséquence. Les applications possibles sont nombreuses :

  • support client automatisé (question-réponses)
  • préremplissage de formulaires (génération de documents)
  • execution de tâches distantes sur un serveur (démarrer un service, par exemple)

Objectifs :

  • réaliser un bot
  • fournir une API simple pour configurer le bot
  • interaction via : Messagerie Instantanée, SMS, mail, autres via système de modules
  • analyser les phrases en entrée

Langage et technologies :

  • Python
  • Gnokii (SMS)
  • XMPP/(libpurple | twisted)
  • serveur SMTP

L3 INFO

Génération de sorties pour VLE - Eric Ramat - ULCO/LIL/INRA

Etudiants : deux étudiants de L3

Mots-clés

  • Génération de fichiers formatés
  • HTML

Présentation du projet

VLE est un simulateur qui utilise des modèles de simulations et des valeurs d'initialisations pour générer des sorties. Ces sorties sont aujourd'hui enregistrées dans des fichiers simples au formats textes simples comme les fichiers cvs. Nous aimerions compléter nos formats de sortie, disposer de sorties plus conviviales pour les utilisateurs de type page Web et d'enregistrer les données de sorties directement dans des bases de données.

Les sorties d'un simulateur sont souvent représentées sous la forme de tableau dont l'ordonnée représente l'évolution du temps de la simulation et l'abscisse les variables observées. Le but du projet est de développer des plugins (greffons) à OOV pour générer, en cours de simulation, des fichiers.

Objectifs

  • Étudier le fonctionnement de l'équipe de VLE, sa démarche de développement et les outils de développement (g++, cmake et git).
  • Comprendre le fonctionnement des plugins OOV.
  • Étudier les formats TSV, ...
  • Proposer une sortie HTML avec des CSS
  • Étudier la librairie SQLxx pour l'accès aux bases de données et proposer une solution pour spécifier la relation entre données de sorties et champs d'une table d'une base de données
  • Implémenter les plugins.

L'ensemble des phases de développement passeront obligatoirement par le tracker de VLE sous sourceforge (VLE).

Langages et technologies

  • C++ - CMake - git
  • HTML/CSS
  • SQL et la librairie SQLxx

Conception d'une base de données pour la gestion et le suivi des projets annuels - Arnaud Lewandowski

Etudiant : Catherine ALMEIDA et Carine CAPELLE

Présentation du projet

Pour valider leur année d'étude, les étudiants (de la L3 jusqu'au M2) doivent effectuer un projet annuel encadré par un enseignant. La gestion de tous ces projet représente un travail non négligeable : centraliser les projets proposés par les enseignants, les mettre en ligne sur le site du département, optimiser l'affectation des projets aux étudiants en fonction de leurs choix, etc. Nombre de ces tâches sont actuellement faites "manuellement". L'objectif de ce projet est de développer une application permettant de faciliter la gestion des projets étudiants.

Dans un premier temps, le travail consistera à analyser les besoins et à concevoir une base de données permettant la gestion de ces projets, de leur affectation et de leur suivi.

Dans un deuxième temps, il s'agira de développer une application (en php, ou en Cocoa) pour assurer cette gestion.

Conception et développement d'un site web pour la gestion des offres de stage - Arnaud Lewandowski

Etudiants : Nicolas SCHELAMBRE et Thibault MULLONI

Présentation du projet

Pour valider leur année d'étude, les étudiants (de la L3 jusqu'au M2) doivent effectuer un stage au sein d'une entreprise, d'une durée allant de 12 à 20 semaines. Les différentes entreprises qui ont l'habitude d'accueillir des stagiaires nous envoient régulièrement des offres de stage, que nous nous efforçons de mettre à disposition des étudiants.

L'objectif est de faciliter l'accès des étudiants à ces offres de stages, en les mettant en ligne. Le stage consistera à concevoir et développer un site web sécurisé permettant la mise en ligne et la gestion des offres de stage.

Développement d'une interface pour faciliter la simulation multi-robotique - Amine Boumaza

Etudiants : Maxence FIERS et Clément VANVINCQ

Mots-clés

  • Robotique distribuée
  • Simulation
  • Communication réseaux et parallélisme

Présentation

La recherche en robotique s'appuie sur l'utilisation de plate-forme de simulation assez complexe qui fournissent des environnements de simulation très fidèles. Toutefois la mise en place de telles plate-forme nécessite souvent un grand investissement qui rend leur utilisation difficile.

Dans un premier temps les étudiants doivent développer des interfaces pour faciliter l'utilisation de la plate-forme Player-Stage (http://playerstage.sourceforge.net) pour pouvoir simuler une flottille de robots mobiles. L'interface devra permettre de lancer les simulations sur différents hôtes en parallèle qui communiquent par TCP/IP avec un serveur central.

Dans une second temps les étudiants devront implanter des algorithmes existants de contrôle de robots pour par exemple la patrouille, la coordination de mouvements le déploiement etc.

Parallélisation d'un simulateur de "Tetris" sur carte Nvidia 8800 - Amine Boumaza et Denis Robilliard

Etudiants : Alexis DECLERCK et Alexis DECONINCK

Objectif

Paralléliser sur GPU (cartes graphiques à haute puissance de calcul) un simulateur de jeu de Tetris. Ce projet s'inscrit dans le cadre d'une compétition sur le meilleur joueur artificiel de Tetris, avec pour objectif d'améliorer le programme vainqueur en titre actuellement. Les GPUs cibles seront des Nvidia série 8000 et au-delà, programmés en langage CUDA.

Plan de réalisation

  • prise en main de la version actuelle (en C)
  • découverte du langage CUDA, extension du C à la programmation
  • parallèle sur GPU Nvidia
  • parallélisation du code
  • tests de performance

Résolution parallèle d'équation aux dérivées partielles sur GPU - Amine Boumaza

Etudiants : Kévin SAMYN et Hicham EL GHARBI

Description

Au cours des dernières années, les processeurs graphique (GPU) on évolués en de puissantes machines multiprocesseur hautement parallélisées. En outre, le GPU prend en charge le calcul de haute précision (jusqu'à 32bit float), et est totalement programmable. En raison de leur puissance de calcul croissante et de leur flexibilité, les GPU actuels deviennent une plate-forme de calcul très puissante pour résoudre des problèmes de calcule. Dans ce travail, les étudiants se concentrons sur le développement d'algorithmes parallèles pour résoudre les problèmes de calcul scientifique très chère de manière efficace.

Concrètement les problèmes auxquels ce projet s'adresse sont des problème de résolution d'équation aux dérivées partielles, où le but est de trouver une fonction en 2 dimension (voir la demo). Ce genre de fonctions peuvent se résoudre en appliquant un calcule local très simple de manière itérative à chaque point d'une grille représentant la fonction. Une des particularité des ces résolutions est le fait que ces calculs peuvent être exécuter de manière complètement asynchrone sans ordre particulier, se qui en fait de bonnes candidates pour une résolution parallèle sur GPU. Le but de ce projet est d'adapter une version non parallèle d'un programme de résolution en C en langage CUDA (http://www.nvidia.com/object/cuda_home.html) pour être exécuter sur un GPU NVIDIA.

La version actuelle (non parallèle) du code pourra être fournie aux étudiants. Aucune connaissances sur les équation aux dérivées partielles n'est requise.

Technologies utilisées

  • langage C
  • langage CUDA (extension du C pour les GPU)
  • OpenGL (pour la visualisation des solutions)

Implémentation de routines de compression d'images - Christophe Renaud

Etudiants : Nicolas FAUVERGUE

Description

L'objectif de ce projet est de coder différentes méthodes simples de compression d'images. Elles devront être intégrées à une petite application de visualisation afin de pouvoir juger de leurs performances. Le travail sera à réaliser en C, l'application de visualisation étant fournie, ainsi que les explications concernant les méthodes à développer.

Mosaïque d'images - Christophe Renaud

Etudiants : Pauline BLOUME et Jérémy COCQUEMPOT

Description

Une mosaique d'images est une image dont chaque pixel ou groupe de pixels est remplacé par une petite image appelée vignette. On obtient alors un résultat tel que celui qui figure sur l'image jointe. L'objectif de ce projet est de développer une application qui permette de générer de telles mosaique. Le travail à realiser se décomposera en différentes étapes :

  • création d'une base de vignettes, à partir d'un grand ensemble d'images.
  • calcul des caractéristiques des images en fonction de leurs propriétés internes (par exemple couleur moyenne)
  • remplacement de blocs de pixels par des vignettes choisies en fonctions de leurs caractéristiques.

Le développement se fera en C et utilisera diverses librairies d'encodage/décodage de formats d'images (libjpeg, libpng, ...).

Projet de développement d’un site Web pour une association scientifique - Henri Basson

Etudiants : ??

Description

L’association scientifique Nord Conférence Informatique (NCI) a pour objectif de promouvoir les manifestations scientifiques en informatique dans la région du Nord Pas de Calais. Elle ambitionne également de mettre en réseau les compétences des enseignant-chercheurs en informatique des universités de la région avec les autres compétences des autres disciplines des universités de l’Académie de Lille et avec les industriels de la région.

Afin d’améliorer les liens avec ses adhérents (individus ou personnes morales), NCI compte développer un site Web lui permettant d’informer sur les événements organisés ou soutenus par l’association. Le futur site devra également permettre de :

  • questionner ses adhérents sur l’opportunité d’organiser une manifestation scientifique sur une certaine thématique
  • enregistrer de nouveaux adhérents
  • mettre à jour les informations sur les adhérents
  • actualiser la liste des événements vis-à-vis desquels l’association est impliquée
  • assurer certaines autres fonctionnalités à préciser lors de la de définition détaillée des besoins.

Moyens

  • Méthode de conception: MERISE ou UML
  • langages : PhP
  • SGBD: PHP MySQL ORACLE

Projet de développement d’un site Web pour une association linguistique - Henri Basson

Etudiants : ??

Description

L’association linguistique « Association de Pratique des Langues (APL) vise la promotion de la pratique des langues étrangères entre personnes intéressées par l’amélioration de leur expressivité orale en langues étrangères. Pour ce faire, APL vise la promotion et l’organisation des sorties ou des soirées inter culturelles.

Afin d’informer ses adhérents, APL compte développer un site Web lui permettant d’informer sur les possibilités de pratique des langues étrangères dans la région Nord pas de Calais. Les possibilités inclut également la pratique du français par des étrangers (étudiants, des stagiaires, visiteurs, etc.) en rencontrant des personnes averties de leur niveau et leur difficulté à bien manier la langue de Molière. Le site Web recensera les horaires et les adresses (cafès polyglottes, sièges d’associations, etc.) qui serviront à accueillir les volontaires et les adhérents ou toute personne intéressée par la pratique de langue étrangère. Le futur site devra aussi permettre de :

  • questionner ses adhérents sur leur déroulement des opportunités de pratique des langues.
  • d’organiser des rencontres thématiques en café polyglottes
  • enregistrer de nouveaux adhérents
  • mettre à jour les informations sur les adhérents
  • actualiser la liste des ressources permettant d’améliorer le niveau en langues étrangères
  • d’autres fonctionnalités à préciser lors de la définition détaillée de besoins.

Moyens

  • Méthode de conception: MERISE ou UML
  • langages : PhP
  • SGBD: PHP MySQL

Développement d’un site Web pour la collecte de données sur les besoins en compétences techniques des acteurs économiques régionaux - Henri Basson

Etudiants : ??

Description

Les responsables universitaires et ceux de centres de formation professionnelle (CUEEP, AFPA, etc.) posent régulièrement des questions portant sur l'adéquation entre le contenu des programmes de ce q’ils proposent comme formations et les compétences réelles souhaitées par les secteurs économiques de la région.

Afin d'aider à apporter une réponse précise à ces questions, le présent projet cherche à concevoir un site web doté d’une base de données destinée à gérer les informations relatives aux différentes compétences informatiques requises par les industriels ainsi que les autres acteurs des différents secteurs d’activités de la région Nord-Pas-de-Calais . Les besoins sont divers et peuvent concerner l’ingénierie, la conception, l’innovation, les technologies d’information et de communication, etc.) en précisant chaque fois le niveau requis du type de compétence.

Dans ce projet, deux aspects principaux seront à traiter :

  • Une classification des activités industrielles, agricoles et tertiaires afin de caractériser chaque entreprise par :
    • son domaine d'activités,
    • sa taille,
    • ses compétences,
    • son effectif.
  • Une classification les compétences requises selon:
    • la discipline,
    • les savoir-faires informatique en systèmes, outils, méthodes, langages, etc.,
    • le niveau du diplôme,
    • le nombre d’années d’expérience,
    • les stages effectués,
    • la tranche d'âge .

Il s'agit ensuite de proposer des procédures permettant de faire un bilan des besoins des secteurs avec un aperçu comparatif sur l'évolution de ces besoins au fil de temps (entre deux années consécutives par ex.).

Moyens

  • Méthode de conception: MERISE ou UML
  • SGBD: PHP MySQL

Création d’un outil de planification des heures d’enseignements dans les technologies du Web - Grégory Bourguin

Etudiants : Romain TOROND, Joris LAFORCE, et Jimmy MAGNANI (plusieurs binômes)

Description

Une manière de faciliter l’accès à l’Emploi Du Temps (EDT) des étudiants de la Licence Informatique de l’ULCO serait de le rendre directement accessible sur le web. L’idée de ce projet est de créer une plateforme permettant de saisir/modifier/publier (sur le serveur web, par envoi automatique de courriers électroniques) et éventuellement imprimer cet EDT (géré à la semaine).

Les binômes impliqués pourront au choix (et en fonction du nombre d’étudiants) :

  • créer le site web et les bases de données associées dans les technologies de leur choix.
  • étudier/mettre en oeuvre les technologies pour effectuer du mailing automatisé (bases de données + techno pour mailing)
  • étudier/mettre en oeuvre les technologies pour exporter des pages en version pdf (bases de données + techno pour mise en forme & exportation)
  • etc.

Etapes :

  • appréhension du sujet
  • choix technologiques
  • réalisation

Extension d’un outil de suivi des heures d’enseignements dans les technologies du Web - Grégory Bourguin

Etudiants : ??

Description

Chaque année, les enseignants doivent effectuer un suivi de l’ensemble des heures de Cours/TD/ TP qu’ils ont effectuées. Ce suivi doit être effectué pour chaque formation et pour chaque matière enseignée. Une application a déjà été créée l’an dernier. Le but de ce projet est de parfaire cette application.

Etapes :

  • appréhension du sujet (étude de l’application existante)
  • choix technologiques
  • réalisation

Extension d’un outil de suivi des heures d’enseignements en Java - Grégory Bourguin

Etudiants : ??

Description

Chaque année, les enseignants doivent effectuer un suivi de l’ensemble des heures de Cours/TD/ TP qu’ils ont effectuées. Ce suivi doit être effectué pour chaque formation et pour chaque matière enseignée. Une « application » a déjà été créée sous forme de tableaux Excel accompagnés de macros en Visual Basic Application. Le but de ce projet est de transposer cette « application » dans une nouvelle écrite en Java (interfacé avec une base de données ou avec génération de fichiers type XML).

Etapes :

  • appréhension du sujet (étude de l’application existante)
  • choix technologiques
  • réalisation

Extension d’un gestionnaire de références bibliographiques en PHP - Grégory Bourguin

Etudiants : ??

Description

Une bonne partie du travail des chercheurs étant de rédiger des articles s'appuyant sur les travaux existants dans leur domaine, les citations sous forme de référence bibliographiques ont une grande importance dans toute publication. Les mêmes références peuvent être citées dans plusieurs papiers et elles doivent souvent être mises en forme dans des styles qui diffèrent d'un éditeur à l'autre.

Le sujet de ce projet est de parfaire un gestionnaire de références qui a été cré l’an dernier, sous forme de BD MySQL avec une interface de type formulaire PHP. L'outil pourra entre autres permettre de stocker/éditer/supprimer des références, de retrouver des références sur divers critères et de mettre en forme le résultat d'une recherche en fonction d'un style particulier (et éventuellement d'un format de fichier).

Un outil Visual Basic Application de Mise en forme de références bibliographiques - Grégory Bourguin

Etudiants : ??

Description

Une bonne partie du travail des chercheurs étant de rédiger des articles s'appuyant sur les travaux existants dans leur domaine, les citations sous forme de références bibliographiques ont une grande importance dans toute publication. Si les mêmes références peuvent être citées dans plusieurs papiers, elles doivent souvent être mises en forme dans des styles qui diffèrent d'un éditeur à l'autre.

Le sujet de ce projet est donc de créer un outil en VBA qui permettra, à partir d'une liste de références non mises en forme sous Excel, de générer un format particulier à destination de Word.

Jeu 2D tron sur nintendo ds - Christophe Renaud

Etudiants : Philippe HAMAIN et Gaetan VERGEOT

Description

L'objectif de ce projet est d'étudier un pack de développement libre pour la nintento ds au travers du développement d'un petit jeu de type "tron" (deux mobiles qui se déplacent sur l'écran en laissant une trace infranchissable derrière eux). Les développements seront à réaliser en C sous linux, les tests pouvant être réalisés via un émulateur ou sur une console équipée d'un linker (matériel non fourni ...).

Profiling d'application Java - Arnaud Lewandowski

Etudiants : Kévin GANDOLFI et Stéphane BOLLENGIER

Description

Une des méthodes permettant d'évaluer le niveau de vigilance d'un individu consiste à afficher sur un écran, à une fréquence aléatoire, des signaux lumineux, et de mesurer le temps de réponse de l'individu. Le temps que met la personne à réagir au signal (par un clic souris par exemple) permet de savoir s'il est globalement alerte, ou bien si sa vigilance est en train de faiblir (à cause de la fatigue, de la maladie, ou autre). Cette méthode peut avoir un grand nombre d'applications (par exemple, pour mesurer le niveau de vigilance des skippers lors de courses nautiques durant lesquelles leur temps de sommeil est réduit).

Le temps de réponse moyen est généralement de l'ordre de quelques centaines de millisecondes (300 ms). Le problème de ce genre d'application consiste, lors des mesures, à prendre en considération les temps "système" non négligeables (par exemple : le temps que va mettre le système à afficher le signal lumineux, qui peut varier en fonction de la charge du CPU, etc.).

L'objectif de ce projet consiste à tester et à évaluer différents outils (appelés profilers) permettant de mesurer ces temps, et à proposer une méthode permettant d'instrumenter une application Java afin de les récupérer (en vue de les prendre en compte dans les calculs pour l'évaluation du niveau de vigilance).

Site web pour l'école du Sacré Coeur - Grégory Bourguin

Etudiants : Quentin LEFEVRE, Nadia AZIZ et Cédric CHRETIEN

Description

Le but est de (re)développer un site web pour l’association liée à l'école du Sacré Coeur à Gravelines. Il s’agira de mettre en oeuvre les technologies du Web que vous connaissez (PHP, CSS, Javascript, etc.), ou toute autre technologie (CMS, …) en adéquation avec les besoins de communication de l’association.

Etapes :

  • Étude du projet démarré l’an dernier
  • Étude des besoins de l’association
  • Choix technologiques
  • Réalisation et mise en ligne

Site web pour l'association "Les Caspers's" - Grégory Bourguin

Etudiants : Jean-René DUCHATEAU et Benoit BLONDEL

Description

Le but est de réaliser un site web pour une petite association à Gravelines dont le nom est "Les Casper's". L'objet de cette association est à but philanthropique : organisation d’évènements pour reverser les bénéfices à des oeuvres ou autres associations.

Les actions de l’association sont par exemple : une journée kermesse en juin (grosse manifestation sur Gravelines) dont les bénéfices sont reversés à l'ARSLA (Association pour la Recherche sur la Sclérose Latérale Amyotrophique) ; l’organisation d’un loto en octobre pour assurer l'entrée d'argent dans les caisses afin d'organiser la journée kermesse ; une sortie entre membres de l'association et distribution de friandises aux enfants des membres de l'association à l'occasion de Noël ; etc.

Il s’agira dans ce projet de mettre en oeuvre les technologies du Web que vous connaissez (PHP, CSS, Javascript, etc.), ou toute autre technologie (CMS, …) en adéquation avec les besoins de communication de l’association.

Etapes :

  • Etudes des besoins de l’association
  • Choix technologiques
  • Réalisation et mise en ligne