PROJETS INDUSTRIELS INDUSTRIAL PROJECTS
Transcription
PROJETS INDUSTRIELS INDUSTRIAL PROJECTS
École Supérieure et Applications d’Informatique de Lorraine PROJETS INDUSTRIELS INDUSTRIAL PROJECTS 2007 / 2008 UNIVERSITÉ HENRI POINCARÉ - NANCY 1 École Supérieur e d'Informatique et Applications de Lorraine Campus Aiguillettes 193, avenue Paul Muller - CS 90172 54602 VILLERS-LÈS-NANCY Tél : +33.(0)3.83.68.26.00 - Fax : +33.(0)3.83.68.26.09 http://www.esial.uhp-nancy.fr E-mail : [email protected] Pour tous renseignements complémentaires contactez : For any further information, please contact the following people : Suzanne André COLLIN SCHAFF Email : [email protected] Email : [email protected] LORRAINE E S IA L Remerciements Acknowledgments Nous tenons à remercier We would like to thank les élèves, l’ensemble des encadrants industriels et universitaires, ainsi que l’équipe technique et administrative de l’ESIAL, sans lesquels le bon déroulement de ces projets industriels n’aurait été possible. the students, industrial and academic supervisors, and ESIAL technical and administrative staff, without whom satisfactory progress of these industrial projects would not have been possible. SOMMAIRE - CONTENTS Présentation et déroulement .......................................................................................................... P. 4 Presentation and progression ......................................................................................................... P. 5 Fiche de proposition de projet industriel ............................................................................... P. 7 Industrial project proposal form .............................................................................................................. P. 9 Projets Projects - 6WIND................................................................................................................................................... Haute disponibilité des protocoles réseaux P. 12 High-availability network protocols - ARTEFACTS STUDIO ..................................................................................................................... Module intelligent d’animation de personnages de jeux vidéo P. 14 Plug-in for smart video game character animation - ATOS ORIGIN .................................................................................................................................... Partage de la vision du suivi d’affectation P. 16 Web application for employees’ assignments - COULLOMB INGÉNIERIE ......................................................................................................... Plateforme web pour le suivi de constructions P. 18 Web platform for construction monitoring - CTG LUXEMBOURG ...................................................................................................................... PUMA, un outil de gestion de projet P. 20 PUMA, a project management tool - DEXIA Projet 1 - DEXIA ADTS : ......................................................................................................................... Budget manager, une application de gestion de budgets P. 22 Budget Manager, a budget managing application Projet 2 - DEXIA BIL : ............................................................................................................................. Création d’un simulateur de prêts à la consommation P. 24 Consumer loan simulator - EURO INFORMATION DÉVELOPPEMENTS .................................................................... Outil de parsing de fichiers sources P. 26 Source Code Analysis - FRANCE TELECOM ....................................................................................................................... Recherche de vulnérabilités par fuzzing Searching vulnerabilities by fuzzing P. 28 - GOODYEAR ........................................................................................................................................ Mise en œuvre d’une architecture SOA basée sur des outils open source P. 30 Implementation of a Service Oriented Architecture - INTERNATIONAL MONETARY FUND .................................................................................. P. 32 Fundelicious, outil intranet de gestion de favoris Fundelicious, intranet bookmarking tool - IPELIUM ................................................................................................................................................. P. 34 Conception et intégration d’une plateforme de workflow pour le “business development” Designing and integrating a workflow platform for “business development” - KITRY CONSULTING....................................................................................................................... P. 36 Amélioration des processus gestion des contrôles périodiques Improvement Control Regulation and Equipment Mangement - NIST Projet 1 : ........................................................................................................................................................ P. 38 Étude de faisabilité pour l’implémentation de Qt ® afin d’améliorer la portabilité de DIVERSE Feasability Study of Implementing Qt® to improve DIVERSE’s portability Projet 2 : ........................................................................................................................................................ P. 40 Fusion de capteurs optimisée Effective Sensor Data Fusion Projet 3 : ........................................................................................................................................................ P. 42 Développement d’une librairie multi-plateformes destinée à la collecte d’informations systèmes Developpement of a multi-platform library to gather system information - NXP SEMICONDUCTORS ............................................................................................................ P. 44 Étude de faisabilité d’un MTM sur la plateforme mobile 3G de NXP Semiconductors Is it possible to implement a MTM on 3G mobile phone ? - ORANGE BUSINESS SERVICES .................................................................................................. P. 46 Mise à disposition d’une bibliothèque graphique fonctionnant sous le système d’exploitation eCos Graphical user interface for eCos - PSA PEUGEOT-CITROËN .............................................................................................................. P. 48 Projet RefOutil Reftool Project - REUTERS ............................................................................................................................................... P. 50 Project Tracker : amélioration d’un système de virtualisation et de suivi des facturables projet Project Tracker : improvement of a System for Virtualizing and Tracking Projects - SCALABLE GRAPHICS ................................................................................................................. Développement d’un logiciel de gestion de bureau distant compatible avec les applications 3D P. 52 Remote Desktop compatible with 3D applications - TÉLÉ VIDÉO ESPACE ..................................................................................................................... Outils pour affichage dynamique Tools for Digital Signage P. 54 PRÉSENT A TION et DÉROULEMENT Définition Calendrier La finalité du projet de 3ème année ESIAL est de sensibiliser les étudiants aux problèmes concrets des entreprises en leur soumettant une étude industrielle qu'ils devront mener à bien. Cette étude est initiée par une entreprise partenaire d'ESIAL. Septembre 2007 : Étude des propositions de projet. Les projets portent principalement sur la spécification et la réalisation d'un produit industriel ou logiciel (du cahier des charges ... aux tests) issu des domaines d’application de l’informatique, des réseaux, des télécommunications et de la productique. Il est ainsi l'occasion de pratiquer sur des cas industriels, les outils, langages, techniques, méthodes, modèles et concepts enseignés durant les trois années de la formation. Début octobre 2007 : Choix du sujet et début du travail sur le projet. Du 17 au 25 septembre 2007 : Présentation aux élèves. 20 décembre 2007 : Remise du 1er rapport et 1ère présentation orale en anglais. 5, 6, 7 mars 2008 : Audit individuel de chaque projet industriel. En plus de l’aspect problème complexe à analyser, ce projet comporte également une composante gestion de projet et de génie logiciel comme la définition d’un cahier des charges et la production des documents spécifiques : spécification, conception, tests, manuel utilisateur, manuel de maintenance, etc. Il est aussi l’occasion d’utiliser des méthodes rigoureuses et des outils informatisés. Certains projets se poursuivent par un stage, sans que ce soit une règle stricte. 20 mars 2008 : Rapport et soutenance de fin de projet. Organisation Les groupes de projet sont formés de quatre élèves (voire exceptionnellement de 3), issus des spécialisations de l’ESIAL : Ingénierie du logiciel ; Télécommunications, Réseaux et Services ; Systèmes d’Information d’Entreprise ; Applications Logicielles pour les Systèmes Industriels et Logiciels Embarqués. Ceci permet de sensibiliser tous les étudiants aux problèmes de communication, d’organisation et de circulation d’information. La quantité de travail personnel à fournir par chaque élève est estimée à 250 heures ce qui représente pour une équipe de quatre personnes l’équivalent de six “mois-hommes”. Chaque projet est suivi côté entreprise par un responsable (maître d’ouvrage) et côté école par un enseignant (consultant). Chaque groupe fait une présentation à miparcours (en anglais) et en fin de projet. Un rapport intermédiaire, un rapport final et un audit font également parties intégrantes du projet industriel. Les projets industriels ne font l’objet d’aucune clause financière. L’ESIAL met à disposition de chaque groupe de projet, au moins deux PCs et les logiciels de base. Toutefois, les frais liés aux déplacements des élèves et des encadrants universitaires ainsi que les matériels et logiciels spécifiques au projet sont à la charge des entreprises. -4- PRESENT A TION and PROGRESSION Definition Schedule Third year ESIAL projects aim at heightening students’ awareness of real issues met by companies by carrying out an industrial project. This project is proposed by an ESIAL partner company. September 2007 : Evaluation of project proposals. From September 17 to September 25, 2007 : Presentation to students. Projects mainly deal with the specification and development of an industrial or software product (from requirements listing to final testing), in the fields of computer science applications, networking, telecommunications and industrial automation. They provide an opportunity to use the tools, languages, techniques, methods, models and concepts learned during the 3-year course in industry. Beginning of October 2007 : Subject selection and beginning of the work. December 20, 2007 : Publication of the first report and presentation in English. March 6, 7, 8, 2008 : Individual audit of each industrial project. In addition to analysing a complex issue, these projects involve project management and software engineering, for example in defining reguirement lists and generating specific documents : specification, design, tests, user and servicing guidebooks. They also present an opportunity to use rigorous methods and computer tools. Some projects lead to an internship, but it is not an absolute requirement. March 20, 2008 : Final document and presentation. Organization Projects usually team up 3 to 4 ESIAL students majoring in : software engineering ; telecommunications, network and services ; company information systems and software applications for industrial systems. This enables all students to become aware of communication, organization, and information sharing issues. Personal work is estimated at 250 hours for each student, equivalent to 6 man-months for a 4 person team. Each project is supervised by an industrial supervisor and by an academic advisor. Each team gives a presentation both at mid-term (in English) and at the end of the project. An intermediate report, a final document and audit also form an integral part of the industrial project. Industrial placements involve no financial compensation. ESIAL provides each group of students with at least two PCs along with usual software. However, all expenses linked to the trainee’s travel, supervision and academic involvement, materials and sofware specific to the project are the responsability of the company. -5- Si vous souhaitez proposer un projet industriel pour la rentrée universitaire 2008 / 2009, vous pouvez nous retourner ce document ou le télécharger, dans la “rubrique partenariats” sur le site de l’école : http://www.esial.uhp-nancy.fr PROJET INDUSTRIEL 2008 / 2009 - INDUSTRIEL - PROPOSITION Document à retourner au plus tard pour fin août 2008. Structure ........................................................................... Projet suivi par ........................................................................... Adresse ........................................................................... ........................................................................... ........................................................................... Tél : .......................... Fax : .......................... E-mail : ............................................................. - CONTEXTE DU PROJET - Titre : ....................................................................................................................................................................................................... ....................................................................................................................................................................................................... - Sujet : ....................................................................................................................................................................................................... ....................................................................................................................................................................................................... ....................................................................................................................................................................................................... - Environnement : - humain ....................................................................................................................................................................................................... ....................................................................................................................................................................................................... - matériel ....................................................................................................................................................................................................... ....................................................................................................................................................................................................... - logiciel ....................................................................................................................................................................................................... ....................................................................................................................................................................................................... - Aspects Innovants : ....................................................................................................................................................................................................... ....................................................................................................................................................................................................... ....................................................................................................................................................................................................... ✂ Les projets industriels ne font l’objet d’aucune clause financière. L’ESIAL met à disposition de chaque groupe de projet au moins deux PCs et les logiciels de base. Toutefois, les frais liés aux déplacements des élèves et des encadrants universitaires ainsi que les matériels et logiciels spécifiques au projet sont à la charge des entreprises. Please return this document before 08/31/2008 to : [email protected] or by fax : 00.33.3.83.68.26.09 INDUSTRIAL PROJECT 2008 / 2009 - ENTERPRISE Name of the structure PROPOSITION ..................................................................... Name of the ........................................................................... responsible for the project Address ........................................................................... ........................................................................... ........................................................................... Phone : .......................... Fax : .......................... E-mail : ............................................................. - PROJECT CONTEXT - Title : ....................................................................................................................................................................................................... ....................................................................................................................................................................................................... - Subject : ....................................................................................................................................................................................................... ....................................................................................................................................................................................................... ....................................................................................................................................................................................................... - Environments : - human ....................................................................................................................................................................................................... ....................................................................................................................................................................................................... - material ....................................................................................................................................................................................................... ....................................................................................................................................................................................................... - software ....................................................................................................................................................................................................... ....................................................................................................................................................................................................... - Innovating aspects : ....................................................................................................................................................................................................... ....................................................................................................................................................................................................... ....................................................................................................................................................................................................... ✂ Industrial placements involve no financial compensation. ESIAL provides each group of students with at least two PCs along with usual software. However, all expenses linked to the trainee’s travel, supervision and academic involvement, materials and sofware specific to the project are the responsability of the company. PROJETS INDUSTRIELS INDUSTRIAL PROJECTS 2007 / 2008 E S IA L 6WIND HAUTE DISPONIBILITÉ DES PROTOCOLES RÉSEAUX High-availability network protocols ABSTRACT 2007 / 2008 This industrial project was proposed by 6WIND company, a specialist in embedded networking software,based in Montigny-le-Bretonneux and at the initiative of Mr. Vincent Jardin. Students who worked on this project are Frossini Jeremie, Jerome Desachy and Thibault Lemoine. The university supervisor is Ms. Moufida Maimour. Élèves Jérôme DESACHY Jérémie FROSSINI Thibault LEMOINE Computers are the nervous system of the company, that is why it is common to ask a system to do a distribution of the workload and, in case of failure, to have high availability behaviour. The goal is to secure the system by setting up machines that can be relayed. The purpose of this project is to understand the impact of “high availability”. In order to do this subject, we started learning how to use OpenAIS and Quagga software. OpenAIS is a program that rapidly creates applications for clusters and his goal is to maintain services even in case of hardware or software failure. Quagga is a routing daemon allowing a computer to do the same functions of a network router, and more to communicate with another router to exchange information about routing. The project is composed of several tasks: 1. Come to grip with OpenAIS 2. Writing a first daemon based on OpenAIS 3. Writing a report on OpenAIS /Quagga 4. Creating a game slide about the “evs” functions 5. Making a demon based on Quagga Partenaire 1, place Charles de Gaulles 78180 MONTIGNY-LEBRETONNEUX Encadrants industriel Vincent JARDIN To write these programs, we had to use the functions “evs”, Extended Virtual Synchrony, which allow to send messages. They use UDP/IP, so an issuer can transmit some data, ensuring that changes in a group should be observed by all members of the group at the same time. Finally, this project has allowed us to gain knowledge of theoretical and practical issues regarding the routing protocols,using of daemons and networks in general. - 12 - universitaire Moufida MAIMOUR E S IA L 6WIND PRÉSENTATION Ce projet industriel a été proposé par l’entreprise 6WIND, spécialiste du marché des logiciels réseau IP, situé à Montigny-leBretonneux et à l’initiative de M. Vincent Jardin. Les étudiants ayant travaillé sur ce projet sont Jérémie Frossini, Jérôme Desachy et Thibault Lemoine sous la tutelle de leur encadrante universitaire Mme Moufida Maimour. Les ordinateurs composent le système nerveux de l’entreprise, c’est pourquoi il est fréquent de demander à un système de proposer une répartition de la charge de travail et, en cas de panne, d’avoir un comportement haute disponibilité. Il n’est pas question d’augmenter la puissance de calcul mais de sécuriser le système par la mise en place de machines pouvant se relayer. Le but de ce projet est de comprendre l’impact de la “haute disponibilité” sur l’ingénierie des protocoles réseaux à partir des modèles et API qui sont standardisés par le “Service Availability Forum”. Afin d’appréhender ce sujet, nous avons commencé par prendre en main les logiciels OpenAIS et Quagga. OpenAIS est un logiciel permettant de créer rapidement des applications pour des clusters. Le but principal d’OpenAIS est de maintenir le service continuellement, indépendamment des pannes systèmes ou matérielles. Quagga est un démon de routage, c’est donc un logiciel donnant la possibilité à un système de jouer le rôle de routeur réseau, et surtout de dialoguer avec un autre routeur pour échanger ses informations de routage. Le cahier des charges est constitué des ces différentes phases : 1. 2. 3. 4. 5. Prise en main d’OpenAIS. Écriture d’un premier démon basé sur OpenAIS. Écriture d’un rapport sur OpenAIS /Quagga. Création d’un jeu de slides sur les fonctions “evs”. Réaliser un démon basé sur Quagga. Afin d'écrire les programmes, nous avons dû utiliser les fonctions “evs”, Extended Virtual Synchrony, qui permettent une gestion de l'envoi de message. Elles utilisent le standard UDP/IP afin qu'un émetteur puisse transmettre à plusieurs receveurs des données, garantissant ainsi que les changements qui surviennent dans un groupe soient observés par tous les membres du groupe au même moment (Virtual Synchrony). La communication avec les différents intervenants s’est principalement faite par mail ou par MSN. Des conversations téléphoniques ont également eu lieu toutes les deux semaines afin de faire un bilan sur l’état d’avancement du projet. De plus, nous avons envoyé des “weekly report” chaque semaine afin de rendre compte des tâches effectuées. Finalement, ce projet nous a permis d'acquérir des connaissances aussi bien théoriques que pratiques concernant les protocoles de routages, l’utilisation des démons et des réseaux en général. En effet, les cours enseignés dans notre spécialisation (Télécommunication, Réseaux et Services) ont pu être mis en pratique dans la réalisation d'un projet, ce qui nous a semblé particulièrement intéressant malgré la difficulté de s’imprégner des programmes gérant la haute disponibilité des protocoles réseaux. - 13 - E S IA L A R T E FAC T S STUDIO MODULE INTELLIGENT D’ANIMATION DE PERSONNAGES DE JEUX VIDÉO Plug-in for smart video game character animation ABSTRACT 2007 / 2008 This industrial project has been proposed by Artefacts Studio, a video game studio based in Lyon. The students who worked on the project are Nicolas Beaufort, Benoît Maurice and Nicolas Saugnier, supervised by Mrs Annie Besnard on the university side and Mr Benjamin Levy on the industrial side. Artefacts Studio is currently altering its game contractor activity into an activity of full game developer, and to support this change, they are growing their own game engine, AGE, along with a game level design tool, LevelTool. The goal of this project was to create a plug-in module for AGE and LevelTool to replace the former way of playing sequence of animations. They used to script all possible animation sequence. The module is intended to automatically calculate the animation sequence suited to achieve a given goal. The project was divided into two main phases: the specification writing and study of the tools we had to integrate our module in, from October to January, and second, the development itself, until the end of the project, in March. During the development phase, we split the work into three tasks, performed in parallel: creating the interface with LevelTool and AGE, managing the animation, and the core algorithm which determines the animation sequence. This project was for us an opportunity to have an insight of the gaming industry. Besides, it was a great way to practice project management skills like time management, planning or specifications writing and in the same time to enhance our skills in fields like C++ programming, artificial intelligence or man-machine interface creation. - 14 - Élèves Nicolas BEAUFORT Benoît MAURICE Nicolas SAUGNIER Partenaire 181, avenue Jean Jaurès 69007 LYON Encadrants industriels Benjamin LEVY Franck MAESTRE universitaire Annie BESNARD E S IA L A R T E FAC T S STUDIO PRÉSENTATION Proposé par la société Artefacts Studio située à Lyon, ce projet a été réalisé par les étudiants Nicolas Beaufort, Benoît Maurice et Nicolas Saugnier. Les encadrants sont Mme Annie Besnard du côté de l’ESIAL et Benjamin Levy du côté de l’entreprise. Artefacts Studio exécute des contrats de sous-traitance sur tous les aspects de la réalisation de jeux vidéo, et depuis peu réalise aussi des jeux complets. Dans cette optique, la société a développé son propre moteur de jeu, AGE, ainsi qu’un logiciel d’édition de niveaux de jeux, LevelTool. Ce dernier, fortement lié au moteur, permet de gérer l’agencement des éléments d’un monde virtuel, ainsi que leurs interactions. Auparavant, l'enchaînement des animations des personnages se faisait à l’aide de scripts ou bien de code ad-hoc. Cette approche ne permettait pas une grande flexibilité ni la réutilisation. De plus, la prise en compte de toutes les animations possibles et de tous les cas de figure rendait la réalisation d’un système fonctionnel très longue et fastidieuse. Dans le cadre du Projet Industriel ESIAL, l’objectif était de créer un module générique d’animation pour AGE et d’assurer son intégration dans LevelTool. Le module devait permettre de gérer l’animation des personnages, en calculant automatiquement la suite d’actions à réaliser pour atteindre un but donné. Le module se présente sous la forme d’un fichier DLL qui peut être chargé lors de l’exécution de LevelTool. Le langage utilisé est le même que celui d’AGE et de LevelTool, le C++. Le projet a été découpé en deux grandes phases : - la rédaction du cahier des charges et la découverte de l’existant, d’octobre à début janvier, - la réalisation du module, de janvier à la fin du projet, en mars. La réalisation a été découpée en trois parties qui ont été effectuées en parallèle : - une interface avec LevelTool, qui comprend les liens avec l’existant ainsi qu’une interface graphique en wxWidgets pour paramétrer le module et le piloter, - une gestion et une analyse des animations qui permettent d’extraire les caractéristiques des animations pour que le module puisse les utiliser, et de faire jouer par AGE la suite d’animation calculée, - le cœur du module, un algorithme d’intelligence artificielle qui détermine la séquence d’animation. La communication entre le groupe et l’encadrant industriel s’est principalement faite par courrier électronique et messagerie instantanée, ponctuellement. Au niveau de l’encadrement universitaire, ce sont des réunions hebdomadaires qui ont été privilégiées, au terme desquelles des comptes-rendus ont été rédigés et distribués à tous les encadrants, par courrier électronique et à travers un site de gestion de projet. Ce projet a été pour nous l’occasion de découvrir le domaine très intéressant et très particulier du jeu vidéo. Il nous a aussi permis de nous familiariser avec les méthodes de développement d’un projet réalisé dans le cadre de l’entreprise, avec notamment la rédaction d’un cahier des charges et d’un planning. Il nous a également permis de progresser dans de multiples domaines tels que le langage C++, l’intelligence artificielle ou encore la réalisation d’interface graphique. - 15 - E S IA L ATOS ORIGIN PARTAGE DE LA VISION DU SUIVI D’AFFECTATION Web application for employees’ assignments ABSTRACT 2007 / 2008 Atos Origin is one of the major European IT consulting firms. It was set up in October 2000, by the union between Atos and Origin. Established in 40 countries all over the world, Atos Origin has a turnover of more than 5,4 billion Euros a year, with a manpower of more than 50 000 employees. The Metz branch solicited us to deploy a web application for employees' assignments. Currently, the assistant manipulates employees’ data through Excel and Word files. With more than one hundred files to handle daily, this system is obviously obsolete. Philippe Lambert, our supervisor at Atos Origin, put us in charge of the deployment of a web-based collaboration platform based on Microsoft Sharepoint. The main purpose is to gather all information into one single database and to limit the rights to the data, depending on the rank of the employee. So we differentiated three actors: – the assistant, who has access to all pages for edition and consultation, – the manager, who has access to all pages only for consultation, – the employee, who has access to his own personal information, only for consultation. Thereby, the application allows sharing the data’s view within the company, feature that was not possible before. Sharepoint is a tool made for the creation of intranets, mostly by customizing forms and behaviours. The user’s request being very specific in our case, we needed to recode some modules to customize pages. We used C#.NET language for that development. Visual Studio 2005 and SQL Server were also used. Before starting directly to create the application, an audit was needed. Our team spent time with the future users to understand their work and their way of working. As a result, specifications were written, gathering the functionalities expected. As we chose to use the RAD (Rapid Application Development) method, four modules were highlighted to be developped iteratively: 1. Employees’ data: a kind of directory which contains employees’ personal information. 2. Vacation management: pages that allow counting vacation's and TOIL's days for each employee. 3. Training management: same as previous module, but for employees’ training. 4. Assignments: module that allows viewing globally the employee’s assignments to projects. On an organisational aspect, each member of our team had a role and responsibilities. We chose a project manager, and responsible persons for functional, technical and quality parts. On Atos Origin side, one IT partner was available to help us with the development. Beyond the communication by phone and e-mail, meetings were set up almost every Monday in Metz, at Atos Origin office, to evaluate the project advancement, to meet the users or to make demos of finished modules. - 16 - Élèves Dorian LARRIÈRE Mathieu RAMPANT Nicolas RINGENBACH Benjamin SARREY Partenaire 8, rue Lafayette 57000 METZ Encadrants industriel Philippe LAMBERT universitaire Hervé PANETTO E S IA L AT O S ORIGIN PRÉSENTATION Atos Origin est une des principales sociétés de services en ingénierie informatique (SSII) françaises. Elle est née en octobre 2000, de la fusion d’Atos et Origin. Implanté dans 40 pays à travers le monde, Atos Origin réalise un chiffre d’affaires annuel de plus de 5,4 milliards d’euros avec un effectif de plus de 50 000 personnes. L’agence située à Metz nous a sollicités pour mettre en place une plateforme d’aide à la gestion des ressources humaines. Actuellement, la gestionnaire gère les données liées à l’activité des collaborateurs aux travers de feuilles Excel et fichiers Word. Avec plus d’une centaine de fichiers à manipuler au quotidien, il s’avère que ce système a atteint ses limites. Philippe Lambert, notre encadrant industriel, nous a donc chargés de mettre place une plateforme collaborative avec la technologie Microsoft Sharepoint. L’objectif est de rassembler toutes les informations au sein d’une seule base de données et d’y autoriser l’accès et la vision selon le grade de l’employé. On distingue alors trois rôles : - le gestionnaire, ayant les droits de consultation et de modification sur toutes les pages, - le manager, qui peut consulter toutes les pages sans les modifier, - le collaborateur, ne pouvant consulter que ses propres données. Ainsi, l’application permet de partager la vision des données au sein de l’entreprise, facilité qui était impossible auparavant. Sharepoint est un outil permettant de créer des intranets très rapidement, principalement par configuration. Les besoins du client étant assez pointus dans notre cas, il a fallu recoder certains modules pour personnaliser les pages. Le langage C#.NET a donc été utilisé en ce sens. Toujours sur le plan des outils et des technologies, nous avons utilisé Visual Studio 2005 et SQL Server. Avant de réaliser techniquement l’application, un travail de recensement des besoins a du être effectué. Notre équipe a donc passé du temps avec les futures utilisatrices pour comprendre leur travail et leur mode de fonctionnement. De cette étape est issu un cahier des charges fonctionnel faisant le bilan des fonctionnalités attendues. Ayant choisi une méthodologie de développement logiciel RAD (Rapid Application Development), quatre modules à réaliser itérativement ont été mis en évidence : 1. Base collaborateur : sorte d’annuaire contenant les informations personnelles des employés. 2. Gestion des congés : pages permettant de décompter les congés et les RTT de chaque collaborateur. 3. Gestion des formations : même principe que le module précédent mais pour les formations des employés. 4. Affectations : module Sharepoint ayant pour objectif de visualiser les affectations des collaborateurs aux projets. Sur un plan organisationnel, chaque membre de l’équipe avait un rôle et des responsabilités. Nous avons désigné un chef de projet, un pilote fonctionnel, un responsable technique et un responsable qualité. Du côté d’Atos Origin, un référent technique a été mis à notre disposition pour nous aider dans le développement. Au-delà de la communication par mail et téléphone, des réunions avaient lieu pratiquement tous les lundis à Metz, à l’agence d’Atos Origin pour faire des mises au point sur l’avancement du projet, faire des réunions avec les utilisatrices ou encore pour faire des démonstrations des modules terminés. - 17 - E S IA L COULLOMB INGÉNIERIE PLATE-FORME WEB POUR LE SUIVI DE CONSTRUCTIONS Web platform for construction monitoring ABSTRACT 2007 / 2008 The main purpose of this project is to provide a web platform for remote construction site monitoring. It was developed by the French company “Coullomb Ingénierie”, a small IT company based in Avignon (Vaucluse). The main objective of this project is to enhance information exchanges between individual house constructors and their customers. This project is related to Batimanager, another project of “Coullomb Ingénierie”, which is an ERP dedicated to house building sites. The final goal is to link Batimanager and the website and to allow Batimanager handling some features of the website, despite the independency between both databases (no shared information system). The project can be divided in three main sections: - The administrator part, where the administrator can manage the website and its users. This section provides also some statistics about users activities on the site (connections and actions done). - The constructor part, where a constructor can handle their different constructions sites and customers, as well as every information related to construction sites. - The customer part, where a customer can consult the state of his construction site and information published by the constructor. We used several tools to manage this project. Every task and document (meeting reports, technical specifications, etc.) was centralized on a project management platform provided by “Coullomb Ingénierie” and we used a SVN server to assist us in source code sharing. - 18 - Élèves Jonathan BOUZENOT François CARIOU Michel KUEHN Partenaire 6, rue François Mauriac 84000 AVIGNON Encadrants industriel Fabien COULLOMB universitaire Gérald OSTER E S IA L COULLOMB INGÉNIERIE PRÉSENTATION Le projet industriel Web Plateforme pour le suivi de constructions est issu de la société Coullomb Ingénierie, localisée à Avignon (Vaucluse). Les étudiants Jonathan Bouzenot, François Cariou et Michel Kuehn ont réalisé ce projet. L'encadrement a été effectué par M. Gérald Oster au niveau universitaire et par M. Fabien Collomb au niveau industriel. L'objectif de ce projet est la création d'une plateforme Web afin de faciliter les échanges d'informations entre les maîtres d'œuvre et les maîtres d'ouvrage dans le cadre de construction de maisons individuelles. La société Coullomb Ingénierie a développé Batimanager, un ERP destiné aux constructeurs de maisons individuelles. En l'état, ce progiciel ne propose pas de fonctions permettant au maître d'ouvrage d'accéder facilement à des informations concernant l'avancement de son chantier. Il s'agit de mettre ligne dans un premier temps une plateforme indépendante de Batimanager, utilisant le langage PHP. Cette plateforme sera documentée à la fois par le maître d'œuvre qui fournira des informations sur le chantier et par le maître d'ouvrage qui pourra rédiger d'éventuels commentaires en réponse au maître d'œuvre. Le projet se décompose globalement en trois grands modules : - La partie administrateur. Cette dernière permet à l'administrateur d'effectuer les tâches de gestion du site et de ses différents utilisateurs tout en lui fournissant des statistiques détaillées sur l'utilisation de la plateforme par les maîtres d'œuvre et les maîtres d'ouvrage. - La partie maîtres d'œuvre. Cette partie permet au constructeur de gérer ses chantiers et les clients associés ainsi que la diffusion d'informations relatives aux chantiers. - La partie maître d'ouvrage. Cette partie permet au client de consulter les informations publiées par le maître d'œuvre. Le projet a été divisé en cinq phases : 1 - Rédaction du cahier des charges durant le mois de novembre 2 - Développement de la partie Administrateur durant le mois de décembre 3 - Développement de la partie Maîtrise d'Œuvre durant le mois de janvier 4 - Développement de la partie Maîtrise d'Ouvrage durant le mois de février 5 - Réalisation de l'interface graphique durant les mois de février et mars. Une méthode de développement itérative a été mise en place. Ainsi, les objectifs d'une itération sont définis et une fois ces objectifs atteints et testés, l'itération est validée. À l'issue du projet, la plateforme Web est opérationnelle bien que l'interface graphique du site ne soit pas nécessairement optimale au niveau visuel et ergonomique. De plus, il reste à faire la liaison avec Batimanager afin d'automatiser une partie de l'alimentation de la base de données concernant l'avancement des chantiers. Pour ce qui est de la gestion du projet, cette dernière s'est effectuée par le biais d'une plate-forme de gestion de projet mise à notre disposition par Coullomb Ingénierie ainsi qu'un serveur SVN afin de gérer le partage des sources du site. La plateforme de gestion de projet contient toute la documentation issue du projet, notamment les rapports résultants des réunions organisées avec les différents encadrants. Ce projet nous a permis de nous familiariser avec les contraintes du développement Web ainsi que de nous approprier les mécanismes inhérents à la gestion d'un projet coopératif. - 19 - E S IA L CTG LUXEMBOURG PUMA, UN OUTIL DE GESTION DE PROJET PUMA, a project management tool ABSTRACT 2007 / 2008 Our industrial project, called PUMA (Project Unit Management and Administration), was submitted by the branch of Luxembourg of CTG, a company which provides information technology services. PUMA is an existing and internal application developed by CTG. It is intended to help monitoring project and make estimations of future developments. The first version of PUMA is a fat client application and has limited functionalities. The objectives of the project are: - to transform this application into a Rich Internet Application, using Adobe FLEX technology, in order to integrate it into a web portal. - to improve existing functionalities and bring so new ones. We divided our project into two main phases: the functional analysis with the writing of the work specifications, following by the development composed of: - the realization of the database and data migration, - the definition of screen shots, - the development of the server with J2EE technology, - the development of the client using a MVC architecture. Élèves Nathalie BERBEL Claire JOBARD Loïc MOLINO Éric TERRIEN Partenaire Rue des Mérovingiens L-8070 BERTRANGE LUXEMBOURG Encadrants industriel David RENOUX To reach our objectives, we worked with short iterations. We had weekly meetings to validate the work done and to define the next steps of the project. This project was an opportunity to acquire several skills in the area of web technologies (which are more and more used). We have also learned project management issues like managing time, resources and communication with ours industrial supervisors. - 20 - universitaire Vincent BOMBARDIER E S IA L CTG LUXEMBOURG PRÉSENTATION Ce projet industriel a été proposé par CTG Luxembourg. C’est une société de services en ingénierie informatique principalement présente dans le secteur financier. Les étudiants travaillant sur ce projet sont Nathalie Berbel, Claire Jobard, Loïc Molino et Éric Terrien . L’encadrement au niveau universitaire a été réalisé par Vincent Bombardier et au niveau de l’entreprise, par David Renoux. CTG a développé une application de gestion de projets : PUMA (Project Unit Management and Administration). Elle permet de suivre un projet et de pouvoir anticiper les estimations en ressources et en temps de développements futurs en utilisant les estimations passées. Elle possède une interface simpliste. Cette première version de PUMA est une application de type client lourd en Java avec des fonctionnalités principales de gestion de projets. Dans le cadre du projet ESIAL, l'objectif principal est de réaliser une refonte de l'application en utilisant Adobe FLEX, afin de pouvoir porter PUMA dans un portail web. Il nous est également demandé d'ajouter de nouvelles fonctionnalités. Le projet est divisé en deux grandes phases : l’élaboration du cahier des charges, du mois d’octobre à fin décembre, puis le développement, de début janvier à mi mars. La spécification du cahier des charges a été réalisée en quatre étapes distinctes : - l’étude fonctionnelle de l’existant, - la recherche de nouvelles fonctionnalités à intégrer, - la création du modèle physique de données, - le contrat d’intégration entre PUMA et un module du portail web développé par CTG. Par la suite, le développement de l’application a comporté les points suivants : - la création de la base de données et la reprise des données de l'ancienne application, - la définition des écrans, - le développement de la partie serveur en J2EE, - le développement de la partie client en FLEX, en utilisant une architecture MVC - la communication entre PUMA et un module de saisie de données développé par CTG. Pour pouvoir atteindre ces objectifs, le développement de l'application a été réalisé par itérations (Extreme programming). À chaque itération correspond un groupement de fonctionnalités : hiérarchisation d’un projet, affectation des tâches et des ressources, et reporting (rapports de données et chiffres sur le projet). Une itération est scindée en deux parties. La première définit les écrans à développer soumis à l’industriel, et la seconde consiste au développement de ces écrans. Pour répartir les tâches, celles-ci ont été groupées par domaine de fonctionnalités. La communication avec les différents intervenants se fait par mail et à l'aide de plateformes collaboratives. Des réunions ont également été organisées à différentes étapes du projet. Les comptes-rendus des réunions hebdomadaires, l'ensemble des documents et des sources ont été placés sur ces plateformes. Au terme du projet, la refonte de l'application a été effectuée, elle possède les principales fonctionnalités de gestion de projets. Les fonctionnalités restant à implémenter sont spécifiées et intégrées au cahier des charges du projet PUMA. Ce projet a été pour nous l’occasion d’acquérir de nombreuses connaissances dans les domaines des technologies Web, qui sont de plus en plus utilisées. Ce fut également une bonne opportunité de gérer un projet en étroite collaboration avec un partenaire industriel. - 21 - E S IA L DEXIA ADTS Projet 1 BUDGET MANAGER, UNE APPLICATION DE GESTION DE BUDGETS Budget Manager, a budget managing application ABSTRACT 2007 / 2008 This industrial project was submitted by Associated Dexia Technology Services (ADTS) based in Luxembourg. The three students who worked on this project are Sami Boudrai, Ayhan Per and Adrien Glucker. Our academic supervisor is Francis Alexandre and our industrial supervisor is Nicolas Remarck. Budget Manager is a piece of software developped using Java J2EE by ADTS to help them manage their budget. Notably, it provides an understandable view of the commitments, and it communicates with SAP to retrieve financial information on budgets and commitments. Élèves Sami BOUDRAI Adrien GLUCKER Ayhan PER Partenaire Our first work was to develop the interface between SAP and Budget Manager. For this, we chose to use an Excel spreadsheet as an intermediary file. SAP is able to export its data into an Excel spreadsheet. All was left to do was to write a tool to import this data and insert it into the database used by Budget Manager. This tool had to be flexible because it would be reused in other applications. Atrium Business Park 23, 2A Bourmicht L-8070 BERTRANGE LUXEMBOURG Our second work was to adapt Budget Manager to EJB 2. It was previously written using Spring and Hibernate. Encadrants Thanks to this project, we were able to improve our skills in project management, communication, and of course web developpement using J2EE, which is really popular within entreprises nowadays. industriel Nicolas REMARCK universitaire Francis ALEXANDRE - 22 - E S IA L DEXIA ADTS Projet 1 PRÉSENTATION Ce projet industriel a été proposé par Associated Dexia Technology Services (ADTS) situé à Luxembourg. Les étudiants ayant travaillé sur ce projet sont Sami Boudrai, Ayhan Per et Adrien Glucker. L’encadrement au niveau universitaire a été assuré par Francis Alexandre et au niveau de l’entreprise, par Nicolas Remarck. Budget Manager est une application interne développée en Java / J2EE par ADTS. Cette application doit permettre d'améliorer la gestion des budgets en fournissant notamment aux responsables budgétaires une meilleure vue sur leurs engagements. Budget Manager intervient dans un cycle de traitements budgétaires composé des étapes suivantes : - Génération d’une demande d’achat par Budget Manager. - Validation de la demande par l’équipe de Bruxelles. - Génération d’un bon de commande à partir de SAP. - Passage de commande. - Réception de la facture. - Insertion par la comptabilité des nouvelles données dans SAP. - Récupération des informations et mise à jour par Budget Manager. La première partie de notre travail a consisté à travailler sur la communication entre SAP et Budget Manager. Cette communication se fait par l’intermédiaire d’un fichier Excel, en utilisant les capacités d’exportations de SAP. Nous avons écrit un outil d’importation de fichier Excel dans une base de données. Cet outil que nous avons appelé ExcelImport, devait de plus être très flexible, car il sera réutilisé dans d'autres applications. Excel Import se base sur des fichiers de définitions en XML pour savoir comment insérer les données provenant du fichier Excel. Il permet d'associer chaque colonne de la feuille Excel à une colonne dans une table de la base de données. Il permet aussi d'appliquer des conversions sur ces colonnes et de créer facilement ses propres convertisseurs en Java. Il est écrit en J2EE et tourne en tâche de fond dans un serveur d'application. Il convertit automatiquement toutes les feuilles Excel qui sont déposées dans un dossier. La réalisation du cahier des charges a pris beaucoup de temps à cause de soucis de communication. Une fois le besoin bien exprimé, nous avons eu une phase de conception d'un mois, pendant le mois de novembre. S'en est suivi une période de développement/tests pendant le mois de décembre. La documentation technique a été achevée fin décembre. La deuxième grande partie a consisté à adapter l'application Budget Manager au standard EJB 2. Elle avait été écrite à l'origine en utilisant Spring et Hibernate. Pour cela, nous avons d'abord dû comprendre l'application existante, et cela est passé en partie par une rétro ingénierie. Puis nous avons conçu notre propre modèle en nous inspirant de l'actuel. Le projet a nécessité une grande part de communication. À cet effet, nous nous entretenions hebdomadairement avec l’encadrant industriel, lors d'une conférence téléphonique et nous sommes allés le voir à deux reprises à Luxembourg, pour faire un point complet. En ce qui concerne la communication à l'intérieur du groupe, nous communiquions par MSN, par mail, et grâce à un wiki qui nous permettait de garder les informations importantes comme le planning de la semaine, les comptes-rendus des conférences etc... De plus, nous avions un serveur SVN qui nous permettait de stocker nos différents documents et notre code source et de gérer facilement les différentes versions. Ce projet nous a permis de nous familiariser avec l'environnement J2EE, qui est actuellement une plateforme très demandée par les entreprises. Ce projet nous a aussi permis de nous familiariser avec la gestion d'un projet, ses différentes phases, de l'établissement du cahier des charges à la validation, et la communication et l'organisation à l'intérieur d'une équipe. - 23 - E S IA L DEXIA BIL Projet 2 CRÉATION D’UN SIMULATEUR DE PRÊTS À LA CONSOMMATION Consumer loan simulator ABSTRACT 2007 / 2008 This industrial project was submitted by the luxembourguese bank named DEXIA BIL. Four students worked on this project, Sébastien Dome (the project manager), Erick Gelhaye, Stéphane Roos and Jonathan Vatry. The industrial supervisor was Sorin Cristescu and the university one was Isabelle Courbot. The main goal of this project was to create an attractive and easy to use consumer loan simulator based on the Adobe Flex technology. This simulator is intended for the general public and not for rich private customers. The first interest of this simulator is to make the user feel like entering his/her various pieces of information and at the same time decrease the loan rate. The project was divided into two main parts, the specification studies followed by the Flex development. Alongside those two parts, we decided to make an auto-training on different technologies, like flex for the web development and Scrum for the project management. In our process of realization of the software, we included the customer. In fact the client is part of the realization, so he can provide us with some feedback about the work done. At the end of the project, the main specification and realization have been achieved but the final software could not be used by the Dexia Bank, because it’s just a prototype of what can be produced to satisfy the public branch of Dexia. Not only was this project an opportunity to foresee the banking and financial business but it also allowed us to apply different methods of project management. We also acquired some knowledge about web technologies. - 24 - Élèves Sébastien DOME Érick GELHAYE Stéphane ROOS Jonathan VATRY Partenaire 69, route d’Esch L-2953 LUXEMBOURG LUXEMBOURG Encadrants industriel Sorin CRISTESCU universitaire Isabelle COURBOT E S IA L DEXIA BIL Projet 2 PRÉSENTATION Notre projet industriel de l’année 2007-2008 a été proposé par la banque luxembourgoise DEXIA BIL. Ce projet industriel était encadré par Mme Courbot Isabelle au niveau universitaire et par M. Sorin Cristescu au niveau entreprise. Quatre étudiants ont travaillé sur ce projet, Sébatien Dome, Érick Gelhaye, Stéphane Roos et Jonathan Vatry. Le but de ce projet était de créer un simulateur de prêt à la consommation attrayant et simple d’utilisation sur la base de la technologie Adobe Flex. Ce simulateur est destiné au grand public et non à de grands comptes. L’intérêt premier de ce simulateur est d’attirer de nouveaux clients en diminuant le taux du prêt en fonction des informations saisies par l’utilisateur. Le projet a été divisé en 4 parties : - Une partie Back, qui regroupe l’écriture des différents contrats de service et les applications de test. - Une partie Middle, qui est le cœur du projet avec sa partie développement et mise en œuvre du Java et SQL. - Une partie Front, qui est la création de l’interface utilisateur en Flex. - La dernière partie est le Cover, elle regroupe la gestion du projet et la phase de modélisation de ce dernier. Les technologies utilisées ont été : Adobe Flex, Java/J2EE, SQL, XML, WSDL. Au début du projet, une réunion avec l’encadrant industriel a été effectuée pour poser les bases du projet et surtout pour qu’il nous définisse ses attentes sachant que le client principal de ce projet était notre encadrant industriel. La première phase de ce projet a été la modélisation, avec la création de différents diagrammes nous permettant de visualiser au mieux l’application dans sa globalité ainsi que les différentes informations qui y circulent. Les diagrammes créés ont été les diagrammes de classe, de séquence, d’implémentations ainsi que des cas d’utilisation. La seconde partie a été le développement proprement dit. Avant de pouvoir commencer à coder, il a fallu nous auto-former sur le langage Flex et aussi étudier les différents frameworks fournis par notre encadrant industriel pour avoir une meilleure communication avec les différents logiciels de la banque. De plus une maquette graphique a été dessinée pour validation auprès du client. Tout au long de ce projet, nous avons utilisé une méthode de gestion de projet, appelée Scrum, basée sur la méthode agile pour le développement de logiciel incluant le client au cœur du processus de réalisation du logiciel. Cette méthode a pour but de fournir au client des versions du logiciel de manière régulière, pour ainsi avoir des retours clients régulièrement, afin de modifier le logiciel en fonction de ses besoins. La communication entre l’équipe développeur et les différents encadrants s’est effectuée principalement par mail. Quelques réunions ont été tenues par l’équipe et l’encadrant universitaire. Au terme de ce projet, les différentes étapes de conception et de réalisation ont pu être validées par le client. Les principales fonctionnalités ont pu être achevées mais le projet n’a pu être mis en production car ce dernier n’était qu’un prototype. Ce projet a été pour nous une occasion d’entrevoir le milieu bancaire et financier d’une part, mais aussi d’appliquer des techniques de gestion de projet d’autre part. Ce fut également une bonne opportunité pour appréhender et acquérir de nombreuses connaissances dans le développement web. - 25 - E S IA L EURO I N F O R M AT I O N DÉVELOPPEMENTS OUTIL DE PARSING DE FICHIERS SOURCES Source Code Analysis ABSTRACT 2007 / 2008 This industrial project was submitted by Euro Information Développements (EID), a subsidiary of the “Crédit Mutuel – CIC” based in Laxou (Meurthe et Moselle). This project is led by the following students Aurélie BOURGEOIS, Fabien DAILLER, Alexandre GEORGES and Jean-Sébastien HEDDE. Our industrial supervisor is Sébastien ALLIE and our university supervisor is Zahra IDELMERFAA-RONDEAU. Currently Euro Information Développements is using a tool based on a finite state automaton in order to extract all the text in the source code. This tool does not meet the requirements of strength, performance and scalability. The purpose of our project is to realize a new tool which reaches these requirements. The initial study has shown the necessity to use a tool based on a grammar. Élèves Aurélie BOURGEOIS Fabien DAILLER Alexandre GEORGES Jean-Sébastien HEDDE Partenaire 2, rue de la Vologne 54520 LAXOU The project was divided into three main phases: - The initial study: in this part, we made an overview of the existing parsers based on grammars in order to choose the best one. - The specifications: we describe the architecture of the software. - The development: we made a prototype of the architecture. At the end of the project, we made a working prototype of the software with the C Sharp support. This project was an opportunity to acquire several skills in .NET technologies and to discover all project management considerations. Encadrants industriel Sébastien ALLIÉ universitaire Zahra IDELMERFAA-RONDEAU - 26 - E S IA L PRÉSENTATION EURO I N F O R M AT I O N DÉVELOPPEMENTS Ce projet industriel a été proposé par l'entreprise Euro Information Developpements (EID) basée à Laxou. Les étudiants ayant travaillé sur ce projet sont : Aurélie Bourgeois, Fabien Dailler, Alexandre Georges et Jean-Sébastien Hedde. L'encadrement au niveau universitaire a été assuré par Zahra Idelmerfaa-Rondeau et au niveau industriel, par Sébastien Allié. Dans le cadre des activités d’Euro Information Développements, liées au référencement des objets informatiques, au contrôle de qualité et à l’internationalisation des applications, il existe le besoin de disposer d’un processus performant et fiable d’analyse des sources. Actuellement Euro Information Développements, afin d'extraire les chaînes de caractères pour les traduire ensuite, utilise un outil basé sur un automate à états finis. Celui-ci ne permet plus de répondre aux exigences de robustesse, de performance et d’évolutivité. L'objectif du projet est de réaliser un nouvel outil qui répond à ces exigences. L’étude initiale a démontré la nécessité d’utiliser des techniques d’analyse grammaticale éprouvées, par l’intermédiaire des parsers et des scanners générés à partir d’une grammaire normalisée (EBNF : Extended Backus-Naur Form). Ce projet a comporté trois grandes phases : - étude initiale : nous avons évalué la qualité des différents outils existants basés sur des grammaires, - rédaction des spécifications : nous avons décrit de facon très complète l'architecture du logiciel, - développement : nous avons réalisé un prototype du logiciel. Au final, nous sommes parvenus à réaliser un prototype fonctionnel du logiciel. L’analyse des fichiers C Sharp est fonctionnelle. La phase de développement fut la plus courte du fait de la précision des spécifications réalisées dans la phase précedente. La communication entre les différents intervenants s'est principalement faite par mail. Des réunions hebdomadaires au début du projet puis plus espacées par la suite ont été organisées avec notre encadrant industriel. Nous avons également rencontré régulièrement notre encadrante universitaire. Les comptes-rendus de chaque réunion et tous les documents produits ont été déposés sur un serveur spécialement prévu à cet effet. Ce projet a été l'occasion pour nous de mettre en place une démarche projet comportant une étude initiale, un dossier de spécifications et la réalisation du programme. Nous avons donc pu observer l'intégralité du déroulement d'un projet. Nous avons aussi été amenés à travailler avec un environnement Microsoft : Visual Studio, Visual Source Safe et le framework .NET. - 27 - E S IA L FRANCE TELECOM RECHERCHE DE VULNÉRABILITÉS PAR FUZZING Searching vulnerabilities by fuzzing ABSTRACT 2007 / 2008 This industrial project was submitted by the France Télécom Division R&D (MAPS/NSS), based in the Paris metropolitan area. The three students who worked on this project were Juliette CHAPALAIN, Lei LI et XavierEmmanuel VINCENT. Our academic supervisor was Martin Quinson and our industrial supervisor was Laurent BUTTI. Fuzz testing or fuzzing is a software technique that provides random data (''fuzzy'') to the inputs of a program. If the program fails (for exemple, by crashing or by failing buit-in code assertions), the defects can be noted since it may well denote a potential security issue. Our main goals were to test several fuzzers, especially Sulley Fuzzing Framework, in order to describe the weak points of these tools. We had also to choose some multimedia file formats and to fuzz them with the chosen fuzzer modified by us. The project was divided into five phases: - Getting documentation on fuzzing. - Studying of several fuzzers. - In-depth study of the chosen fuzzer. - Finding some interesting multimedia file formats and adaptation of the chosen fuzzer to the project. - Vulnerabilities reasearch. Élèves Juliette CHAPALAIN Lei LI Xavier-Emmanuel VINCENT Partenaire 38-40, rue du Général Leclerc 92130 ISSY-LES-MOULINEAUX Encadrants industriel Laurent BUTTI At the end of the project, we have developed two fuzzing tools. One is specialized for the PNG format. The other, based on Sulley, can fuzz several media files format. These two software manage the tests of the target program and check any errors. This project was an opportunity to acquire several skills in the area of computer code or software vulnerabilities (which is a current major challenge) and to be confronted each other to the world of R&D. We also discovered project management issues like managing time and communications between people. - 28 - universitaire Martin QUINSON E S IA L FRANCE TELECOM PRÉSENTATION Ce projet industriel a été proposé par France Télécom Division R&D (MAPS/NSS) situé en région parisienne. Les élèves ingénieurs ayant travaillé sur ce projet sont Juliette CHAPALAIN, Lei LI et Xavier-Emmanuel VINCENT. Martin QUINSON fut l'encadrant universitaire et Laurent BUTTI l'encadrant industriel. Le fuzzing est une technique pour tester des logiciels et découvrir des vulnérabilités. L'idée est d'injecter des données aléatoires dans les entrées d'un programme. Si le programme échoue (par exemple en crashant ou en générant une erreur), alors il y a des défauts à corriger. Les principaux avantages du fuzzing sont l'extrême simplicité lors de l'écriture de ces tests et la découverte d'erreurs de programmation triviales à éviter. Les objectifs de ce projet furent d'évaluer les différents fuzzers existants, et plus particulièrement Sulley Fuzzing Framework, afin d'identifier les points faibles et les manques de ces outils. Puis nous devions mettre en place une architecture de test se basant sur un des fuzzers afin de tester certains formats de fichiers multimédias. Le projet a été divisé en cinq phases : . nous avons commencé par étudier la documentation sur les différentes vulnérabilités, . nous avons étudié différents fuzzers en gardant comme principal but qu'ils devaient convenir pour du fuzzing sur des fichiers multimédias, . nous avons vérifié que le fuzzer choisi correspondait bien à nos besoins, . nous avons recherché deux/trois formats de fichiers multimédias intéressants et avons adapté le fuzzer à nos besoins, . nous avons essayé de trouver de nouvelles vulnérabilités. Au terme de ce projet, nous avons développé deux outils de fuzzing. L'un est spécialisé pour le format PNG et l'autre, basé sur l'outil Sulley Fuzzing Framework, permet de fuzzer plusieurs types de formats multimédias. Ces deux outils assurent les tests auprès du programme cible et relèvent leurs terminaisons anormales. Différents moyens de communications ont été mis en place. Outre le classique courriel pour les échanges, nous avions chaque lundi un entretien téléphonique avec Laurent BUTTI en présence de Martin QUINSON. Nous avons aussi mis en place un blog qui permettait aux élèves ingénieurs d'avoir une trace écrite de leur travail et d'y mettre le contenu des entretiens téléphoniques. Les élèves ont aussi beaucoup utilisé la messagerie instantannée permettant des échanges rapides et pratiques. Ce projet a été pour nous l'occasion de découvrir et d'acquérir de nombreuses connaissances dans le domaine du code source et des vulnérabilités (qui est aujourd'hui un problème majeur de l'informatique). Nous avons été par ailleurs confrontés au monde de la recherche qui n'exprime pas les mêmes besoins qu'une entreprise. Ce fut également l'opportunité de s'approprier des techniques de gestion de projet pour faire face aux problèmes de gestion d'un planning et de gestion de communication entre les différentes parties. - 29 - E S IA L GOODYEAR MISE EN ŒUVRE D’UNE ARCHITECTURE SOA BASÉE SUR DES OUTILS OPEN SOURCE Implementation of a Service Oriented Architecture ABSTRACT 2007 / 2008 This industrial project was submitted by Goodyear Technical Center, based in Luxembourg. The three students who worked on this project are Emmanuel BOURGAIN, Maxime GEORJON and Nicolas MAISONNEUVE. Our university supervisor is François CHAROY and our industrial supervisors are Pascal DEVILLE and Stephane ALIE. The goal of this project was to create a report generator dedicated to developpers of Goodyear Technical Center. This project allows developpers to create reports and to store them in a database. It also allows them to consult the reports via a web interface. In the first month of the project, we have made the conception of the application. To do this we have met several time our supervisors to dicsuss of their needs. The main document we have produced during this step is the specification of the application. The implementation was divided into three main phases : . Generation of XML files containing informations about reports (header, report body and SQL queries). . Developement an application which uses the previous XML files to create new documents of different formats (PDF, xsl, ...). . Creation of a web interface to downlaod or visualize the reports. At the end of the project, the softwares have reached enough functionalities for being used by the developpers of Goodyear Technical Center. This project was an opportunity for us to be confronted to the whole development of an application which means to write the specifications, to have meeting with the partner, to schedule the objectives and of course to develop the applications. - 30 - Élèves Emmanuel BOURGAIN Maxime GEORJON Nicolas MAISONNEUVE Partenaire Avenue Gordon Smith L-7750 COLMAR-BERG LUXEMBOURG Encadrants industriels Stéphane ALIE Pascal DEVILLE universitaire François CHAROY E S IA L G O O DY E A R PRÉSENTATION 1) Les différents partenaires du projet Dans le cadre de notre 3ème année à l'ESIAL, il nous a été donné l'occasion de réaliser un projet industriel en partenariat avec Goodyear Technical Center. Ce projet impliquait : . L'équipe de projet ESIAL, composée de Emmanuel Bourgain, Maxime Georjon et Nicolas Maisonneuve, tous les trois étudiants en 3ème année spécialisation TRS. . Pascal Deville et Stéphane Alie de Goodyear Technical Center. . François Charoy en tant qu'encadrant universitaire. 2) Les objectifs du projet L’objectif était de permettre aux développeurs des différents laboratoires de l’entreprise d’être plus efficaces dans la gestion des rapports des différents tests effectués sur les pneumatiques. Pour cela, il nous a fallu réaliser trois applications permettant respectivement de : . Générer différents rapports au format xml. . Traiter les divers fichiers générés par l'application précédente et les convertir à différents formats (pdf, xcl, ...). . Consulter les différents rapports depuis un navigateur. Le choix de ce projet a été motivé par deux principales raisons. La première concerne l'aspect “étude” : il s'agissait en effet pour nous de développer entièrement une solution à partir de l'analyse des besoins de l'entreprise et non de continuer une solution déjà existante. Notre seconde motivation résidait dans le fait que ce projet nous offrait l'opportunité de mettre en pratique les nouvelles technologies étudiées en cours notament les EJB et les JSP. 3) Les phases du projet Le projet a été décomposé en deux grandes phases : La phase de conception durant laquelle nous avons pris soin de rédiger un document complet regroupant les spécifications fonctionnelles et techniques des applications à réaliser. Durant cette étape, nous nous sommes rendus au sein de l’entreprise au Luxembourg et nos encadrants sont venus dans les locaux de l'ESIAL à plusieurs reprises afin de définir au mieux les besoins des futures applications. La seconde phase est la partie développement. En accord avec les demandes de nos encadrants de Goodyear Technical Center nous nous sommes principalement concentrés sur la première application, c'est-à-dire celle permettant de générer les rapports au format xml. Une fois cette dernière fonctionnelle, nous nous sommes intéressés à la réalisation de l'application permettant d'utiliser le xml précédemment généré afin d'obtenir de véritables rapports au format pdf. 4) Résultats Ce projet nous a permis d’être confrontés au développement complet d’une application, c'est-à-dire de la rédaction du cahier des charges jusqu’au déploiement de celle-ci. Ce fut aussi l’occasion de mettre en pratique la gestion de projet en effectuant des réunions, un planning ainsi qu’une répartition des tâches. - 31 - E S IA L I N T E R N AT I O N A L M O N E TA R Y F U N D FUNDELICIOUS, OUTIL INTRANET DE GESTION DE FAVORIS Fundelicious, intranet bookmarking tool ABSTRACT 2007 / 2008 IMF proposed this project in September 2007. Three students are working about this internal social bookmarking tool. This project is entitled Fundelicious in reference to del.icio.us. Del.icio.us is a social bookmarking web site. With Fundelicious, you can store your favorites, your bookmarks on your account. But above all, you can share your bookmarks with your friends, colleagues building your own organic social network through your shared links. Indeed, with this tool, you can create networks and be linked with people who have the same interests, skills,…like you. Three iterations are defined for this project: . Definition of architecture . Development of web services (n-tier layers) . Network management Élèves Matthieu GAUTHEY Jean-Baptiste GURY Émilien MICARD Partenaire 700 19th St. NW, Washington, DC 20431 USA Microsoft technologies are used for this project: .Net (C#), SQL Server, Nhibernate and Ajax. With Fundelicious, we discovered a new technology: .Net and how to manage communication between database, web services and web pages. We learnt to define a timeline and to split the whole work. Thanks to the use of collaboration tools (skype, Central Desktop), we know more about communication with clients. Encadrants industriel Hervé TOURPE universitaire André SCHAFF - 32 - E S IA L I N T E R N AT I O N A L M O N E TA R Y F U N D PRÉSENTATION Ce projet a été baptisé Fundelicious en allusion au site del.icio.us. Ce dernier est un site interne de gestion de favoris en ligne privé. Avec Fundelicious, les utilisateurs du FMI pourront sauvegarder leurs liens favoris en utilisant automatiquement leur compte Active Directory. De plus, ils peuvent aussi partager leurs favoris avec leurs collègues et ainsi construire leur propre réseau social à travers leurs liens partagés. En effet, avec cet outil, ils peuvent créer des réseaux et établir des liens avec leurs collègues qui ont les mêmes intérêts, compétences, … Le projet se décompose en trois phases : . Définition de l’architecture. . Développement de services web (architecture n-tier). . Gestion de l’authentification et des réseaux inter-utilisateurs. Les technologies suivantes ont été utilisées pour ce projet : .Net(C#), SQL Server, Nhibernate et Ajax. Tout au long de ce projet, nous avons communiqué avec le FMI en utilisant différents outils. Skype était utilisé pour dialoguer avec une ou plusieurs personnes du FMI. Un outil de collaboration en ligne, Central Desktop, nous a permis de partager des documents, organiser les discussions et définir les échéances. D’autre part, un server open-source " OpenSVN " a été mis en place pour maintenir les différentes versions de test et de production. L’installation sur le serveur du FMI s’est effectuée en utilisant le logiciel gratuit TeamViewer. Avec Fundelicious, nous avons découvert la technologie .Net quelque peu différente de Java. Ce projet a permis de réunir des compétences multi-niveaux : communication entre base de données, services web et clients riches web. D’autre part, nous avons appris à définir clairement un planning et à attribuer différents rôles dans une équipe. Pour cela, nous avons utilisé Microsoft Project et actualisé semaine après semaine un diagramme de Gantt complet. Grâce aux réunions et aux présentations, nous sommes maintenant plus à même de gérer les relations avec un client. - 33 - E S IA L IPELIUM CONCEPTION ET INTÉGRATION D’UNE PLATEFORME DE WORKFLOW POUR LE “BUSINESS DEVELOPMENT” Designing and integrating a workflow platform for “business development” ABSTRACT 2007 / 2008 This industrial project was submitted by IPELIUM, one of the French leader firms in the area of security and mobility. The team was in charge of providing the society with software allowing the management of a project from its beginning (Detection of a “lead” by the commercial) till its end (Invoicing). Therefore, this software should allow a complete follow-up of the various phases of an IPELIUM project life cycle. After understanding and modelling the internal functioning of the company, and analysing the needs expressed by the different co-workers, the project, which includes three sections (CRM, project management and reporting) was divided into two main phases: The first stage consisted in studying the existing solutions and choosing the one which best matches the needs. At the end, the software package that we decided to work on was “SugarCRM”. Then we moved to the next phase, which consisted in developing the required functionalities corresponding to the specifications. Furthermore, it was necessary to render the documentation associated to the chosen solution. The communication with our supervisors was mainly made by e-mail or by video conference. We had weekly technical meetings with the industrial supervisor. And we organized “project management” meetings with our academic supervisor. The reports of each meeting as well as all the documentation relative to the project were afterwards deposited on a shared platform “javaforge”. Lastly, this project was an opportunity to acquire several skills in the area of “Customer Relationship Management” (which is used more and more), to use open source software and to discover project management issues like managing time, resources and communication between all the parts. - 34 - Élèves Julien COCHET Anisse LAHRACH Omar SABBAGH Moäd TALHA Partenaire 5, avenue de Verdun 94204 IVRY-SUR-SEINE Encadrants industriel Olivier HUSSON universitaire Marie-Noëlle FLAVENOT E S IA L IPELIUM PRÉSENTATION Ce projet industriel a été proposé par la société IPELIUM située à Paris. Les étudiants ayant travaillé sur ce projet sont Julien COCHET, Anisse LAHRACH, Omar SABBAGH et Moâd TALHA. L'encadrement au niveau universitaire a été assuré par Mme Marie-Noëlle FLAVENOT et au niveau de l'entreprise, par M. Olivier HUSSON. L'objectif de ce projet était de fournir à la société IPELIUM un logiciel permettant la gestion d'un projet de son début (Détection d'une piste par un commercial) jusqu'à sa fin (Facturation). De ce fait, ce logiciel doit permettre un suivi facile et collectif des différentes phases du cycle de vie d'un projet IPELIUM. La première étape a été de modéliser le fonctionnement interne de la société, ce qui nous a permis de recenser les besoins de chaque collaborateur (commercial, chef de projet, comptable, etc.), et ainsi de diviser le projet en trois principales parties qui sont : . La partie CRM commercial . La partie gestion de projet . La partie Reporting Ensuite, le projet s’est scindé en deux phases. La première consistait en l’analyse du problème, l'étude et le choix de la solution, c'està-dire comparer (selon certains critères) différents progiciels qui pouvaient répondre aux besoins exprimés, puis d'en choisir un. Une fois ce choix fait (le progiciel SugarCRM), nous sommes passés à la deuxième phase du projet, qui consistait à développer et/ou modifier des fonctionnalités de ce progiciel. Ce développement se faisait selon un cahier des charges technique établi à l'avance. Enfin, il fallait rédiger une documentation pour la solution choisie. La communication avec les différents intervenants s'est principalement faite par mail ou par vidéo conférence (Skype). Des réunions techniques et des réunions de gestion de projet ont été organisées régulièrement avec nos deux encadrants (industriel et universitaire). Les comptes-rendus de chaque réunion ainsi que toute la documentation relative au projet étaient déposés par la suite sur la plateforme de partage de fichiers “Javaforge”. Ce projet a été pour nous l'occasion d'acquérir de nombreuses connaissances dans les domaines de la gestion des relations clients CRM, qui sont de plus en plus utilisées, mais aussi d'appréhender les possibilités des développements open source. Ce fut également l'opportunité de s'approprier des techniques de gestion de projet en faisant face à la gestion d'un planning, la gestion de ressources, le choix des outils de travail, et à la communication entre les différentes parties. - 35 - E S IA L KITRY CONSULTING AMÉLIORATION DES PROCESSUS GESTION DES CONTRÔLES PÉRIODIQUES Improvement Control Regulation and Equipment Management ABSTRACT 2007 / 2008 Kitry is a Luxemburg IT company which has been developing software for more than 20 years. The goal of our project was to develop a web based application for companies in order to help them control their equipment. Many companies have a lot of devices that need to be checked periodically. Thus, our application records all these devices with all their controls in a centralized database. It allows the user to display the information needed in an easy to use graphical interface. Users can be warned when a control needs to be done by receiving a notification by email. Élèves Amine EL FELLAH Omar MATLAOUI Youssef ZITOUNI There are two main parts in this project: Partenaire The first one is the conception part in which we developed the specifications. As this project is a continuation of work begun last year by another group of ESIAL students, we started by reading the available documentation. Then, we established a new architecture which was validated by making a small program using new technologies (Google Web Toolkit 1.4, JDBC). 10a, rue Henri M. Schnadt L-2530 LUXEMBOURG The second part is related to implementation. We implemented both the server and the client parts, using JDBC for the server and GWT for the client. In order to interact between the client and the server, we chose a GWT library called RPC (Remote Procedure Calls) instead of XML which was used last year. The technologies we have chosen guarantee a homogeneous architecture. Thus, all the main parts of our project are independent and can be deployed alone. Encadrants industriel Jérôme BARBÉ We adopted a weekly iterative development process. During each meeting with our industrial and university supervisors, we could check the accomplished work and schedule new tasks for the next week. This project was an opportunity to learn new technologies such as GWT 1.4, JDBC and develop a project from conception to implementation for an industrial company. - 36 - universitaire Monique GRANDBASTIEN E S IA L KITRY C O N S U LT I N G PRÉSENTATION Entreprise Kitry consulting est une entreprise luxembourgeoise spécialisée dans des domaines tels que Java, Oracle, Lotus Domino et d'autres technologies issues de l'open source. Chronologie Le projet a été décomposé en deux phases principales : . Une première phase de conception : Lors de cette phase nous avons réalisé le cahier des charges à partir de fonctionnalités demandées par l'entreprise. Comme ce projet est la continuation d’un travail amorcé l’année dernière par un groupe d’élèves de l’ESIAL, nous avons d’abord commencé par lire la documentation existante. Ensuite, nous avons établi une nouvelle architecture qui a été validée, après avoir développé un programme utilisant de nouvelles technologies (Google Web Toolkit 1.4, JDBC). Une fois le cahier des charges réalisé, la phase de conception était achevée et le planning prévisionnel pour la phase de réalisation fut mis en place. . Une seconde phase de réalisation : Durant cette phase, il a fallu mettre en oeuvre les technologies choisies, tout en respectant les spécificités fonctionnelles que nous avions écrites lors de la première phase. En plus, une bonne partie était consacrée à la configuration des serveurs d’application APACHE et TOMCAT, afin de garantir le fonctionnement de l’application. Objectifs et résultats Le but de ce projet est de fournir aux entreprises une application web leur permettant de gérer la mise en conformité de leurs équipements. En effet, il y a de nombreux appareils qui nécessitent d'être régulièrement vérifiés, ne serait-ce que pour des normes de sécurité. Ainsi, ce projet a pour objectifs de gérer tous les contrôles périodiques, les rapports, etc. concernant les appareils de l'entreprise. C'est pourquoi toutes les informations doivent être accessibles rapidement, avec une notification automatique des contrôles les plus urgents à effectuer. Une deuxième partie de l’application doit permettre aux entreprises de définir un plan d’actions à réaliser dans le cadre d’un projet, ce qui facilitera grandement sa gestion. Démarche suivie Dans un premier temps, nous avons rencontré notre encadrant industriel afin de définir un planning de travail. Nous avons pu ainsi appréhender les objectifs et les ressources dont nous disposerions. Ensuite, nous avons adopté un développement itératif à cycle hebdomadaire. Ainsi, nous avions une réunion par semaine avec nos encadrants universitaire et industriel. Au cours de ces réunions, nous faisions le point sur le travail effectué la semaine passée et nous planifions la semaine à venir. Le tout en nous replaçant dans le planning global afin de vérifier semaine après semaine l'avancement des flux métiers. Nos acquis Ce projet a été l’occasion de découvrir le domaine de la gestion de projet et de rédiger des documents de spécification complets. Nous avons aussi acquis de nombreuses connaissances dans les domaines des technologies web (Google Web Toolkit, TOMCAT, JDBC). - 37 - E S IA L NIST Projet 1 ÉTUDE DE FAISABILITÉ POUR L’IMPLÉMENTATION DE Qt ® AFIN D’AMÉLIORER LA PORTABILITÉ DE DIVERSE Feasability Study of Implementing Qt ® to improve DIVERSE’s portability ABSTRACT 2007 / 2008 Our industrial project was submitted by the NIST (National Institute of Standards and Technology) and more precisely by the SAV (Scientific Applications and Visualization) Group. The project is supervised by Dr. Judith Terrill and Mr. John Kelso (industrial supervisors) and by Mr. Marc Tomczak (Academic Supervisor). The aim of this project is to improve the portability of DIVERSE, a software used by the NIST team to do VR (Virtual Reality) applications. DIVERSE is made up of several software packages namely DGL, DTK, CoVE and PRODUCER - each of which is used for specific tasks. DIVERSE was initially developed with the aim to be platform independent. All the above-mentioned modules are multi-platform except PRODUCER, which is actually used for Camera control i.e. it provides a projection, a field of view, a viewport and frame control for 3D applications in the VR systems. It is also used for window creation and keyboard-mouse control and this is actually where the main problem arises. These two functionalities are only implemented on X11 (UNIX, MacOS) therefore making DIVERSE not totally platform independent. The solution proposed by the NIST team is to use an “industry-standard” software called QT®, to replace PRODUCER. The project was divided into two main phases: . Preliminary phase: In this phase we gathered all the information needed to start working on this project. This allowed us to better understand our client’s needs and to write the specifications. . Analysis phase: Our work here was in a first place, to analyze the different functionalities of PRODUCER and how it is used by DIVERSE. Secondly we had to study Qt® to see whether it offers the same functions as PRODUCER. Finally, once we spotted the differents classes and functions using PRODUCER, we tested small examples in Qt® to see whether it is a viable solution. This project was an opportunity to acquire several skills in OOP (Object-Oriented Programming) especially in C++, in Open Source software and to discover project management techniques like project planning, writing functional and technical specifications, issue tracking, resources/time management and communication between the stakeholders. - 38 - Élèves Fairouz AZZA Paul KHOURY SABA Anas MAROUF Amreesh Dev PHOKEER Partenaire 100 bureau drive Gaithersburg MD 20899 USA Encadrants industriels John KELSO Judith TERRILL universitaire Marc TOMCZAK E S IA L NIST Projet 1 PRÉSENTATION Contexte : Ce projet industriel a été proposé par le NIST (National Institute of Standards and Technology) situé à Gaithersburg, USA. Les étudiants ayant participé à ce projet sont Fairouz Azza, Amreesh Dev Phokeer, Anas Marouf et Paul Khoury Saba. L’encadrement au niveau universitaire a été réalisé par M. Marc Tomczak et au niveau industriel, par Dr. Judith Terrill et M. John Kelso, respectivement chef et membre du groupe SAV (Scientific Applications and Visualization Group). Description du projet : Le but de ce projet est d'améliorer la portabilité de DIVERSE, un logiciel utilisé par le NIST pour développer des applications dans le domaine de la réalité virtuelle. DIVERSE est composé de plusieurs modules logiciels notamment DGL, DTK, CoVE, DADS et PRODUCER. Chacun de ces module est utilisé pour des tâches spécifiques comme par exemple : DGL pour générer des objets 3D et DTK pour contrôler l’échange d’informations entre l’application et les périphériques d’entrée. PRODUCER est quant à lui utilisé pour fournir une projection, un champ de vision et une zone de visualisation pour les objets graphiques. Il est par ailleurs utilisé pour la création de fenêtres et le contrôle de la souris et du clavier. Or, le problème rencontré est que, DIVERSE était à la base programmé pour être utilisé sur plusieurs plateformes (Windows, Unix, MacOS) et les modules qui le composent sont tous “platform independent” sauf PRODUCER. Le problème principal concerne quelques fonctionnalités (fenêtrage et contrôle souris/clavier) de PRODUCER qui ont été implémentées sur X11 (Linux/Unix, Mac) seulement. D’où l’objectif du projet, qui est de transformer DIVERSE en une application portable. Solution exploitée : La solution que le NIST nous a proposée pour remédier à ce problème est l’utilisation de QT®, une application “multi-plateforme” qui fournit entre autres, les mêmes fonctionnalités que PRODUCER, c’est-à-dire contrôle de souris/clavier et gestion des fenêtres. Notre travail consistait à étudier dans quelle mesure on pouvait effectivement remplacer les appels de fonctions de PRODUCER par ceux de QT®. C'est en l'occurrence l'étude de faisabilité qu'on a entreprise. Démarche suivie : Pour mener à bien ce projet nous avons suivi deux phases : - Phase de documentation : cette phase nous a servi de base pour la suite de notre travail, car elle nous a permis de fixer les objectifs et de bien comprendre les besoins de notre client. Elle nous a aussi aidés à nous familiariser avec l'environnement de travail i.e. DIVERSE. Les tâches effectuées dans cette phase sont : . étude du fonctionnement de DIVERSE et ses différents modules, . étude des fonctionnalités de PRODUCER (fenêtrage et contrôles des entrées clavier/souris), . étude des fonctionnalités de QT® pour contrôler les entrées clavier/souris et pour la gestion des fenêtres. - Phase de recherche : durant cette phase nous avons analysé de façon “très ciblée” le code existant pour modéliser le système afin de comprendre comment DGL utilise PRODUCER. Les tâches effectuées dans cette phase sont : . analyses et tests sur des exemples utilisant PRODUCER, . étude des appels de fonctions sur l'API de PRODUCER par DGL, . comparaison des fonctionnalités fournies par QT® et celles demandées par DIVERSE, . ciblage des fichiers, des fonctions ou des classes à modifier dans le cadre de l'implémentation de QT®. Gestion de Projet : La communication avec les différents intervenants s’est principalement faite par mail. Des vidéos conférences ont également été organisées avec les encadrants industriels au NIST tous les mois à l’aide de l’outil de communication “Skype®” et une réunion par semaine avec notre encadrant universitaire M. Marc TOMCZAK. À la suite de chaque réunion, des comptes-rendus ont été rédigés par chaque membre de l’équipe et ils étaient ensuite classés dans un dossier spécialement prévu pour le projet. D’autres documents comme le rapport, le planning et des feuilles d’investigation ont été également archivés dans ce dossier. Les feuilles d’investigation servent à laisser une trace des tests et des recherches faits par l’équipe au fur et à mesure qu’on avançait dans le projet. Acquis : Ce projet a été pour nous l’occasion d’acquérir de nombreuses connaissances dans le domaine du langage objet notamment en C++ avec lequel ce projet a été développé, mais aussi d’appréhender les possibilités des développements “open source”. Ce fut également l’opportunité de s’approprier des techniques de gestion de projet c’est-à-dire l’élaboration d’un planning, la gestion de ressources et à la communication entre les différentes parties. - 39 - E S IA L NIST Projet 2 FUSION DE CAPTEURS OPTIMISÉE Effective Sensor Data Fusion ABSTRACT 2007 / 2008 This industrial project was submitted by National Institute of Standards and Technology (NIST) based in Gaithersburg in the United States of America. The students who worked on this project are Julien Amelot, Laurent Barthelemy, Julien Le Guen and Annie Sananikone. The academic supervisor of the project is Suzanne Collin and the industrial one is Ya-Shian Li. This project consists in designing and building a multi-sensor embedded system able to gather sensor data and make a decision very quickly. Indeed, this should be a high frequency process (100 up to 1000 Hz). Élèves Julien AMELOT Laurent BARTHELÉMY Julien LE GUEN Annie SANANIKONE Partenaire The project could be divided into three parts : . Design and build an embedded system integrating numerous sensors capable of providing high frequency data and near real-time feedback to an outside observer . Research time-stamping accuracy and data-fusion methods and algorithms . Apply research to embedded system built to show real-time control using time synchronization methods 100 bureau drive Gaithersburg MD 20899 USA It is a complete project with a research part, a design part and an application part, each of these parts goes with a documentation phase. Encadrants It is an interesting challenge to manage a whole project with some unusual constraints in the fact that our managers are overseas for example. Thanks to this long distance communication, we have learned to expose our point of view on the project precisely and clearly in a foreign language. Besides, this embedded system project has confronted us to several constraints, such as real-time control, fast and light algorithms for instance, that fit quite well our specialization of embedded software. But it also has confronted us with some choices to make, for instance the selection of the embedded card and the sensors, and to study the feasibility of the project. Finally, this project is a great challenge because it contains both research and industrial aspects. - 40 - industriels Julien BABOUD Kevin BRADY Ya-Shian LI John MESSINA universitaire Suzanne COLLIN E S IA L NIST Projet 2 PRÉSENTATION Ce projet industriel a été proposé par le National Institute of Standards and Technology (NIST) situé à Gaithersburg, près de Washigton DC (USA). Les étudiants ayant travaillé sur ce projet sont Julien AMELOT, Laurent BARTHELEMY, Julien LE GUEN, et Annie SANANIKONE, tous en spécialisation Logiciels Embarqués (LE). L'encadrant industriel est Ya-Shian LI, membre de l'équipe Infrastructure for Integrated Electronic Design and Manufacturing (IIEDM) du NIST. L'encadrement universitaire a été réalisé par Suzanne COLLIN. Le but de ce projet est de concevoir un système embarqué capable de traiter très rapidement une grande quantité d'informations provenant de plusieurs capteurs de type différent. Ce traitement doit être effectué à haute fréquence (de 100 à 1000 Hz) et doit déboucher sur une prise de décision. Nous avons donc décidé en collaboration avec nos encadrants industriels de concevoir un robot mobile autonome capable de suivre une source lumineuse tout en évitant les obstacles sur sa route. Le système conçu peut être divisé en six phases : . Acquisition des données des capteurs échantillonnés à au moins 100Hz. . Collecte et datation des données : dès réception de la donnée, le FPGA la date avant tout autre traitement. . Échange des données : le FPGA envoie à l’ARM les paquets de données time-stampées via un bus. . Fusion de données et prise de décision : le processeur traite les données reçues, en tire les plus pertinentes à l’aide de l’algorithme de fusion de données et prend une décision (commande le robot). . Réseau : nous pouvons imaginer que le robot n’est qu’un module et qu’à l’avenir celui-ci pourrait communiquer et échanger des données via un réseau avec d’autres entités, ou qu’un bras robotisé pourrait lui être ajouté par exemple. . Synchronisation RTC : afin de synchroniser toutes les entités du système global (le robot, le bras, etc.), celles-ci doivent réajuster leur horloge interne. Pour cela, nous utilisons le Network Time Protocol (NTP) répondant à nos fortes contraintes de temps. Le projet s'est déroulé en trois parties : . Des recherches préliminaires afin d’affiner les objectifs du projet, de choisir le matériel (système embarqué, capteurs) et l’étude de la faisabilité du projet, tout cela ayant permis la rédaction du cahier des charges. . La conception du système embarqué, datation des données reçues des capteurs. . L’implémentation, l’intégration, les tests et les benchmarking. Chacune de ces trois parties est liée à une phase de documentation. Le délivrable final inclura le système embarqué ainsi qu’un guide utilisateur permettant à l’équipe du NIST de reproduire et utiliser le système. Il s’agit d’un projet très complet incluant une phase de recherches, une de conception et une phase d’application. De plus, gérer un projet entier comportant des contraintes inhabituelles dans le fait que nos encadrants soient géographiquement distants par exemple est un challenge très intéressant. Grâce à cette communication longue distance, nous avons appris à exposer clairement et précisément notre point de vue sur le projet dans une langue étrangère. De plus, ce projet de système embarqué nous a confrontés à plusieurs contraintes telles que l’élaboration d’un control temps réel, d’algorithmes légers et rapides par exemple, ce qui correspond assez bien à notre spécialisation Logiciels Embarqués. Mais nous avons également étudié la faisabilité du projet dans nos recherches du matériel, telles que la sélection de la carte embarquée et des capteurs, répondant au mieux aux contraintes du projet. Ce projet nous a non seulement permis de gérer les ressources mises à notre disposition, les délais et les contraintes induits par un tel projet mais aussi de gérer les ressources humaines que nous possédions : les quatre étudiants de l’ESIAL, l’équipe du NIST nous supervisant, notre encadrante universitaire mais aussi toute l’aide que nous avons pu avoir parmi les professeurs de notre école. Pour conclure, ce projet est un challenge intéressant mêlant recherche et industrie et offrant beaucoup de possibilités d’évolution dans le futur. - 41 - E S IA L NIST Projet 3 DÉVELOPPEMENT D’UNE LIBRAIRIE MULTI-PLATEFORMES DESTINÉE À LA COLLECTE D’INFORMATIONS SYSTÈMES Development of a multi-platform library to gather system information ABSTRACT 2007 / 2008 This industrial project has been submitted by the National Institute of Standards and Technology (NIST), which is located in Gaithersburg, MD in the United States. The NIST is developing a system called "Data Flow System II" which enables data exchange between different servers and clients. One of its applications is to determine which computer on the network is the most suitable for running a certain task at a given time (i.e. the one which has the most compute power available). The goal of this project was to develop a library providing with information about a computer at a certain time. The results are then used by "Data Flow System II" in order to distribute the tasks on the NIST's network. Our work has been divided into two main phases: first, writing the specifications of the library and second, implementing them. The functionalities the library had to offer, as well as the technical choices, were agreed on with our supervisors. One of the main difficulties of the project was to develop the library simultaneously on Linux (Fedora distribution) and Windows XP. Since we were mostly interested in low-level information, the implementation differs a lot from one OS to another. Due to obvious geographical reasons, the communication with our supervisors was solely done via Internet. Thanks to the publication of all conception-related documents (UML diagram, reports on a particular technology, ...) or management-related (status of each task, weekly reports, ...) on a Trac-like website and of all code via Subversion, they were able to track our progress anytime they wanted to. A mailing-list, instant messaging and audio conferences were used for questions, suggestions and feedback. We have discovered the C++ language, which is widely used in the industry, but is not taught at ESIAL. We have also used management tools like Trac for the very first time, which was interesting and at the same time very useful. - 42 - Élèves Nicolas CROUZIER Pierre-Henry HOUCHARD Sébastien JAHAN Régis WACK Partenaire 100 bureau drive Gaithersburg MD 20899 USA Encadrants industriels Stéphane DEGRÉ Antoine FILLINGER Imad HAMCHI Vincent STANFORD universitaire Olivier FESTOR E S IA L NIST Projet 3 PRÉSENTATION Ce projet industriel a été proposé par le National Institute of Standards and Technology (NIST), situé à Gaithersburg dans le Maryland aux États-Unis. Les étudiants de l'ESIAL ayant travaillé sur ce projet sont Nicolas CROUZIER, Pierre-Henry HOUCHARD, Sébastien JAHAN et Régis WACK. L'encadrement au niveau universitaire a été effectué par Olivier FESTOR et au niveau du NIST par Antoine FILLINGER, Stéphane DEGRÉ et Imad HAMCHI. Le NIST développe un système appelé “Data Flow System II” qui permet l'échange de données entre divers serveurs et clients. Une des applications possibles de “Data Flow System II” est de déterminer quelle machine sur le réseau est la plus à même d'effectuer des calculs à un moment donné, celle qui dispose du plus de puissance de calcul disponible. L'objectif du projet industriel était de développer une bibliothèque donnant des informations sur une machine à un instant donné. Ces informations sont ensuite exploitées par “Data Flow System II” pour répartir les calculs sur le réseau du NIST. La bibliothèque devait être multi-plateformes et offrir un accès aux données suivantes : . Fréquence, famille, architecture de chaque processeur de la machine. . Modèle de la carte graphique et extensions OpenGL offertes. . Liste des connexions réseau avec leur bande passante théorique. . Liste des processus actifs, l'utilisation du CPU et des différentes connexions réseau pour chacun d'entre eux. . Quantité de mémoire vive totale et quantité de mémoire vive disponible. . Nom et version de l'OS installé. . Taille et espace libre de chaque partition. . Permissions et accès pour un fichier donné. . Un score selon plusieurs algorithmes de benchmark donnant des informations sur la rapidité du réseau, du disque dur et du processeur. Notre travail a donc tout d'abord consisté à établir la spécification de la bibliothèque. En accord avec les encadrants industriels, nous avons fixé une liste de fonctionnalités que la bibliothèque devrait offrir. Par la suite, nous nous sommes documentés sur les différentes possibilités nous permettant d'accéder aux dites informations et nous avons soumis nos propositions technologiques à nos encadrants. Une fois leur accord obtenu, nous avons débuté la phase d'implémentation de la bibliothèque en C++ à la demande de nos encadrants. Enfin, nous avons eu à fournir des outils permettant d'installer la bibliothèque en résolvant les problèmes liés aux dépendances éventuelles de manière automatique. Une des difficultés du projet consistait à développer simultanément pour Linux (distribution Fedora) et Windows XP. D'autant que les informations que nous voulions obtenir étaient très proches du bas niveau et que par conséquent le moyen d'y accéder était, sauf exception, très différent selon le système d'exploitation sur lequel la bibliothèque était utilisée. Pour des raisons géographiques évidentes, la communication avec nos encadrants s'est faite uniquement par Internet. La publication de tous les documents liés à la conception (diagramme UML, rapports sur une technologie particulière) ou gestion du projet (état d'avancement, comptes rendus de réunion, ...) sur un site Internet de type Trac et du code via Subversion leur permettait de voir nos progrès à tout moment. Une mailing list nous permettait de communiquer de manière formelle avec eux pour des questions éventuelles. Enfin, nous avons utilisé un logiciel de messagerie instantanée pour discuter de manière plus informelle et plus directe et permettant d'effectuer des audioconférences. Ce projet industriel a été l'occasion pour nous de découvrir le C++, un langage qui n'est pas enseigné à l'ESIAL bien qu’étant très répandu dans les entreprises. Nous avons également utilisé pour la première fois des outils de gestion de documents comme Trac, ce qui s'est avéré être très intéressant. Enfin, en terme de gestion de projet, il nous a fallu nous pencher sur la gestion de notre temps sur 6 mois pour la première fois et nous assurer que le travail que l'on produisait était en adéquation avec les demandes du client. - 43 - E S IA L NXP SEMICONDUCTORS ÉTUDE DE FAISABILITÉ D’UN MTM SUR LA PLATE-FORME MOBILE 3G DE NXP SEMICONDUCTORS Is it possible to implement a MTM on 3G mobile phone ? ABSTRACT 2007 / 2008 This industrial project was submitted by NXP Semiconductors, based in Le Mans. The three students who worked on this project are Norbert Bonnaud, Phouthasone Bouapha and Michael Heuer. Our university supervisor is Radu State and our industrial supervisor is Hervé Sibert. The Mobile Trusted Module (MTM) is a chip based on the Trusted Platform Module (TPM). The TPM asssures essential security features for computing devices : confidentiality, integrity and authentication of data. Similar to the TPM, the MTM assures security for small mobile and embedded devices. This chip has not been implemented yet. Mobile providers are still doing research to design it. The aim of our project is to study the faisability of a MTM on a 3rd generation mobile platform. The project was divided into two main phases : - two studies : the TPM and the MTM. - our contribution : a document and an application. First, we studied the TPM’s architecture and functionality, then, we studied the MTM’s architecture and specifications. During the second phase, we wrote a technical document concerning the MTM’s architecture and we implemented an application which simulates the behaviour of the MTM (the storage of data). We also got two trainnings about security and cryptography. To use the knowledge we learnt on these realms, we realized a small project : a filter/generator of password. This application allows us to encrypt data stored in files : it works like the MTM. To make it, we used the langage C++ and the OpenSSL library, which allowed us to make the cryptography’s part. Thanks to this project, we acquired more knowledge and skills in the area of security and embedded systems, which are directly connected to our fields of specialization. We also run professionel meetings, we learnt and practiced professional project management during this project. - 44 - Élèves Norbert BONNAUD Phouthasone BOUAPHA Michaël HEUER Partenaire 9, rue Maurice Trintignant 72094 LE MANS CEDEX 9 Encadrants industriel Hervé SIBERT universitaire Radu STATÉ E S IA L NXP SEMICONDUCTORS PRÉSENTATION Ce projet industriel a été proposé par NXP Semiconductors situé au Mans. Les étudiants ayant travaillé sur ce projet sont Norbert Bonnaud, Phouthasone Bouapha et Michaël Heuer. L'encadrement au niveau de l'entreprise a été réalisé par Hervé Sibert et au niveau universitaire, par Radu Staté. Notre projet consite en la réalisation d'une étude de faisabilité de l'implémentation d'un MTM (Mobile Trusted Module) sur la plateforme mobile 3ème génération de NXP. Le MTM est une puce permettant de sécuriser les données disponibles dans un téléphone mobile au cours de son utilisation. Le projet a été divisé en deux grandes parties : - une phase d’étude, - une phase de production. Nous avons d’abord étudié (d’octobre à décembre) l’architecture et les fonctionalités du TPM (Trusted Platform Module), qui est une puce permettant de sécuriser un ordinateur, elle assure la confidentialité, l’intégrité et l’authentification des données. Cette étude préliminaire nous a permis de mieux appréhender le cœur de notre sujet : le MTM. Nous avons donc ensuite étudié l'architecture ainsi que les spécifications du MTM de janvier à mi février. La seconde phase de notre projet regroupe nos contributions au projet, à savoir la rédaction d’un document technique (pour l’entreprise) concernant l’architecture et l’utilisation du MTM, et également la réalisation d’une application simulant le comportement du MTM. À la demande des étudiants et afin de concrétiser au mieux ce projet et d'utiliser leurs connaissances en cryptographie acquises durant les formations données par Hervé Sibert, l’entreprise NXP Semiconductors a proposé le développement d’une application permettant de simuler un coffre-fort de mots de passe. Cette application permet de simuler le fonctionnement d’un MTM (en implémentant un coffre-fort de mots de passe). Ce coffre-fort est programmé dans le langage C++ (la bibliothèque cryptographique utilisée est OpenSSL) et présente une interface graphique conviviale. Ce programme permet de crypter un fichier afin de le rendre illisible pour toute personne ne possédant pas le bon mot de passe, mot de passe lui-même crypté par une fonction de hashage. La communication avec l'encadrant industriel a été faite par l'intermédiaire d'entretiens téléphoniques hebdomadaires en raison de la distance entre Le Mans et Nancy, et également par mail. Nous avons pu le rencontrer à deux reprises au Mans le 6 novembre 2007 et le 10 mars 2008 pour passer deux formations (sécurité et cryptographie) et pour lui présenter notre travail de fin de projet devant une équipe composée de 15 experts en sécurité. Quant à la communication avec l'encadrant universitaire, elle s'est faite régulièrement par réunion au LORIA (Laboratoire Lorrain de Recherche en Informatique et ses Applications) et par mail. Ce projet a été pour nous l'occasion de nous familiariser avec les grandes notions de la sécurité de l'information (cryptographie et sécurité matérielle), dans un cadre à la frontière entre logiciel et matériel, nous permettant d'appréhender de manière transverse l'architecture des systèmes embarqués. De plus, l'encadrement par des experts en sécurité nous a fourni toutes les données nécessaires à la réussite du projet. Nos encadrants nous ont également accompagnés dans la définition des objectifs et le suivi du projet. Ce fut également l'opportunité de mettre en pratique nos connaissances en gestion de projet, en respectant des contraintes professionnelles comme le planning, l'archivage de tous les documents consultés au cours du projet, l’élaboration d’un plan de back-up en cas de pertes de nos données, et l'animation de réunions. - 45 - E S IA L ORANGE BUSINESS SERVICES MISE À DISPOSITION D’UNE BIBLIOTHÈQUE GRAPHIQUE FONCTIONNANT SOUS LE SYSTÈME D’EXPLOITATION eCos Graphical user interface for eCos ABSTRACT 2007 / 2008 This industrial project was submitted by Orange-Silicomp, based in Grenoble, France. The three students who worked on this project are Antoine Amirault, Rémi Lavedrine and Rémi Raffin. Our industrial supervisors were Emmanuel Dufour and Jean-Marc Saffroy and our university supervisor was Mr Alexandre Parodi. eCos (embedded Configurable operating system) is an open source, royalty-free, real-time operating system intended for embedded systems and applications. It can run one process with multiple threads. eCos was designed for devices with memory size in the tens to hundreds of kilobytes[1], or with real-time requirements. However eCos does not have a graphical user interface (GUI). Therefore, eCos alone cannot display graphics or images on a screen: this requires an additional graphics library. Élèves Antoine AMIRAULT Rémi LAVEDRINE Rémi RAFFIN Partenaire 18, rue de la République 54123 VITERNE The aim of the project was to demonstrate a graphical user interface for eCos. We had two possibilities: . Develop a graphics library from scratch. . Use an existing royalty free graphics library. Encadrants We explored the existing open source GUIs that could supposedly work on eCos and decided to choose one of those to achieve our goal. industriels Emmanuel DUFOUR Jean-Marc SAFFROY Sylvain KOSTREWA This project was an opportunity to acquire several skills in the area of real-time operating system (which are more and more demanded), to use open source software and to discover project management issues like managing time, resources and communication between people. universitaire Alexandre PARODI - 46 - E S IA L ORANGE BUSINESS SERVICES PRÉSENTATION Ce projet industriel a été proposé par le centre Silicomp, travaillant pour Orange Business Services, situé à Grenoble. Les étudiants ayant travaillé sur ce projet sont Antoine Amirault, Rémi Lavedrine et Rémi Raffin. L’encadrement au niveau universitaire a été réalisé par M. Alexandre Parodi et au niveau de l’entreprise par M. Emmanuel Dufour et par M. Jean-Marc Saffroy. eCos est un système d’exploitation conçu pour les systèmes embarqués. Il permet de développer des programmes dans lesquels le temps de réponse et la réactivité sont des contraintes fortes (dit temps réel dur). eCos a initialement été développé par la société Cygnus, rachetée ensuite par Red Hat, et est désormais un logiciel libre développé de manière communautaire. Un inconvénient essentiel d’eCos est que celui-ci n’a pas de librairie graphique. Il n’est ainsi pas possible d’afficher des graphiques ou des images sur un écran. Notre travail dans le cadre du projet industriel était donc de démontrer des capacités graphiques sous le système d’exploitation eCos, comme par exemple afficher une courbe, etc. Pour réaliser ceci, nous avions deux possibilités. La première était de développer ex-nihilo une bibliothèque graphique pour eCos dans le temps du projet. Et la deuxième était d'utiliser une librairie graphique existante. Nous avons donc fait ce projet en deux étapes : . Nous avons estimé que la charge de travail que pouvait représenter le développement ex-nihilo d’une bibliothèque graphique complète semblait très lourde. . Nous avons fait une recherche sur les bibliothèques graphiques open-source existantes qui étaient susceptibles de nous convenir et nous en avons fait une étude comparative afin de déterminer quelle serait la meilleure dans notre cas, au vu des caractéristiques annoncées publiquement. Suite à cette étude, nous avons décidé d'utiliser une bibliothèque existante en apparence plus performante, plutôt que de fournir un effort important pour parvenir à un résultat a priori moindre. L’étude comparative a principalement porté sur les aspects mémoire, rapidité demandée par le système d’exploitation et sur les aspects de coûts et de licence nécessaires à l’utilisation des librairies graphiques. Par la suite, nous avons installé le système d’exploitation eCos selon les spécifications demandées par le client et nous nous sommes chargés de porter la librairie graphique choisie sur le système d’exploitation eCos. La communication avec les différents intervenants s’est principalement faite par mail. Nous faisions un point hebdomadaire par mail tous les vendredis et nous faisions une réunion téléphonique avec les encadrants industriels tous les 15 jours. Ce projet nous a permis de tester dans le cadre d’un projet professionnel, nos compétences acquises à l'école. Il nous a permis de découvrir les sources d'un système d’exploitation temps réel. De plus, nous avons pu travailler avec une entreprise très importante dans le secteur des télécommunications, ce qui a été très enrichissant car nous avons pu découvrir leur méthode de travail industrielle. En outre, ce projet nous a permis d’appréhender les problèmes inhérents au développement open source et principalement le manque de support et de documentation pour certains logiciels mais également l’importance d’une unification au niveau linguistique car une partie importante de la documentation qui nous aurait été très utile était uniquement rédigée en chinois. Enfin, ce projet fut également l’occasion de nous approprier des techniques de gestion de projet, de gestion du temps et des hommes en utilisant des plannings et d’autres nombreux outils mais aussi de gérer la communication entre des équipes distantes. - 47 - E S IA L PSA P E U G E O T- C I T R O Ë N PROJET RefOutil Reftool Project ABSTRACT 2007 / 2008 The RefTool project has been proposed by Mr. Emmanuel MONZIES, working in the eBusiness department of PSA Peugeot Citroën, a leading European car manufacturer. This project has been developed by Julien CANTAMAGLIA, Christophe MASSON and Philippe VIENNET, students in their last year of ESIAL's curriculum and under the supervision of Mr. Jean-François PETIN, our university supervisor. RefTool is intended to provide PSA's marketing department with indicators pertaining to the visibility of the group's brands on the web. In other words, RefTool will help determining how well the different cars and assets of PSA are referenced in major web search engines such as Google, Yahoo or MSN. This information will help PSA making decisions regarding whether it is useful to pay for a better referencing for a specific model, in a specific search engine and for a given country. Thus helping control costs and improving their presence on the web. The project is articulated around three axises: . a data gathering module whose role is to send requests related to PSA to search engines and to store the corresponding results in a database, . an administration module that allows to control the behavior of the application: the countries to take into accounts, the car models to look for and so on, . and an analysis and presentation module that will display human readable data in the form of matrices, diagrams, etc. This module is the main interface of the application and is meant to display the aforementioned informations. This project helped us consolidate and develop a plethora of skills: defining specifications, writing technical studies, communicating with the different protagonists and allowed us to put industry recognized technologies to good use: Java 6, Hibernate, AJAX, PHP, MySQL, Apache... - 48 - Élèves Julien CANTAMAGLIA Christophe MASSON Philippe VIENNET Partenaire 2 à 10, boulevard de l’Europe Poissy 78092 YVELINES Cedex 9 Encadrants industriel Emmanuel MONZIES universitaire Jean-François PETIN E S IA L PSA P E U G E O T- C I T R O Ë N PRÉSENTATION Le projet RefOutil a été proposé par le groupe PSA Peugeot Citroën, un des premiers fabricants européens de voitures. Le but de ce projet est de fournir des indicateurs stratégiques quant à l'évolution de la visibilité des marques du groupe dans les principaux moteurs de recherche web sur internet. Fort d'une audience et d'une pénétration dans les foyers de plus en plus fortes, le web est désormais devenu un incontournable des stratégies marketing des grandes entreprises. La maîtrise de la visibilité des marques et produits d'une entreprise sur ce nouveau média constitue désormais un enjeu de taille. Un des principaux angles d'attaque de cette problématique consiste à jouer sur le référencement des mots clés associés à une entreprise dans les principaux moteur de recherche (Google, Yahoo, MSN, ...) afin qu'ils mènent aux sites vitrines de cette même entreprise et non pas sur un site tiers. C'est pourquoi M. Emmanuel MONZIES, du département e-Business de PSA, a fait appel à l'ESIAL afin de concevoir un outil permettant d'évaluer le référencement des différents modèles de voitures commercialisés par PSA. Cette évaluation doit pouvoir opérer à l'international, dans tous les marchés où sont vendues des voitures du groupe PSA. Ont répondu à cet appel Julien CANTAMAGLIA, Christophe MASSON et Philippe VIENNET, étudiants en dernière année sous la supervision de leur encadrant universitaire M. Jean-François PETIN, enseignant à l'ESIAL. À terme, le projet RefOutil devra permettre de suivre l'évolution dans le temps, par pays et par moteur de recherche, des différents modèles commercialisés par le groupe. Ces informations serviront au département marketing afin d'évaluer et, si nécessaire, d'améliorer la présence des différents sites web de PSA dans les principaux moteurs de recherche. Cette amélioration peut notamment se faire par le recours au référencement payant, un paramètre qui a été pris en compte dans la conception de RefOutil. Techniquement, le projet est scindé en deux parties distinctes. D'une part, un module de collecte de données en Java 6 dont le rôle est de soumettre des requêtes spécifiques à différents moteurs de recherche afin d'extraire des informations de référencement des pages de résultats obtenues en retour. Ces informations sont ensuite mises à la disposition des autres modules dans une base de données grâce à la technologie Hibernate. D'autre part, le projet repose sur une interface AJAX dispensée par un serveur Apache / MySQL / PHP au service de deux fonctionnalités : . un module “Administration” à accès restreint qui permet de modifier les paramètres de l'application (en ajoutant, modifiant ou en effaçant un modèle de voiture, un pays concerné par l'analyse, ...) ; . et un module “Analyse et visualisation” qui fournit différentes méthodes de présentation des données collectées (diagramme, matrice, etc.) et qui constitue l'interface utilisateur principale du projet. Tant sur un plan organisationnel (rédaction d'un cahier des charges, communication avec PSA), conceptuel (mise en place d'un modèle de données, rédaction d'études techniques) que technique (programmation orientée objet, application web dynamique), ce projet fut l'occasion de mettre en œuvre les savoir acquis au cours de nos trois années passées à l'ESIAL et de les confronter aux exigences du monde professionnel. - 49 - E S IA L REUTERS PROJECT TRACKER : AMÉLIORATION D’UN SYSTÈME DE VIRTUALISATION ET DE SUIVI DES FACTURABLES PROJET Project Tracker : Improvement of a System for Virtualizing and Tracking Projects ABSTRACT 2007 / 2008 This industrial project was proposed by the global information company Reuters based in Luxembourg. The three students who worked on this project are Alain Giadin, François Leroy and Matthieu Trivier. Our industrial supervisor is Marc Weiler and our university supervisor is Rémi Badonnel. Project Tracker is a web-based application which was created last year during an industrial project submitted by Reuters. This system is capable of virtualizing and tracking the profit and loss of Reuters' projects all along their lifecycles: costs (man hours, expenses) and revenues (billable efforts, fixed price efforts), including the various steps from the creation, to the allocation, to the closure and invoicing. Our project consisted in improving and extending this application based on Reuter’s requirements. These improvements can be structured into five main parts: - Improvement of the speed of the application - Improvement of the ergonomics - Design of an audit trail module - Design of a reporting tool - Improvement of the PDA application. This project was a good opportunity to see the organization of a big company such as Reuters. We had a good view of the requirements of the different people we were working with, engineers and managers. It was also a great opportunity to discover project management issues like managing time, resources and communication between people. Élèves Alain GIADIN François LEROY Matthieu TRIVIER Partenaire 40, avenue Monterey L-2363 LUXEMBOURG Encadrants industriel Marc WEILER universitaire Rémi BADONNEL - 50 - E S IA L REUTEURS PRÉSENTATION Ce projet industriel a été proposé par l’agence d’information Reuters dont l’un des sites informatiques est situé à Luxembourg. Les étudiants ayant travaillé sur ce projet sont Alain Giadin, François Leroy et Matthieu Trivier. L’encadrement au niveau de l’entreprise a été réalisé par Marc Weiler et au niveau universitaire a été réalisé par Rémi Badonnel. Les travaux de notre projet se placent dans le contexte de l’outil Project Tracker. Cette application a été réalisée l’an dernier lors d’un précédent projet industriel. Elle permet aux managers via une interface web de suivre l’évolution des différents projets menés par l’entreprise. Ce suivi porte sur l’ensemble des coûts et profits générés par les différents projets, et permet de déterminer leur état d’avancement, de la création des projets jusqu'à leur aboutissement. En plus de l’interface web, une application pour PDA a également été développée. Cette application permet aux ingénieurs de créer des fiches de projet pouvant être signées par le client directement sur le PDA. Cela permet de réduire l’utilisation de documents papier, l’information étant directement traitée de manière électronique. Après plusieurs mois d’utilisation chez Reuters, le retour d’expérience a permis d’identifier certaines limites de l’application. Nos travaux réalisés lors de ce projet ont consisté en l’amélioration de cette application afin de pallier au maximum les défauts présents et en son extension afin de fournir des fonctionnalités additionnelles. Ils peuvent être organisés en cinq parties principales qui sont respectivement : - Amélioration de la vitesse (incluant notamment l’optimisation de requêtes SQL). Amélioration de l’ergonomie (modification de la configuration de l’interface). Création d’un “audit trail” (module permettant une historisation des différentes opérations). Création d’un outil de “reporting” (module décisionnel pour venir en support aux managers). Amélioration de l’application du PDA (intégration avec l’outil Project Tracker). Nous avons organisé notre projet en respectant le planning suivant : - Phase de rédaction du cahier des charges à partir des différentes demandes de l’entreprise (émanant des principaux utilisateurs de l’application : les managers et les ingénieurs de Reuters). - Phase de conception et développement : travaux d’amélioration de l’application sur la vitesse et l’ergonomie, puis travaux d’extension sur l’”audit trail”, le “reporting” et le PDA. - Phase de test et de mise en production des différentes améliorations et extensions réalisées. La communication entre les différents intervenants a été catalysée par la création et l’utilisation d’un site web de travail coopératif dédié à notre projet. Des réunions ont été organisées tous les mois chez Reuters à Luxembourg pour présenter l’avancée de notre travail. Nous avons organisé des réunions toutes les semaines avec notre encadrant universitaire. Les comptes-rendus de chaque réunion étaient déposés par la suite sur le site du projet avec les autres documents relatifs. Ce projet a été pour nous une excellente expérience pour nous familiariser avec la conduite de projet dans le contexte d’une grande entreprise d’information comme Reuters. Il a été l’occasion de travailler à la fois avec les managers de l’entreprise pour les aspects les plus fonctionnels et avec les ingénieurs pour les aspects plus techniques. Il nous a permis de mettre en pratique des méthodes et techniques de gestion de projet en nous confrontant aux contraintes de temps et de ressources induites par les différentes phases d’un projet. - 51 - E S IA L S CA L A B L E GRAPHICS DÉVELOPPEMENT D’UN LOGICIEL DE GESTION DE BUREAU DISTANT COMPATIBLE AVEC LES APPLICATIONS 3D Remote Desktop compatible with 3D applications ABSTRACT 2007 / 2008 Scalable Graphics is a company specializing in fast parallel rendering for 3D visualization applications. Its product line is based on DViZ, a technology tracing its origin in several years of R&D within INRIA, the French research institute in computer science. DViz allows aggregating the power of PC cluster and its customers need to access to this power. A current developing axis is to provide an access between lightweight clients and a powerful server, able to compute huge graphical data. Existing solutions, such as VNC or HP Remote Graphics, are generic solutions which sorely take into account the problems connected to 3D. The aim of this project is to propose a solution which mitigates these weaknesses or at least to find tracks allowing to reach there. The main interest of this project lies in the use of Windows API to control the events of the system. Its functioning being totally unknown to us, an important research phase was necessary to grasp better the basic concepts. This led us to approach this project under a new angle, by using the conception steered by the risk. It was impossible to propose architecture for the application without fully understand how Windows works. This project has been an opportunity for us to discover new technologies (the C + + language and programming with Windows API). We also have had an initial approach to project management on a larger scale than those usually offered by the school. Élèves Jonathan BANTSIMBAMALANDA Cédric COSTA Romain GROSJEAN Partenaire 615, rue du Jardin Botanique BP 101 54602 VILLERS-LÈS-NANCY Encadrants industriels Xavier CAVIN Christophe MION universitaire Laurent WENDLING - 52 - E S IA L S CA L A B L E GRAPHICS PRÉSENTATION La Société Scalable Graphics est une start-up qui offre une expertise dans le domaine de la visualisation graphique par grappes de PC, afin d'afficher de manière rapide et précise des modèles lourds et complexes en 3D. Elle travaille notamment sur le projet de recherche et développement DViz, qui permet de visualiser des données numériques très volumineuses de manière fluide en associant la puissance graphique de plusieurs ordinateurs interconnectés par un réseau rapide. Scalable Graphics commercialise actuellement la technologie DViz qui permet d'agréger la puissance de calcul des cartes graphiques d’une grappe de PC. Un axe de développement doit permettre à leurs clients d’accéder à cette puissance sur des ordinateurs standards. Les solutions actuelles (VNC, HP Remote Graphics) sont des solutions génériques qui prennent difficilement en compte les problèmes liés à la 3D. L’objectif de ce projet est de proposer une solution qui pallie ces faiblesses ou au minimum de dégager des pistes permettant d’y parvenir. L’intérêt principal de ce projet réside dans l’utilisation de l’API Windows pour contrôler les événements du système. Son fonctionnement nous étant totalement inconnu, une importante phase de recherche nous a été nécessaire afin de mieux appréhender les concepts de base. Ceci nous a conduit à aborder ce projet sous un angle nouveau, en utilisant la conception dirigée par le risque. Il était impossible de proposer une architecture pour l’application sans comprendre parfaitement comment fonctionne Windows. Après avoir pris connaissance en détail du projet avec la société partenaire, nous avons mis en place un planning afin de répartir les tâches de chaque membre du groupe et ainsi optimiser la gestion du projet. Le projet a donc été découpé en plusieurs phases : . Une phase de documentation sur les événements Windows. La principale source d’information a été l’Internet. De nombreux sites proposent des tutoriels et des exemples de codes afin de mettre en place des gestionnaires d’événements. The Microsoft Developer Network (MSDN) a également été une des meilleures bases de recherche. Le principal moyen de communication utilisé par Windows et les applications écrites pour ce système d'exploitation est la file de messages associée à chaque fenêtre. En effet, chaque fois qu'un événement se produit, Windows le traite en envoyant un message, soit à lui-même, soit à un autre programme. Le programme procède alors au traitement de ce message si celui-ci a un intérêt. . Une phase d’écriture d’un programme de test et de conception. Afin de mettre en pratique les concepts vus dans les différentes sources de documentation et ensuite proposer une architecture pour l’application finale, nous avons mis en place un programme de test, fondé sur un modèle client/serveur, capturant les événements liés à une fenêtre grâce au mécanisme des hooks, envoyant des messages à une autre instance du programme qui rejoue les événements reçus de son côté. Un ensemble de documents a été rédigé lors de cette phase (diagramme de classes, de séquence). . Une phase de développement. Une fois l’architecture définie et en accord avec l’entreprise, une partie du programme de test a été reprise pour commencer à développer une application définitive permettant de gérer des fenêtres contenant des représentations en trois dimensions et demandant de lourds calculs à la machine. Ce projet aura notamment été l’occasion pour nous de découvrir de nouvelles technologies (le langage C++ et la programmation avec l’API Windows). Nous avons également pu avoir une première approche de la gestion de projet à plus grande échelle que ceux proposés habituellement par l’école. - 53 - E S IA L TÉLÉ VIDÉO E S PAC E OUTILS POUR L’AFFICHAGE DYNAMIQUE Tools for Digital Signage ABSTRACT 2007 / 2008 Télé Vidéo Espace (TVE), based in Reims, France, has submitted this industrial project. Three students worked on this project, they are Adrien Cretin, Philippe Kuehn and Romain Muller. Jacques Guyard acted as academic supervisor, while Stéphane Demissy acted as industrial supervisor. Nowadays, there are no dedicated tools for digital signage; that's why TVE wishes to develop dedicated pieces of software as a replacement for TV tools, which is intended to TV channel layout. The aim of this project was to create a software bundle composed of three parts: a composer, a scheduler and a player. The conduct of this project was divided in three main parts: - Establishment of the scope statement - Software development - Technical and user documentations Élèves Adrien CRETIN Philippe KUEHN Romain MULLER Partenaire Pôle Henri Farman 8, rue Clément Ader BP 125 51685 REIMS Cedex 2 By the end of the project, most essential features have been implemented; technical documentation has been provided to help further development by third parties. This project was a unique opportunity to acquire several skills in the area of graphical user interface, to use proprietary technologies and open sources technologies altogether and to discover project management issues among which planning issues. Encadrants industriel Stéphane DEMISSY universitaire Jacques GUYARD - 54 - E S IA L TÉLÉ VIDÉO E S PAC E PRÉSENTATION Ce projet a été proposé par la société Télé Vidéo Espace (TVE), basée à Reims, Champagne (France). Fondée en 1985, TVE, filiale du Crédit Agricole a son activité répartie sur quatre pôles : Production audiovisuelle, Evènementiel, Multimédia et Affichage dynamique. Le projet se situe dans le domaine de l'affichage dynamique, qui consiste en l'utilisation d'écrans de grande taille, situés dans des vitrines ou sur des salons par exemple, pour communiquer des informations, commerciales ou non. Activité récente, l'Affichage dynamique est un domaine en plein essor, avec une demande de plus en plus forte de la part de la clientèle. Toutefois, il n'existe à l'heure actuelle pas d'outil spécifique à l'Affichage dynamique et TVE détourne de son usage initial une solution logicielle dédiée à l'habillage de chaînes régionales. Outre le fait de faire dépendre TVE d'une entreprise tierce, cet outil ne dispose pas de fonctionnalités essentielles. Ce constat est à l'origine du sujet de ce projet industriel. L'étude préliminaire nous a permis de mettre en évidence le fait que, d'un point de vue fonctionnel, les besoins de TVE s'articulent autour de trois grands axes. Le premier consiste en la phase de composition, où les différents éléments à afficher (texte, vidéo, image, animation) sont assemblés pour réaliser une émission correspondant à la demande du client. Dans l'étape de planification, à chaque émission créée est associé un calendrier de diffusion selon les jours, et les émissions sont envoyées par le biais d'une liaison Internet sur les lecteurs accolés aux écrans situés dans les locaux de la clientèle. Finalement, le boîtier (appelé player pour des raisons de commodité) diffuse sur l'écran l'enchaînement d'émissions prédéfinies. La première étape de la réalisation de ce projet a été une phase de spécifications fonctionnelles, couplée à la rédaction d'un cahier des charges. Dans ce cahier des charges figure l'ensemble des spécifications tant fonctionnelles que non fonctionnelles du projet, ainsi que la structure retenue, c’est-à-dire trois solutions logicielles séparées : un composeur, un planificateur en environnement Windows, et un lecteur situé sur les player, en environnement Linux pour des raisons d'économies de licence. Une fois la structure et la répartition des tâches établies, la phase de développement proprement dit a commencé, s'appuyant sur une plateforme de gestion de projet fournissant un historique du code ainsi qu'une feuille de route détaillée. Tout au long du développement, un contact permanent entre les équipes ESIAL et TVE a été maintenu, par le biais de réunions régulières. Une documentation exhaustive a également été rédigée, afin de faciliter le suivi du projet par la suite. Ce projet a été une occasion unique pour nous d'être confrontés à des problématiques inhérentes à la gestion de projet, comme la gestion du temps, de la communication avec le client, et de la division du travail en équipe. De plus ce projet nous a permis de mieux appréhender les contraintes de la programmation en environnement Windows, ainsi que de la communication multi plateformes. - 55 -