Show this page in english

Ingénierie des Systèmes (Java EE)

Le 23 Juin 2010

L'objectif de ce projet était de réaliser un site de e-commerce en exploitant les technologies tournant autour de Java EE (anciennement J2EE).

Ce projet devait être réalisé en quadrinôme et bien qu'ayant la possibilité de simplement réutiliser les technologies vues en travaux pratiques (EJB, Servlets, Ant), nous avons préféré en apprendre de nouvelles… C'est ainsi que notre projet a été implémenté en utilisant le framework Spring 3, Hibernate 3.2 et Maven. La base de données a été faite en MySQL et les pages webs sont un mélange d'HTML 5, de CSS 3 et de JavaScript via le framework jQuery 1.4. Spring Security 3 a également été employé pour gérer les différents niveaux d'autorisation du site.

Le projet n'est pas totalement terminé. Il manque notamment certains éléments de design, quelques pages intermédiaires et fonctions de tri/filtrage des données. Cependant, le site est suffisamment bien avancé dans toutes les directions et est déjà doté d'un design et d'une ergonomie avancés.

Gestion d'objets dupliqués

Le 23 Mai 2010

Ce projet d'intergiciel consistait en la mise en œuvre d'un système client/serveur communiquant via les RMI de Java et partageant des objets. Ces objets ne sont pas stockés dans une mémoire centrale mais uniquement sur chaque poste client (los objets sont donc bien dupliqués).

Le but premier de ce projet était de réaliser un système efficace permettant le partage d'objets dans un contexte fortement concurrent. D'autres fonctionnalités devaient être réalisées, notamment la génération de stubs à la volée (réflexivité Java) ou encore le partage d'objets imbriqués (sous références)…

Ce projet, réalisé en binôme, a été terminé dans les temps impartis et fournit quelques exemples, graphiques ou non, de systèmes convergent ou divergent en fonction de l'avancement du projet.

Structures de données efficaces

Le 16 Mai 2010

Le but de ce projet de spécifications formelles était de développer en TLA une stucture de données efficaces combinant à la fois les avantages des tableaux et ceux des listes ; à savoir, respectivement la consulation/modification de n'importe quel k-ième élément et l'insertion/consultation ou retrait de l'élément d'entête.

Une ébauche de modélisation était fournie pour ce projet afin de réduire la charge de travail. Cette ébauche définissait notamment tout ce qui est structure de données simples telles les listes et tas ainsi que les compteurs unaires, binaires et le compteur d'entiers.

Une grande partie du projet/rapport devait être consacré à la recherche bibliographique. Il fallait en effet se documenter sur les variantes de systèmes de comptage et de compteurs afin d'en exploiter un adapté pour ce projet.

Projet mené à terme, réalisé seul, en 72h.

Cryptanalyse

Le 4 Mai 2010

Ce projet de Recherche Opérationnelle avait pour objectif principal de nous initier aux techniques de brute forcing appliqués ici à la cryptographie.

En s'inspirant des méthodes de Lanaki, il fallait réaliser une application capable de casser un texte simple (alphabet allant de 'a' à 'z' uniquement, ni chiffres, ni accents, ni majuscules) crypté avec des algorithmes relativement peu complexes (de type substition). La méthode consiste à combiner étude fréquentielle des lettres et recherches progressives dans un dictionnaire.

J'ai réalisé ce projet seul et en Java avec interface graphique Swing.

L'application finale fournit de nombreux outils — tels les outils de filtrage de texte, de gestion en arbre de dictionnaires, d'analyse fréquentielle d'un texte quelconque, etc — et parvient à décrypter relativement des textes cryptés dans les conditions précités. L'algorithme se révèle cependant trop peu performant pour décrypter de véritables de textes cryptés.

Compilateur Micro-Java

Le 28 Janvier 2010

Le but du projet était de concevoir un compilateur pour le langage Micro-Java, sorte de Java simplifié, à partir des outils et méthodes vus en cours, travaux dirigés et travaux pratiques de sémantique et traduction des langages (STDL).

Le compilateur devait engendrer à partir d'un ou plusieurs fichiers sources Micro-Java un fichier textuel contenant les instructions TAM correspondantes au programme codé en Micro-Java.

Ce projet devait être réalisé en groupe de trois personnes, groupe dans lequel j'ai été chef de projet, principal développeur ainsi que rédacteur de l'intégralité du rapport.

Le projet devait être mené à terme en environ deux mois et les langages exploités sont Java, EGG et TAM.

Synthèse d'images par lancer de rayon

Le 14 Juin 2009

Pour ce projet, il fallait mettre en place en Java l'algorithme du lancer de rayons, qui, dans une scène préconfigurée et enregistrable au format XML, devait générer une image de synthèse de la scène et en couleur. Les réflections, réfractions et autres propriétés optiques des objets 3D devaient être respectées.

Ce projet devait être réalise en groupe de quatre en l'espace d'environ un mois et demi. J'ai été dans ce groupe le chef de projet ainsi que le principal développeur du projet. Je n'ai pas écrit le rapport. Je me suis seulement assuré de la bonne coordination des tâches à effectuer au sein de l'équipe et du fait que le projet soit mené à terme.

Il s'agissait là d'un projet 100% Java pour lequel j'ai entièrement assuré la phase de conception. J'ai également créé une interface utilisateur de type Blender/3DS Max (non demandée) avec les quatre vues de représentation des objets et la possibilité de placer des objets 3D facilement avec la souris.

Calcul d'expressions arithmétiques

Le 31 Mars 2009

Le but de ce projet était de réaliser en langage C un programme calculant la valeur d'une expression arithmétique en utilisant la notation polonaise sufixée.

Dans la notation polonaise postfixée, les opérateurs suivent immédiatement les opérandes. L'ordre des opérandes par rapport à la notation infixée est le même mais cette notation permet de s'affranchir des parenthèses.

Ce projet devait être réalisé seul, en C et en l'espace d'environ un mois.

Dans la mesure où le projet demandé m'était facile, j'ai ajouté quelques fonctionnalités au projet de base et l'est étendu en un projet plus complet. Une attention particulière a été portée sur la libération systèmatique des ressources allouées.

Calcul de types

Le 17 Décembre 2008

Le but de ce projet était de concevoir des fonctions capables de typer une fonction MiniML. C'est à dire indiquer après saisie d'une fonction MiniML quels types de données celle-ci prend en paramètres et quels types cette fonction MiniML renvoie.

L'analyseur syntaxique de MiniML étant déjà fournit, le projet consistait en l'implémentation d'un algorithme de typage -- celui-ci devant traiter les données envoyées par l'analyseur syntaxique -- et un algorithme de resolution -- traitant les données renvoyées par la fonction de typage -- afin d'obtenir finalement le type global de l'expression ciblée.

Ce projet devait être réalisé en CAML, seul et en l'espace d'environ un mois et demi. Le projet a été mené à terme et fonctionne comme attendu.