Projet de fin d'étude Master ALMA Application de sondage
Sommaire ● Présentation du projet ● Analyse ● Architecture ● Le composant Pollen-Business ● Le composant Pollen-VoteCounting ● Le composant Pollen-UI ● Gestion de projet ● Conclusion
Présentation ● Le projet pollen ● Les besoins ● L'environnement technique ● Processus de développement
Le projet Pollen ● Initié par la société Code Lutin sous la responsabilité de Mr Benjamin Poussin ● Équipe Pollen : Thomas Cicognani, Florian Desbois, Kevin Morin, Erwan Nema, Amine Eddahbi, AbdelMajid Boukhary, Thierry Poulit-Poublat ● Participation de Nolwenn Rannou, stagiaire Code Lutin ● Remerciements : Arnaud Thimel, Eric Chatellier, Ludivine Perrin, Servane Nema
Les besoins ● Application de sondage en mode Web ● Création simple des votes ● Gestion de listes restreintes de votants ● Gestion de différents types de dépouillement ● Gestion de l'anonymat de vote ● Présentation des résultats et export des votes au format XML ● Approche SOA
L'environnement technique ● Projet de type Maven 2.0 ● Gestion de version : Subversion ● Utilisation d'un repository hébergé sur entreprise.org/ ● Sécurisation des accès au repository via ssh ● Utilisation de Framework : Tapestry, Topia- Persistence/Hibernate ● SGBD H2 ● Documentation : format.rst
Processus de développement ● Notre approche initiale : Cycle en cascade – Mise en place du projet – Analyse – Définition de l'architecture – Conception – Implémentation et test ● Cycle en V versus cycle en cascade ● Approche incrémentale
Analyse ● Principaux concepts ● Types de dépouillement ● Cas d'utilisations ● Modèle du domaine
Principaux Concepts ● Sondage (Poll) Configuration des paramètres du sondage ● Choix du sondage (Choice) ● Votant : Personne participant au vote ou compte utilisateur (PollAccount) ● Vote d'une personne (Vote) ● Résultat du sondage pour un choix (Result) ● Dépouillement (VoteCounting) ● Liste de votants ou groupe (VotingList)
Types de dépouillement ● Différents types de dépouillement : – Normal – Condorcet – Pourcentage (pondération des choix) ● Possibilité de dépouiller par groupe : pour chaque type de dépouillement
Cas d'utilisations
Modèle du domaine
Architecture ● Modèle en couche ● Approche orientée composants
Modèle en couche ●
Approche Composants
Pollen-Business ● Description ● Couche DTO ● Couche service
Description ● Enregistrer et manipuler des données de la base de données. ● Permet à la couche graphique et à la couche de dépouillement d'accéder aux données. ● Utilisation de Topia-Persistence développée par Code Lutin.
Topia Persistence ● Utilisation de ArgoUML pour créer le schéma des entités (stéréotype « entity »). ● Crée le mapping Hibernate et permet de manipuler aisément les objets sauvegardés en base. ● Crée aussi les classes entités et les DAOs pour le CRUD
Couche DTO
Service
Pollen - VoteCounting ● Principes ● Algorithmes ● Export
Principes ● Module indépendant, réutilisable dans un cadre d'architecture SOA. ● Deux composants: – VoteCountingExecuter; – VoteCountingExport; ● Fourni deux services : – ServiceVoteConting; – ServicePollExport;
Algorithmes ● Algorithmes de dépouillements : – StandardMethod; – PercentageMethod; – CondorcetMethod; ● Utilisation du > : typeVoteCounting => précision de la stratégie (algorithme)
Export ● L'export du sondage et de ses résultats dans un format standard >. ● L'import du sondage et de ses résultats à partir d'un fichier xml.
Pollen-UI ● Apache Tapestry 5.0 ● Conception ● Charte graphique ● Exemples
Apache Tapestry 5.0 ● Framework MVC libre facilitant la construction d'applications web Java basées sur J2EE. – Modèle : User Interface Objects – Vue : templates TML – Contrôleur : classes Java ● Architecture à base de composants ● Simplicité d'utilisation ● « Convention over configuration »
Conception ● User Interface Objects – Mêmes attributs que les DTOs – Attributs privés – 2 UIOs sous classes de ChoiceUIO : ● ImageChoiceUIO ● DateChoiceUIO
Conception ● Composants : – Border : code HTML commun à toutes les pages – DateTimeField : champ de formulaire permettant de choisir une date et une heure (basé sur le composant de T5Components de Sven Homburg) – LoginComponent : formulaire de connexion
Charte graphique ● Optimisée pour Mozilla Firefox ● 4 styles de pages : – Index : page de démarrage (jaune) – Creation : pages de création et de modification (bleu) – Vote : page de vote (vert) – VoteCounting : dépouillement et export (rouge) ●
Charte graphique ● Border Index Border Creation
Charte graphique ● Border Vote Border VoteCounting
Exemple
Gestion de projet ● Planning prévisionnel ● Journal d'actions
Planning prévisionnel
Journal d'actions ●
Conclusion ● Problèmes rencontrés – Techniques (Maven, Tapestry, Topia-Persistence) – Organisation (trop nombreux, ressource affectée à la partie UI) ● Points positifs – Organisation (points à date, implication des membres de l'équipe) et communication – État du projet : stable, testé, commenté – Apprentissage d'une démarche ● Avancement – 50% Pollen-UI – 90 % Pollen-Business – 85 % Pollen-VoteCounting