2012 Avril - Mai -Juin Projet de programmation PHASE DE CODAGE IUT DE VANNES - Juan Joal CADIC Julien - PINSARD Antoine
Structure pédagogique PROJET AP5 Plus que quelques lignes à coder et nous aurons terminé notre projet de première année. Lancé courant mars, il nous a permis de mobiliser l ensemble des compétences acquises au cours de notre année universitaire. LA COMMANDE DU CLIENT Le client souhaitait avoir une application pour permettre à des utilisateurs de communiquer par messages au format texte via une plate-forme PDA. Pour de plus amples renseignements, vous pouvez vous reporter au rapport d analyse.
CHOIX TECHNIQUES INTRODUCTION Lors de notre projet nous avons été confronté à plusieurs problèmes d ordre technique. Nous avons alors étudié les différentes solutions possibles, pour résoudre au mieux chaque problème. Dans certains cas, la charge de travail et les délais imposés nous ont contraint à choisir des solutions moins adaptées. De plus afin de répondre à des critères de qualité, nous avons essayé d orienter la conception et le codage pour favoriser la flexibilité, la robustesse, la portabilité et la réutilisation de notre application. L ORGANISATION DES DONNÉES L un des principaux avantages des langages orientés objet est l évolutivité du code. Par conséquent, nous avons pensé qu il serait dommage de ne pas étendre cette qualité à la gestion des données. Nous avons donc décidé d utiliser un système de gestion de données évolué. Préambule 1
LA GESTION DE LA BASE DE DONNÉES L élément moteur de la couche métier de l application est la gestion des données. Nous avons choisi SQLite pour réaliser cette tache. Nous avions besoin d un SGBD fonctionnant sans service (serveur de données). Nous avons choisi SQLite qui est une base mono utilisateur et ne nécessite pas de complément pour fonctionner. Pour éviter les conflits d accès à la base, nous avons intégré des pools de connections. A l utilisation, nous avons pu constater une carence de fonctionnalités suite à une mauvaise intégration dans l API Java. UN PETIT ORM (OBJECT-RELATIONAL MAPPING) Pour passer d un modèle relationnel à un modèle orienté objet, nous avons implémenté un petit ORM. Pour cela, nous avons défini des correspondances entre les tables de la base de données et les objets à stocker, ainsi qu entre les attributs et les colonnes. UNE SEULE CONNEXION DISTANTE Tout comme pour la gestion des données nous avons centralisé la connexion au serveur. Au démarrage de l application, une tache de fond est lancée. Elle a pour mission de gérer les queues d envoi et de suppression, ainsi que la récupération des messages. UNE INTERFACE GRAPHIQUE MODULABLE Afin de séparer clairement la couche métier de la couche graphique nous avons appliqué le modèle architectural MVC (Modèle, Vue, Contrôleur). Nous avons implémenté un contrôleur principal qui a pour mission de charger les contrôleurs sous-jacents associés à leurs vues. Ainsi il nous est plus facile d ajouter ou de retirer une partie de l interface graphique. Nous avons également externalisé l ensemble des paramètres de l interface graphique afin de rendre plus faciles les modifications de l apparence graphique. Préambule 1
DIAGRAMMES Pour des raisons de surdimensionnement nous vous avons fournit les diagrammes à l adresse http://ap5.cjnet.fr/finale AVANCEMENT DU PROJET Lors de la phase d analyse nous avions établi un cahier des charges qui comportait de nombreuses fonctionnalités. Nous avons aussi organisé l ensemble de notre code pour intégrer ces fonctionnalités, mais le temps imparti ne nous a pas permis de toutes les implémenter. Pour autant, l application de base est opérationnelle, et il sera possible de lui ajouter les fonctionnalités manquantes. Les fonctionnalités opérationnelles : Envoi d un message Envoi mufti-utilisateurs Réponse au message Transfert d un message Réception d un message Créer un brouillon Organisation des messages par boites Ajout d un contact Modification d un contact Suppression d un contact Ergonomie de l application adaptée à une plate-forme de type PDA Paramétrage de l application Les fonctionnalités quasi-opérationnelles : Sécurisation des messages Les propositions d évolution : Synthétiseur vocal pour la lecture des messages Importer un contact au format vcard Association d un avatar à un contact Correspondance des messages sur un serveur mail (smtp) Intégration du système sur une plate-forme Android
TESTS DE CONFORMITE Nous avons testé et validé la conformité de l application aux besoins du client qui sont les suivants : Créer un message Envoyer un message Consulter les messages reçus Consulter un message Effacer un message Sauvegarder en brouillon un message Gérer l absence de connexion avec le serveur Destruction des messages distants (facultatif pour l utilisateur) Répondre à un message Transférer un message Multi-destinataires possible Lister les messages par dossier Rechercher un message Ergonomie global de l application Faciliter la saisie à l aide de l auto-complétion
BILAN PERIODE ANALYSE Durant cette période, l ensemble du projet à été réfléchit, organisé et planifié. Le groupe était composé d Alexandre Chaigne, Joeffrey Leguede, Antoine Pinsard et Julien Cadic. Pendant cette phase, notre outil de gestion de projet Redmine nous a montré un déséquilibre dans la répartition des taches : Antoine Pinsard : 35 heures Diagramme de classe Julien Cadic : 210 heures Diagramme de classe, Diagramme de cas d utilisation, IHM, Tests, Rapport d analyse Alexandre Chaigne : 30 heures IHM Joeffrey Legeude : 30 heures Diagramme de cas d utilisation PERIODE CODAGE Durant la phase de codage, le groupe s est séparé en deux. Pour éviter une nouvelle disparité dans la répartition du travail, nous avons décomposé la phase de codage en taches précises. Nous avons planifié et défini la priorité de chaque tache sur un diagramme de Gantt. Antoine Pinsard : 160h ORM, connexion à la base de données,les modèles associés, les tests Julien Cadic : 220h IHM, Thread de connexion et les Contrôleurs
BILAN PERSO PINSARD ANTOINE J ai trouvé ce projet très enrichissant car il m a appris à travailler dans des conditions que je n avais jamais, ou très peu, rencontré auparavant : travail en équipe (partage des tâches), temps limité, sujet imposé. Ces contraintes m ont permis de persévérer et prendre le dessus sur des erreurs qui m auraient découragé et contraint à abandonner en temps normal. J ai aussi particulièrement apprécié de travailler avec Julien qui est aussi passionné que moi dans ce domaine et qui est très investi dans son travail. D autant plus que nos compétences sont complémentaires, c est très agréable. CADIC JULIEN Je me suis passionné pour ce projet, et j en ai vraiment apprécié chaque étape. Mettre en pratique des connaissances théoriques sur un projet réaliste, c est plus motivant qu un simple TP. Cela m a permis de confronter mes capacités de réflexion à un problème assez complexe et de tester mes compétences de développeur. Durant ce projet, je me suis énormément investi et j espère avoir fourni un travail recevable. J ai aussi beaucoup apprécié de partager ce projet avec mon collègue et néanmoins ami Antoine Pinsard. Sur un tel projet, les moments difficiles ne manquent pas, et le travail en équipe permet de se serrer les coudes. Je tenais aussi à vous dire que ce projet ma redonné confiance dans mes capacités à poursuivre mes études et m encourage à continuer dans l informatique. Le déroulement du projet m a confronté à de multiples problèmes, ce qui m a permis d en tirer des enseignements instructifs, en particulier sur la gestion d un groupe. J ai par exemple noté que le perfectionnisme dans un travail de groupe peut poser problème lorsqu un membre de l équipe fournit un travail insuffisant. En conclusion, je suis très satisfait de cette expérience. J ai trouvé ce binôme Pinsard-Cadic très intéressant, et nous avons envisagé de poursuivre le projet pour l intégrer sur une plate-forme Android.
MAI - JUIN 2012 Projet de programmation PHASE DE CODAGE IUT DE VANNES - - PINSARD - CADIC