Logiciel de gestion d emploi du temps

Dimension: px
Commencer à balayer dès la page:

Download "Logiciel de gestion d emploi du temps"

Transcription

1 Conception d Application Informatique Logiciel de gestion d emploi du temps Céline HENRY COMBES et Pierre LUCE sous la direction de Julien IGUCHI-CARTIGNY Université de Limoges

2 Introduction Le programme du Semestre 6 de la Licence Informatique de l Université de Limoges prévoit la réalisation d un travail de conception d application informatique. Cette Unité d Etude doit mettre les étudiants dans une situation de développement ou de recherche, et les amener à concevoir une solution logicielle. Plusieurs sujets sont proposés, initiés et suivis par un enseignant. Après avoir demandé des conseils, nous avons opté pour le développement d une application de gestion d emploi du temps dans un environnement Java/Spring, sur proposition de M. Julien Iguchi-Cartigny, Professeur à l Université de Limoges. Ce logiciel a comme finalité de remplacer la gestion manuelle des plannings au sein du Département Informatique. Ce rapport vous présente le travail que nous avons effectué ce semestre. Il en suit le déroulement: nous vous présentons d abord les spécifications du projet, puis expliquons le développement des différentes parties du logiciel, et nous vous parlons enfin de nos impressions et des leçons que nous tirons de cette expérience. Pierre LUCE & Céline HENRY COMBES 2

3 Partie Première : la spécification du projet L effervescence des dernières années autour des méthodes dites «agiles», en lieu et place des processus «monolithiques» régnant habituellement sur les développements informatiques ne doit pas faire oublier la nécessité, identique quel que soit le mode de travail adopté, d une solide phase de préparation du projet. Nous verrons dans cette première partie l ensemble des étapes préalable à l implémentation d une application : le recueil des besoins, la spécification fonctionnelle, l état de l art, l estimation des coûts. Nous expliquerons aussi les différents choix technologiques effectués durant cette phase. 1. Recueil des besoins et spécifications fonctionnelles Il s agit d interroger les futurs utilisateurs sur ce qu ils attendent de leur produit. Les concepteurs et développeurs doivent nécessairement comprendre le travail de leur client (et les processus liés, «workflow» en anglais) et ainsi s approprier le contexte d utilisation du logiciel et l utilité des fonctions demandées. C est lors de ces discussions, de ces échanges, qu est mis au point un premier modèle métier, avec un formalisme compréhensible par les utilisateurs finaux, qui doivent ainsi pouvoir le valider. Dans le cas présent, nous avons la charge de développer pour le Département Informatique de la Faculté de Sciences et Techniques de l Université de Limoges une application web de gestion des emplois du temps. Les responsables de formation aimeraient pouvoir composer et diffuser aisément les emplois du temps des différentes promotions. Actuellement, leur conception «manuelle» est rendu complexe par le fait que les enseignements se font parfois en groupes, avec des matières optionnelles et des contraintes diverses et variées. La plus grosse partie de l analyse n a pas été de notre ressort mais a été réalisée par M. Cartigny. Nous nous sommes basés sur son travail pour définir les spécifications fonctionnelles de l application. Voici les 5 principales fonctions retenues : a. Editer l emploi du temps de l utilisateur Il s agit de la fonctionnalité principale du logiciel. L utilisateur obtiendra une grille horaire des évènements le concernant ayant lieu dans une période donnée, soit un jour ou une semaine. b. Organiser les domaines Un utilisateur responsable d un domaine peut y ajouter des sous-domaines, pour former une organisation hiérarchique, un domaine étant une abstraction pouvant correspondre à un cours, une formation, un département c. Gérer les utilisateurs d un domaine Le responsable d un domaine peut y ajouter des utilisateurs avec un rôle particuliers. Il peut aussi le faire avec ses sous domaines. d. Répartir les utilisateurs dans des groupes Le responsable d un domaine peut créer des groupes d utilisateurs liés à son domaine (ou à un de ses sous-domaines). e. Ajouter un évènement 3

4 Le responsable d un domaine ajoute un évènement le concernant en précisant une date, une heure de début, une durée, et les utilisateurs concernés (en utilisant potentiellement un groupe d utilisateurs). L évènement dispose en plus d une description optionnelle. 2. Etat de l art Nous avons tout d abord cherché ce qu il existait déjà en terme de gestionnaire d emplois du temps sur le marché. Il existe deux principales catégories de ce type de logiciel : La création annuelle d emplois du temps de collège ou lycée. Ces logiciels sont très complets et performant. Ils prennent en comptes les cours des étudiants, les disponibilités des professeurs, la cohérence de la succession des cours. Néanmoins ces logiciels sont utilisés une fois par an afin d avoir un emploi du temps unique valable pour toute l année scolaire. Ce type de logiciel ne conviendrait donc pas au besoin de l université dont l emploi du temps est généralement modifié chaque semaine. De plus l utilisation de ce logiciel chaque semaine serait fastidieux en effet ces logiciels sont «lourd» c est-à-dire qu il demande beaucoup de capacité et de temps d exécution. Le gestionnaire d emplois du temps destinés aux particuliers. Pour exemple nous pensons à l emploi du temps de Google, ces logiciels permettent de créer des plages de réunion, de rendez-vous très facilement. Ces plages horaires peuvent tout à fait être des plages horaires de cours. Néanmoins ces plages horaires sont trop flexibles pour être adapté à des cours qui ont généralement des durées fixes. De plus ces emplois du temps n ont pas la notion de «journée» qui débute à 8h et se termine au plus tard à 18h30. Nous avons donc décidé de nous baser sur un type de gestionnaire d emplois du temps destiné au particulier en prenant comme base de départ le calendrier de Google. 3. Estimation des coûts Réalisé d après les spécifications, cette estimation permet d obtenir un coût de développement prévisionnel. Grâce à la méthode des points de fonction, nous estimons le nombre de lignes de codes entre 5000 et Cela correspond (méthode COCOMO) à un effort de 22 mois-homme. 4. Technologies mises en œuvre Le projet concerne la réalisation d une application web, c est-à-dire un logiciel utilisable via un navigateur internet standard. Ce type d application repose principalement sur une architecture client-serveur : le client est le navigateur internet, le serveur est un programme fonctionnant sur un ordinateur distant. a. Technologie côté «serveur» Elles sont multiples, et se distinguent principalement par le langage de programmation utilisé. On trouve sur le marché deux grandes catégories de technologie «serveur» : les «professionnelles» d un côté, éprouvées depuis des années, avec principalement Java Enterprise Edition (Oracle) et DotNET (Microsoft), et de l autre côté des langages parfois relativement ancien mais dont l utilisation sur des applications professionnelles croît de plus en plus : PHP en est le fer de lance, avec plusieurs millions de sites «amateurs» l utilisant, et de plus en plus de frameworks efficaces et solides sur lesquels s appuient de nombreuses entreprises. Le choix est fait pour notre projet d utiliser le langage Java, pour plusieurs raisons : 4

5 le système d information de l Université utilise déjà cette technologie, ce qui facilitera l intégration de notre logiciel en s appuyant sur le framework Spring, il est possible de développer rapidement une application solide et facilement extensible c est une technologie avec une licence libre, contrairement à DotNET Les nombreuses bibliothèques et les frameworks éprouvés existant sous Java vont faciliter le développement. Parmi ceux utilisés, notons : Spring Framework : qualifié de «container léger», il propose entre autre un système d injection de dépendance, de gestion de la sécurité, une architecture MVC Java Persistence API : officiellement spécifiée par le Java Community Process, cette API décrit un ORM (Object-Relational Mapping) à base de classes entités annotés, permettant de se passer de requêtes SQL répétitives, et de faire abstraction du SGBD utilisé. b. Technologie côté «client» Le rendu d une interface graphique dans un navigateur laisse plus de choix qu on ne pourrait le penser en premier lieu. La première possibilité venant à l esprit est l utilisation du langage de description HTML, assisté des feuilles de style CSS et du langage dynamique Javascript. Mais il est aussi possible d utiliser d autres formes de rendu, comme par exemple Flash, notamment avec la technologie Adobe Flex, voire même la réalisation d applet Java pour faire une interface. Néanmoins, et bien que Flex présente beaucoup d avantages, il a été retenu d utiliser quelque chose de «classique» : HTML, CSS, modernisé par l utilisation d un framework Javascript. Après avoir choisi dans un premier temps JQuery, nous avons finalement opté pour le framework ExtJs qui propose d excellents widgets graphiques et tout le nécessaire pour réaliser une application web dynamique et moderne, utilisant entre autre AJAX pour des communications client-serveur asynchrone. 5

6 Partie Seconde : le développement du projet Une fois le recueil des besoins effectués, la faisabilité étudiée et les technologies choisies, il est temps de commencer le développement du projet. Celui-ci se découpera en plusieurs parties, pouvant se dérouler parfois en parallèle : la formation sur les technologies utilisées, le maquettage des interfaces graphiques, le développement coté serveur et l intégration des interfaces graphiques avec le développement côté client. 1. Se former Les premières semaines de travail ont été consacrées à l apprentissage des technologies utilisées. Nous nous sommes initialement réparti le travail, Céline s occupant de la partie «Client», Pierre de la partie «Serveur». Nous avions donc chacun différentes choses à apprendre, mais les méthodes étaient les mêmes : lecture d ouvrages spécialisés et suivi de didacticiels trouvés sur Internet. Spring et JQuery proposent une documentation exhaustive qui facilite grandement leur prise en main. La large communauté d utilisateurs met à notre disposition beaucoup de ressources. 2. Concevoir les maquettes Notre travail comporte une part essentiel d interface graphique. En effet, l application doit principalement être pratique à utiliser, sans quoi elle sera délaissée. Beaucoup de logiciels «utiles» n ont pas connu de succès à cause d un aspect austère et d une interface trop peu ergonomique. C est pourquoi nous avons passé du temps à concevoir les maquettes de notre application. Ce travail nous a permis de préciser les spécifications, et plus particulièrement de trier ce qui devait être fait en priorité et ce qui pouvait venir plus tard. Au-delà de l aspect esthétique, nous cherchions surtout la meilleure organisation des différents écrans. Figure 1.Exemple de maquette sur papier 6

7 Ainsi, malgré le changement de framework Javascript après coup, le travail effectué au préalable ne l a pas été en vain. Car si l apparence diffère quelque peu, la structure globale reste inchangée quelle que soit la technologie utilisée. Comme souvent, un premier jet a été fait sur papier, puis en HTML. C est au final le widget Ext.Calendar fait par Ext.Ensible qui sera retenu comme base de travail pour la présentation des emplois du temps. Cette extension à ExtJs propose des fonctionnalités de présentation similaires à celle de Google Agenda. 3. Environnement de développement Afin de se familiarisé avec des techniques professionnelles de développement, il a été décidé de mettre en place une «forge logicielle». Ce concept comprend principalement l utilisation d un serveur d intégration continue et d un système de gestion des sources. a. Source Code Management (Gestion du code source) Un logiciel de SCM sert à maintenir l ensemble des différentes versions d un code source, en traçant la moindre modification, ce qui permet à tout moment de revenir à une version précédente, ou de séparer un projet en plusieurs variantes. Son utilisation est indispensable dans un environnement ou plusieurs développeurs peuvent travailler sur les mêmes fichiers : le système de gestion des conflits intégrés à ces logiciels permettent de ne pas perdre d information en cas de modifications simultanées d un fichier par deux personnes. Pour ce projet, c est le logiciel Mercurial qui a été utilisé. b. Intégration continue Rendu populaire par l Extreme Programming, l intégration continue est une technique de génie logiciel visant à vérifier à chaque changement du code source qu aucune régression n est introduite dans un programme fonctionnel. Ainsi, un ensemble de tests (et d autres tâches) est automatiquement mené à chaque ajout de modification sur le serveur de gestion du code source. Pour mener à bien ce travail, nous avons installé un serveur d intégration continue appelé Hudson, qui permet cette automatisation de la construction d un projet. Assisté de Apache Maven, gérant les dépendances, le serveur va régulièrement scanner le dépôt de code source et si il y détecte une mise à jour, va lancer automatiquement une série de tâche : Récupération de la dernière version des sources Compilation Tests Analyse qualité du code via Sonar En cas d échec, une alerte est envoyée, entre autres au développeur ayant effectué la mise à jour des sources causant l échec. 7

8 Le logiciel Sonar fournit un ensemble de métriques pour évaluer la qualité du code : complexité, respect des bonnes pratiques, taux de couverture du code par les tests 4. Développer côté serveur Afin de faciliter le développement côté serveur, ce dernier se fera principalement en testant «en local» sur l ordinateur du développeur, et en fin de journée un «commit» sur le dépôt de code source est effectuer. Cela permet d économiser le temps de déploiement sur un serveur de développement distant. a. Test-Driven Development Après avoir commencé en développant de façon «standard», nous avons rapidement voulu essayer un nouveau mode de travail : le développement piloté par les tests. Aussi appelé «Test First», cela consiste en l écriture préalable à tout code «fonctionnel», des tests qui assureront du bon fonctionnement de notre code. Kent Beck, inventeur du TDD, le résume en disant qu aucune ligne de code fonctionnel ne doit être écrite si elle n est pas déjà testée. Voici la chronologie d un développement «test-driven» : Ecriture d un test où la future classe/fonctionnalité est utilisée avec l interface désirée, et vérifiant son fonctionnement. 1) Exécution du test : il y a beaucoup de chance que ça ne compile même pas, au mieux, le test échouera => «Red» 2) Ecriture d un minimum de code pour que le test fonctionne. Cette étape doit durer le moins de temps possible, et, si nécessaire, le code écrit peut utiliser des constantes ahurissantes, pourvue que le test passe => «Green» 3) Refactoring du code, afin de le rendre réellement fonctionnel, en procédant par étapes, vérifiées à chaque fois par une validation des tests => «Refactor» «Red» «Green» «Refactor», tel est le credo du Test-Driven Development. Ce mode de travail, très troublant dans un premier temps, prouve son efficacité par la grande confiance que l on place en son code, sans pour autant avoir à rédiger des dizaines de tests couvrant tous les cas les plus extrêmes. b. Le framework Spring La programmation d un logiciel est essentiellement constituée de travaux répétitifs, communs à tous les programmes du même genre : accès à une base de données, gestion d un cache, traitement d un formulaire, etc. Une application web sous Java doit en outre se plié à la lourdeur de certaines technologies JEE (anciens EJB 2, servlets ). Pour pallier à ces problèmes, il existe pour de nombreux langages des frameworks, assemblage de briques logiciels préfabriquées et réutilisables. Un framework peut être vu comme un ensemble de librairies rassemblées et organisées autour d une architecture, souvent imposée (au moins en partie) au logiciel final. Dans la sphère Java, le framework le plus connu et le plus utilisé est probablement Spring. Il couvre la plupart des aspects du développement d une application, et même d un ensemble applicatifs : tiers web, web services, clients lourds, applications distribuées. Divisé en modules, gérant chacun un ensemble cohérent de fonctionnalités, Spring repose sur le concept de l Inversion de Contrôle (IoC) et de l Injection de Dépendance (DI). Ces motifs de conception proposent globalement de découpler les éléments du programme en supprimant les instanciations directes d un objet, au profit d autres méthodes d instanciations, via l injection depuis un conteneur, ou grâce au design pattern Factory. Ainsi, le type d un objet instancié peut être modifié à travers tout 8

9 le programme en modifiant un fichier de configuration ou une annotation, et puisqu il est utilisé à travers des interfaces, il n y a pas à modifier le code. Spring Framework is a Java platform that provides comprehensive infrastructure support for developing Java applications. Spring handles the infrastructure so you can focus on your application. Spring enables you to build applications from plain old Java objects (POJOs) and to apply enterprise services non-invasively to POJOs. This capability applies to the Java SE programming model and to full and partial Java EE. INTRODUCTION TO SPRING FRAMEWORK, DOCUMENTATION OFFICIELLE Associé au framework Hibernate/JPA pour la gestion de l accès aux données, il offre la possibilité de développer des applications sûres et flexibles, et ce de façon rapide, tout en assurant une maintenance et une évolutivité simplifiées. c. L architecture MVC et Spring MVC Les applications web modernes fonctionnent pour la plupart selon le modèle dit «Modèle, Vue, Contrôleur» (MVC), proposant la séparation en trois couches principales des éléments du programme : Un Modèle représentant le métier de l utilisateur via des objets métiers. On y inclut aussi souvent l accès aux données. Une Vue servant de représentation du modèle et d interface d interaction avec l utilisateur. Un Contrôleur qui se charge de lier la Vue et le Modèle afin de les découpler et de fournir à la vue une interface nécessaire et suffisante à ses besoins. Figure 2. L architecture MVC 2 de Spring MVC (image tirée de la documentation officielle) 9

10 Spring MVC est le module du framework Spring permettant la création d une application web J2EE sans avoir à programmer de Servlet, et qui utilise l architecture MVC 2. Cette évolution du MVC utilise un contrôleur «frontal» qui va réceptionner toutes les requêtes et les distribuer ensuite à des contrôleurs plus spécialisés. Ces derniers vont effectuer le travail «fonctionnel» puis créer un objet de modèle qui sera transmis à la vue pour affichage. Spring MVC propose depuis sa version 3 une configuration presque intégralement basée sur des annotations Java plutôt que sur des fichiers XML. Le Listing 1 donne un exemple /account ) public class AccountController { private AccountService accountservice; public void setaccountservice(accountservice accountservice){ /**/ /list ) public String getaccountlist(model model) { /**/ /creer,method=requestmethod.post) public String Account account,bindingresult result) { /**/ /creer, method=requestmethod.get) public String getcreateform(model model) { /**/ } Listing 1. Exemple de méthode d un contrôleur Nous y voyons que les url des requêtes sont mappées vers des méthodes particulières des contrôleurs. Les options sont nombreuses et permettent de rediriger précisément les demandes vers les réponses correctes. Néanmoins, si cette méthode de configuration est bien moins lourde qu un fichier XML dès que notre application prend de l ampleur, elle est aussi plus intrusive. d. Architecture de l application Maintenant que nous avons présenté le modèle MVC, utilisé pour la couche Web de notre application, nous allons vous présenter son architecture (voir Figure 3). Figure 3. L architecture de l application 10

11 Il y a donc 4 couches principales : Couche «domaine» : ensemble des objets métiers, ce sont des POJOs (JavaBeans classiques) annotés pour des besoins de persistance de donnée Couche «DAO» : gère la persistance et l accès aux données, via la Java Persistence API, abstraction représentant une connexion à une base de donnée et la gestion des entités selon des concepts objets et non pas relationnels. Couche «services» : c est elle qui va exécuter les fonctionnalités de l applications, en interagissant avec les DAO. Couche «présentation» : on y trouve deux façons d accéder aux fonctionnalités : via une interface web (Spring MVC) ou via des Web Services (gérés aussi par Spring) Parallèlement à ses couches, le conteneur léger Spring gère tout ce qui est instanciation et injection des dépendances. Le plus gros du travail sur les couches Services, DAO et Domaine a été fait par M. Cartigny, nous nous sommes contenté d y apporter ponctuellement une modification, une correction, ou une fonctionnalité supplémentaire. e. Travail effectué Notre principal travail a donc été de programmer les contrôleurs de l application web. Il a donc fallu dans un premier temps se mettre d accord sur une interface, un protocole d échange avec la partie «client», c est-àdire mettre au point le format des données échangées avec l application JavaScript présente sur la page Web. Une fois cette tâche effectuée pour chacune des fonctionnalités attendues, nous avions donc toutes les signatures des méthodes de nos contrôleurs. Après avoir rédigé les tests adéquats, nous avons implémentés le code fonctionnel. La plupart du temps, le code d une méthode suit le schéma présenté par la Figure 4. Figure 4. Fonctionnement schématique d une méthode de contrôleur Un exemple de traitement est visible dans le Listing 2 : on y trouve une méthode permettant l ajout d un nouvel objet Domain en base de données. Les 3 étapes présentées dans la figure 3 sont présentes. L objet retourné au final est une Map, correspondant à l objet JSON attendu par l application ExtJS côté client. On peut y voir toutes les annotations permettant la configuration et l injection des dépendances. Trois contrôleurs ont étés réalisés : EventController : gestion des évènements DomainController : gestion des domaines 11

12 AccueilController : page d accueil, point d entrée de /domaine ) public class DomainController private DomainService domainservice; /**/ // Cette méthode prendra en charge une requête POST d /ajouter, method=requestmethod.post) Map<String,Object> parent ) String title ) String description ) String description){ // On créé un objet de réponse HashMap<String, Object> hm = new HashMap<String,Object>(); try { // Vérification des paramètres if(title!= null && title.length() == 0) throw new IllegalArgumentException( Domain title is empty ); // Accès au Service if(parenteid.equals( 0 )){ domainservice.createrootdomain(title, description); } else { domainservice.createdomainindomain(title, description, parenteid); } // Préparation de la réponse hm.put( success, true); } catch (Exception e){ hm.put( success, false); hm.put( error, e.getmessage()); } return hm; } // Retour de l objet réponse /**/ } Listing 2. Exemple de méthode d un contrôleur 5. Développer côté client La façon de travailler sur le code côté client a été légèrement différente. Le développeur concerné étant seul à travailler dessus, et son intégration avec l application final étant tardive, peu de commit ont été réalisés sur le gestionnaire de sources. Une grosse partie du travail ayant d ailleurs été fait sur papier, il y eut dans un premier temps relativement peu de code. 12

13 Deux technologies JavaScript se sont succédé. Le début du travail a été fait autour de JQuery, qui fut ensuite abandonné au profit d ExtJs. Nous vous présenterons donc ce framework, les extensions utilisées et enfin le travail final réalisé. a. ExtJs (Sencha) Né comme une extension de la librairie Yahoo User Interface, ce framework a très rapidement pris son indépendance. Il propose de nombreux widgets graphiques permettant la création d interfaces complètes, ergonomiques et professionnelles dans un navigateur web : formulaires, grilles de données, fenêtres La dernière version (ExtJs 4) est sortie au mois d avril, mais n étant pas compatible à 100% avec le travail effectué, nous avons poursuivi le travail sous la version sortie en novembre. Le framework organise ses widgets selon un modèle découplant l objet d affichage (la grille par exemple) de l objet permettant de manipuler les données (appelé un Store), qui lui va par exemple aller chercher les données sur un serveur, ou envoyer les requêtes pour les modifier. Figure 5. Fonctionnement des widgets ExtJS La figure 5 schématise ce fonctionnement. Le widget est la partie graphique, le formulaire ou la grille par exemple. Le store est un objet avec lequel le widget va intéragir, il va contenir les données traitées par le widget. C est en quelque sorte une base de donnée locale à la page. Le Proxy va représenter une source de données. Le plus utilisé sera le HttpProxy, qui permet de récupérer et de modifier les données via des requêtes AJAX. Entre le Store et le Proxy, les communications sont difficiles car le Store ne manipule que des objets, alors que le proxy peut récupérer des chaines sous divers format (JSON, XML ). Pour les aider, on utilise des Readers et des Writers, qui vont convertir dans un sens et dans l autre les données brutes en objets. b. Le widget Calendar de Ext.ensible Au cours de nos recherches, nous avons trouvé une création qui nous poussa à adopter ExtJs comme technologie client. Il s agit du widget «Calendar» fait par la société Ext.ensible et distribué gratuitement pour une utilisation non commerciale. Il s agit d un calendrier présenté à la façon de Google Agenda, avec des vues paramétrables (jour, semaine, mois), les interfaces d ajouts / modifications d évènements, gestion de plusieurs calendriers, internationalisé, bref, qui correspondait tout à fait à nos besoins, à quelques personnalisation près. Un Calendrier Ext.ensible suit le même fonctionnement que celui décrit dans le paragraphe précédent. L interface graphique repose sur deux Stores: un EventStore qui stocke les évènements affichés sur le calendrier, et un CalendarStore, qui stocke un ensemble d agendas, pouvant être affichés ou masqués sur l interface. Un évènement possède donc des dates/heures de début et de fin, un titre et une description. On peut lui associer certaines propriétés: appartenance à un agenda en particulier, durée sur toute une journée (ou plus- 13

14 ieurs jours), récurrence selon un schéma précis, rappel... Ces champs sont personnalisables: on peut en ajouter, ou modifier les noms de ceux existants. Figure 6. Calendrier basique, avec les options par défaut et un jeu d essai Les données peuvent aussi bien être récupérées sur un serveur distant (via requête AJAX et architecture REST) qu instanciées directement dans le script. C est bien sûr cette première façon de faire qui sera utilisée dans notre cas. Le drag n drop est utilisable pour ajouter des évènements: on clique à l heure de début et on fait glisser jusqu à l heure de fin. D une façon générale, l interface et l ergonomie rappellent beaucoup Google Agenda, la référence en matière de calendriers en ligne. Figure 7. Aperçu de notre interface 14

15 c. Travail réalisé L interface actuelle repose sur un Ext.Viewport. Il s agit d une fenêtre prenant tout l espace disponible, et permettant donc d organiser le navigateur comme un vrai programme de bureau (voir figure 7). Figure 8. Fenêtre d ajout d évènement A gauche, une liste des domaines existant s affiche sous forme d arbre. Un clic droit dessus entraine l affichage d un menu contextuel permettant l ajout, la modification, et la suppression de domaines. Il a fallu distinguer l ajout d un sous-domaine de l ajout d un nouveau domaine racine: cette distinction se fait sur l emplacement du clic-droit. Le formulaire d ajout/modification qui s ouvre alors est une fenêtre modale (Ext. Windows) contenant un simple formulaire ExtJS (Ext.form.FormPanel). Au centre et à droite de l écran se trouve le calendrier, outil principal du logiciel, dont on a déjà parlé précédemment. Les caractéristiques des différentes vues ont été modifiées pour être plus appropriées à l utilisation de notre application. Ainsi, les journées vont de 8h00 à 19h30, et plus de 00h00 à 23h59, avec une unité de temps de 15 minutes et non plus de 30 minutes. De même, seuls apparaissent les jours travaillés. Figure 9. Menu contextuel Le concept original d agendas a été repris, et au lieu d associer un agenda à un évènement, on va lui associer un domaine. Seul le nom change, et la façon de les associer, mais la structure reste inchangée. La sémantique est modifiée, mais l implémentation reste quasiment la même. On peut ainsi faire apparaitre sur le calendrier les évènements d une même matière avec une couleur particulière, n afficher que ceux là, ou encore les exclure. D autres modifications légères ont été faites pour adapter les entrées / sorties à nos formats de données. Les échanges se font via des chaînes JSON (format de sérialisation JavaScript) et il a parfois été nécessaire de changer le nom de certains attributs. Cette partie du travail a été facilitée par les options de mapping offertes par ExtJs et par l extension utilisée. 15

16 Partie Dernière : Apprentissages, leçons tirées, expériences acquises Au début de ce projet, nous avions des envies et des attentes. Certaines ont été satisfaites, d autre ont changées, mais nous avons dans tout les cas appris des choses et tiré des leçons de cette expérience. Nous allons vous expliquer ce que nous retenons, d abord d une façon générale, puis de façon particulière pour chacun de nous. 1. L ennemi n 1: le temps Un projet informatique, et d autant plus un projet universitaire, souffre toujours des mêmes maux: problèmes de temps, de concentration, de compétences. Si pour ces derniers nous avons matières à apprendre (et c était d ailleurs le but), les autres projets scolaires et professionnels nous ont empêcher de consacrer autant de temps que nous aurions voulu à ce travail. Nous avons la chance de souvent travailler ensemble, ce qui a facilité notre coordination, notre communication et donc la gestion des avancées de chacun. Néanmoins, la planification est toujours un exercice difficile, surtout quant on ne peux pas savoir à l avance combien de temps par jour ou par semaine on pourra consacrer au projet. C est pourquoi la répartition des tâches n a peut être pas été adroite. Nous avions découper le projet en deux parties puisque nous étions deux développeurs. L un devait s occuper de la partie client, l autre de la partie serveur. Au début, les maquettes avançèrent beaucoup plus vite que le code serveur, mais au final, c est du côté client que la charge du travail fut la plus importante, entre autre à cause du changement de dernière minute de framework JavaScript. La communication est donc essentielle, aussi bien quand on avance que quand on est en difficulte. La précision est impérative lorsque son définit les interfaces à utilisé: par exemple, ExtJS attend en entrée des dates dans un certain format, qui n est pas celui par défaut sérialisé par Java. Il faut donc préciser le moindre détail. L expérience joue un rôle déterminant dans ce travail. 2. Apprentissages techniques et difficultés particulières Pour Céline, ce projet fut l occasion d acquérir des compétences dans les technologies de présentation du Web: CSS, JavaScript, et d apprendre l utilisation de deux framework: ExtJs et jquery. Ses principales difficultés furent de se concentrer sur l objectif principal (minimum fonctionnel) et pas sur toute les améliorations possibles, ainsi que de s adapter au changement de framework. La prépondérance de l anglais dans la documentation n a pas facilité ses recherche. Pierre put quant à lui renforcer ses notions de programmation Java, et notamment découvrir le framework Spring et ses capacités. Pensant d abord pouvoir travailler sans difficulté grâce à cela, il se rendit rapidement compte qu il fallait encore faire attention à énormément de choses, souvent des détails, et que les causes d erreurs possibles sont très nombreuses quelque soit la technologie utilisée. Ce fut aussi l occasion d installer et d utiliser une forge logicielle pour la première fois: un outil très pratique, mais délicat à configurer et à mettre en route. 16

17 Conclusion Ce projet majeur dans notre année universitaire nous a permis de découvrir de nouvelles technologies et de nouvelles pratiques en matière de programmation Web, notre domaine d études privilégié. Il nous a permis de confirmer notre intérêt pour ce secteur et nous a conforté dans nos choix de poursuite de cursus universitaire. Travailler avec un de nos enseignant nous a donné un aperçu de méthodes de travail différentes de celles que nous avions déjà expérimenté, et a amélioré notre connaissance des techniques de développement. Son accompagnement dans la découverte de Spring, entre autre, a été une aide précieuse. Pour finir, nous aurions aimé que les autres projets universitaires nous laisse plus de temps pour apporter un maximum de fonctionnalités à cette application qui nous parait utile et nécessaire. Nous espérons que des équipes des prochaines années pourront reprendre le travail là où nous l avons laissé et mener à terme le développement de ce programme. 17

18 Table des matières Introduction 2 Partie Première : la spécification du projet 3 1. Recueil des besoins et spécifications fonctionnelles 3 2. Etat de l art 4 3. Estimation des coûts 4 4. Technologies mises en œuvre 4 Partie Seconde : le développement du projet 6 1. Se former 6 2. Concevoir les maquettes 6 3. Environnement de développement 7 4. Développer côté serveur 8 5. Développer côté client 12 Partie Dernière : Apprentissages, leçons tirées, expériences acquises L ennemi n 1: le temps Apprentissages techniques et difficultés particulières 16 Conclusion 17 18

19 Table des figures Figure 1.Exemple de maquette sur papier 6 Figure 2. L architecture MVC 2 de Spring MVC (image tirée de la documentation officielle) 9 Figure 3. L architecture de l application 10 Listing 1. Exemple de méthode d un contrôleur 10 Figure 4. Fonctionnement schématique d une méthode de contrôleur 11 Listing 2. Exemple de méthode d un contrôleur 12 Figure 5. Fonctionnement des widgets ExtJS 13 Figure 6. Calendrier basique, avec les options par défaut et un jeu d essai 14 Figure 7. Aperçu de notre interface 14 Figure 8. Fenêtre d ajout d évènement 15 Figure 9. Menu contextuel 15 19

20 Documentations officielles Bibliographie Spring Framework 3.0 Documentation Reference JQuery API Reference ExtJS API Documentation Ext.ensible Calendar API Docs & Samples Ouvrages divers Spring in Action, Craig Walls, éditions Mannings Test Driven Development: By Example de Kent Beck, éditions Pearson Eduction Java Persistence and Hibernate de Anthony Patricio, éditions Eyrolles CSS - Le guide complet, de Fabien Basmaison et Antoine Cailliau, éditions Micro Application. jquery de Jonathan Chaffer et Karl Swedberg, éditions Pearson Eduction Tutoriaux, aide, Foires Aux Questions Ajax Simplifications in Spring 3.0 MVC Simplifications in Spring 3.0 FAQ Spring - Developpez.com Tutoriel CSS sur HTML.net Tutoriel jquery sur BabylonDesign 20

Compte-Rendu SDL. «Reprise de l application de gestion de listes de présences des alternants»

Compte-Rendu SDL. «Reprise de l application de gestion de listes de présences des alternants» Compte-Rendu SDL Auteurs : BOUTROUILLE Alexis BAILLEUL Pierre Tuteur : Ioan Marius Bilasco «Reprise de l application de gestion de listes de présences des alternants» Master MIAGE 1 Année 2012/2013 1 Remerciements

Plus en détail

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles Types d applications pour la persistance Université de Nice Sophia-Antipolis Version 0.9 28/8/07 Richard Grin Toutes les applications n ont pas une complexité qui nécessite une architecture n- tiers Ce

Plus en détail

Applications orientées données (NSY135)

Applications orientées données (NSY135) Applications orientées données (NSY135) 2 Applications Web Dynamiques Auteurs: Raphaël Fournier-S niehotta et Philippe Rigaux (philippe.rigaux@cnam.fr,fournier@cnam.fr) Département d informatique Conservatoire

Plus en détail

Devenez un véritable développeur web en 3 mois!

Devenez un véritable développeur web en 3 mois! Devenez un véritable développeur web en 3 mois! L objectif de la 3W Academy est de former des petits groupes d élèves au développement de sites web dynamiques ainsi qu à la création d applications web

Plus en détail

Documentation technique

Documentation technique MEEVY Documentation technique Juillet 200 MEEVY a pour but de fournir aux artistes des outils pour promouvoir leur musique sur internet et proposer à l auditeur une plateforme de musique en ligne gratuite

Plus en détail

NVU, Notepad++ (ou le bloc-note), MySQL, PhpMyAdmin. HTML, PHP, cas d utilisation, maquettage, programmation connaissances en HTML, PHP et SQL

NVU, Notepad++ (ou le bloc-note), MySQL, PhpMyAdmin. HTML, PHP, cas d utilisation, maquettage, programmation connaissances en HTML, PHP et SQL Prise en main de NVU et Notepad++ (conception d application web avec PHP et MySql) Propriétés Intitulé long Formation concernée Matière Présentation Description Conception de pages web dynamiques à l aide

Plus en détail

Projet Web. Tim Burton. Refonte complète du site de Tim Burton en utilisant les dernières technologies du web : HTML 5 / CSS 3 / JavaScript...

Projet Web. Tim Burton. Refonte complète du site de Tim Burton en utilisant les dernières technologies du web : HTML 5 / CSS 3 / JavaScript... Projet Web Tim Burton Refonte complète du site de Tim Burton en utilisant les dernières technologies du web : HTML 5 / CSS 3 / JavaScript... Par Omar EDDASSER L3 ISC parcours MIAGE Sous l enseignement

Plus en détail

Rapport de stage. Création d un site web. Stage du 20/01/2013 au 21/02/2013

Rapport de stage. Création d un site web. Stage du 20/01/2013 au 21/02/2013 Rapport de stage Création d un site web Stage du 20/01/2013 au 21/02/2013 Auteur : Antoine Luczak Tuteur professionnel : M. Tison Tuteur scolaire : Mme Girondon Année scolaire : 2013/2014 1 Table des matières

Plus en détail

Compte Rendu d intégration d application

Compte Rendu d intégration d application ISMA 3EME ANNEE Compte Rendu d intégration d application Compte Rendu Final Maxime ESCOURBIAC Jean-Christophe SEPTIER 19/12/2011 Table des matières Table des matières... 1 Introduction... 3 1. Le SGBD:...

Plus en détail

Traitement et navigation

Traitement et navigation 12 Traitement et navigation Au chapitre précédent, nous avons vu comment créer des pages web avec différentes technologies (HTML, JSP, JSTL, etc.) en insistant sur le fait que JSF est la spécification

Plus en détail

SOMMAIRE. I. Introduction 02. II. Glossaire 03 a. Glossaire technique 03 b. Glossaire fonctionnel 04

SOMMAIRE. I. Introduction 02. II. Glossaire 03 a. Glossaire technique 03 b. Glossaire fonctionnel 04 SOMMAIRE I. Introduction 02 II. Glossaire 03 a. Glossaire technique 03 b. Glossaire fonctionnel 04 III. Présentation de l'association 05 a. Présentation juridique et géographique 05 b. Présentation de

Plus en détail

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand Centrale Réseaux

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux Formation Webase 5 Ses secrets, de l architecture MVC à l application Web Adrien Grand Centrale Réseaux Sommaire 1 Obtenir des informations sur Webase 5 2 Composants de Webase 5 Un

Plus en détail

Architecture Orientée Service, JSON et API REST

Architecture Orientée Service, JSON et API REST UPMC 3 février 2015 Précedemment, en LI328 Architecture générale du projet Programmation serveur Servlet/TOMCAT Aujourd hui Quelques mots sur les SOA API - REST Le format JSON API - REST et Servlet API

Plus en détail

Spring par la pratique

Spring par la pratique Spring par la pratique 2 e édition Spring 2.5 et 3.0 Arnaud Cogoluègnes Thierry Templier Julien Dubois Jean-Philippe Retaillé avec la contribution de Séverine Templier Roblou et de Olivier Salvatori Groupe

Plus en détail

Recueil des Fiches Concepteurs : Mise en œuvre d un site SharePoint 2013 Juin 2015

Recueil des Fiches Concepteurs : Mise en œuvre d un site SharePoint 2013 Juin 2015 Recueil des s s : Mise en œuvre d un site SharePoint 2013 Juin 2015 Ce document décrit le paramétrage pour la mise en œuvre des fonctionnalités standard de Microsoft SharePoint 2013. NADAP et SharePoint

Plus en détail

MIF13 Programmation Web OUTILS D AIDE À LA CONCEPTION D APPLICATIONS WEB

MIF13 Programmation Web OUTILS D AIDE À LA CONCEPTION D APPLICATIONS WEB MIF13 Programmation Web OUTILS D AIDE À LA CONCEPTION D APPLICATIONS WEB L I O N E L M É D I N I S E P T E M B R E - D É C E M B R E 2 0 0 9 Objectif de ce cours Prendre conscience de l existence de nombreux

Plus en détail

Comment installer wordpress. www.bxart.be wp niveau 1

Comment installer wordpress. www.bxart.be wp niveau 1 www.bxart.be wp niveau 1 Installation Introduction Wordpress est un CMS ce qui signifie : système de gestion de contenu (Content Management System). Il y a d autres CMS mais c est de loin le plus populaire.

Plus en détail

Programmeur Niveau 2 PHP5

Programmeur Niveau 2 PHP5 Programmeur Niveau 2 PHP5 L objectif de la 3W Academy est de former des petits groupes d élèves à la programmation de sites internet ainsi qu à la création d applications web complexes tel qu un blog ou

Plus en détail

JAVA PROGRAMMATION. Programme. 1. Java, HTML et World Wide Web

JAVA PROGRAMMATION. Programme. 1. Java, HTML et World Wide Web PROGRAMMATION PUBLIC Professionnels informatiques qui souhaitent développer des applications et «applets» Java DUREE 4 jours 28 heures OBJECTIF Créer divers «applets» à intégrer dans un site Web dynamique,

Plus en détail

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e : CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE Projet 2 Gestion des services enseignants G r o u p e : B E L G H I T Y a s m i n e S A N C H E Z - D U B R O N T Y u r i f e r M O N T A Z E R S i

Plus en détail

BES WEBDEVELOPER ACTIVITÉ RÔLE

BES WEBDEVELOPER ACTIVITÉ RÔLE BES WEBDEVELOPER ACTIVITÉ Le web developer participe aux activités concernant la conception, la réalisation, la mise à jour, la maintenance et l évolution d applications internet/intranet statiques et

Plus en détail

Les formations. Développeur Logiciel. ENI Ecole Informatique

Les formations. Développeur Logiciel. ENI Ecole Informatique page 1/8 Titre professionnel : Inscrit au RNCP de Niveau III (Bac + 2) (J.O. du 19/02/13) 24 semaines + 8 semaines de stage (uniquement en formation continue) Développer une application orientée objet

Plus en détail

Présentation. 2010 Pearson Education France Adobe Flash Catalyst CS5 Adobe Press

Présentation. 2010 Pearson Education France Adobe Flash Catalyst CS5 Adobe Press Présentation 1 Adobe Flash Catalyst CS5 vous permet de produire du contenu totalement interactif d une grande qualité graphique pour le web ou le bureau sans écrire une seule ligne de code. Cette leçon

Plus en détail

Cours en ligne Développement Java pour le web

Cours en ligne Développement Java pour le web Cours en ligne Développement Java pour le web We TrainFrance info@wetrainfrance Programme général du cours Développement Java pour le web Module 1 - Programmation J2ee A) Bases de programmation Java Unité

Plus en détail

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application Architecture Multi-Tier Traditionnellement une application informatique est un programme exécutable sur une machine qui représente la logique de traitement des données manipulées par l application. Ces

Plus en détail

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement Cursus Outils & Développement Vous êtes Consultant, Chef de Projets, Directeur des Systèmes d Information, Directeur Administratif et Financier, Optez pour les «formations Produits» Nous vous proposons

Plus en détail

HTML5 et PHP 5 - Développez des applications web performantes Exploitez les dernières nouveautés des langages

HTML5 et PHP 5 - Développez des applications web performantes Exploitez les dernières nouveautés des langages Avant-propos 1. HTML5 11 2. PHP5 11 3. Démarche de cet ouvrage 12 4. Pré-requis 13 5. Compatibilité des navigateurs 14 Les apports d'html5 1. Introduction 15 2. Améliorer la structure de son contenu 16

Plus en détail

les techniques d'extraction, les formulaires et intégration dans un site WEB

les techniques d'extraction, les formulaires et intégration dans un site WEB les techniques d'extraction, les formulaires et intégration dans un site WEB Edyta Bellouni MSHS-T, UMS838 Plan L extraction des données pour un site en ligne Architecture et techniques Les différents

Plus en détail

Introduction aux concepts d ez Publish

Introduction aux concepts d ez Publish Introduction aux concepts d ez Publish Tutoriel rédigé par Bergfrid Skaara. Traduit de l Anglais par Benjamin Lemoine Mercredi 30 Janvier 2008 Sommaire Concepts d ez Publish... 3 Système de Gestion de

Plus en détail

Programmation Avancée pour le Web

Programmation Avancée pour le Web L3 Informatique Option : ISIL Programmation Avancée pour le Web RAMDANI Med U Bouira 1 Contenu du module Introduction aux applications Web Rappels sur les sites Web Conception d une application Web Notion

Plus en détail

Java EE Approfondi - Cours 2. Cours de 2 e année ingénieur Spécialisation «Génie Informatique»

Java EE Approfondi - Cours 2. Cours de 2 e année ingénieur Spécialisation «Génie Informatique» Java EE Approfondi - Cours 2 Cours de 2 e année ingénieur Spécialisation «Génie Informatique» Présentation Lier l'orienté objet et la base de données relationnelle peut être lourd et consommateur en temps.

Plus en détail

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean. Plan du cours 2 Introduction générale : fondamentaux : les fondamentaux Michel Buffa (buffa@unice.fr), UNSA 2002, modifié par Richard Grin (version 1.1, 21/11/11), avec emprunts aux supports de Maxime

Plus en détail

JXDVDTek - UNE DVDTHEQUE EN JAVA ET XML

JXDVDTek - UNE DVDTHEQUE EN JAVA ET XML BALLOTE Nadia FRIULI Valerio GILARDI Mathieu IUT de Nice Licence Professionnelle des Métiers de l Informatique RAPPORT DU PROJET : JXDVDTek - UNE DVDTHEQUE EN JAVA ET XML Encadré par : M. CRESCENZO Pierre

Plus en détail

Java pour le Web. Cours Java - F. Michel

Java pour le Web. Cours Java - F. Michel Java pour le Web Cours Java - F. Michel Introduction à JEE 6 (ex J2EE) Historique Qu'est-ce que JEE JEE : Java Entreprise Edition (ex J2EE) 1. Une technologie outils liés au langage Java + des spécifications

Plus en détail

Développer une application en VB.NET 2.0. Partie 3 : Création d une base de données SQL Serveur

Développer une application en VB.NET 2.0. Partie 3 : Création d une base de données SQL Serveur Développer une application en VB.NET 2.0 Cécile Muno Christian Maréchal Partie 3 : Création d une base de données SQL Serveur Sommaire Rappels Note des auteurs Quelques références I. Introduction à SQL

Plus en détail

Fiche de présentation d'une situation professionnelle.. p1. Charte graphique de campustech p2. 1.1 Contexte du projet.. p4

Fiche de présentation d'une situation professionnelle.. p1. Charte graphique de campustech p2. 1.1 Contexte du projet.. p4 Sommaire Fiche de présentation d'une situation professionnelle.. p1 Charte graphique de campustech p2 1. CONTEXTE.. p3 1.1 Contexte du projet.. p4 1.2 Cahier des charges.. p4 2. ENVRIONNEMENT DE TRAVAIL..

Plus en détail

Architecture technique

Architecture technique OPUS DRAC Architecture technique Projet OPUS DRAC Auteur Mathilde GUILLARME Chef de projet Klee Group «Créateurs de solutions e business» Centre d affaires de la Boursidière BP 5-92357 Le Plessis Robinson

Plus en détail

de survie du chef de projet

de survie du chef de projet KIT de survie du chef de projet 01 1 2 3 4 5 6 04 03 07 07 03 03 LE SERVEUR LE CLIENT TECHNOLOGIE WEB CLIENT LE SERVEUR WEB TECHNIQUES & CADRE DE TRAVAIL APPLICATIONS 101 LE SERVEUR Un serveur informatique

Plus en détail

Développement Web Introduction générale

Développement Web Introduction générale 1 / 58 Développement Web Introduction générale Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer Juillet 2008 2 / 58 Plan Plan 1 Introduction 2 Historique et

Plus en détail

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information. PACBASE «Interrogez le passé, il répondra présent.». Le Module e-business Les entreprises doivent aujourd hui relever un triple défi. D une part, elles ne peuvent faire table rase de la richesse contenue

Plus en détail

Une solution de reporting haut de gamme éprouvée. Accès aux données et présentation sous la forme de votre choix

Une solution de reporting haut de gamme éprouvée. Accès aux données et présentation sous la forme de votre choix Crystal Reports XI Une solution de reporting haut de gamme éprouvée Crystal Reports XI, solution standard reconnue dans le monde entier, vous aide à concevoir, gérer et distribuer des états sur le Web,

Plus en détail

TECHNIQUES D INTÉGRATION MULTIMÉDIA DIFFUSION EN LIGNE (582-KGB-JQ) 1-3-2

TECHNIQUES D INTÉGRATION MULTIMÉDIA DIFFUSION EN LIGNE (582-KGB-JQ) 1-3-2 TECHNIQUES D INTÉGRATION MULTIMÉDIA DIFFUSION EN LIGNE (582-KGB-JQ) 1-3-2 Enseignant : Serge Parent Bureau : 841.3G Téléphone : 418-547-2191, poste 7134 Courriel: serge.parent@cjonquiere.qc.ca Élève 2

Plus en détail

Projet de Java Enterprise Edition

Projet de Java Enterprise Edition Projet de Java Enterprise Edition Cours de Master 2 Informatique Boutique en ligne L objectif du projet de JEE est de réaliser une application de boutique en ligne. Cette boutique en ligne va permettre

Plus en détail

Les formations. Développeur Logiciel. ENI Ecole Informatique

Les formations. Développeur Logiciel. ENI Ecole Informatique page 1/5 Titre professionnel : Reconnu par l Etat de niveau III (Bac), inscrit au RNCP (arrêté du 12/10/07, J.O. n 246 du 23/10/07) (32 semaines) Unité 1 : Structurer une application 6 semaines Module

Plus en détail

HighPush. document 3.0 18/06/2009 Révision pour version 3.0 2.0 20/11/2008 Revision pour la 2.0 1.0 01/10/2008 Documentation initiale.

HighPush. document 3.0 18/06/2009 Révision pour version 3.0 2.0 20/11/2008 Revision pour la 2.0 1.0 01/10/2008 Documentation initiale. Version du Date document 3.0 18/06/2009 Révision pour version 3.0 2.0 20/11/2008 Revision pour la 2.0 1.0 01/10/2008 Documentation initiale Commentaires 1 Table des matières 1 Introduction / Identification...

Plus en détail

PROJET D INFORMATISATION DE LA GESTION DES ABSENCES EN STARTER

PROJET D INFORMATISATION DE LA GESTION DES ABSENCES EN STARTER Année 2008/2009 PROJET D INFORMATISATION DE LA GESTION DES ABSENCES EN STARTER Licence Professionnelle Système informatique et logiciel Responsable du projet : Françoise GREFFIER SOMMAIRE I. PRESENTATION

Plus en détail

LOT03P6 - Domino 8.5 : XPages dans Domino Designer 8.5 - Partie 6

LOT03P6 - Domino 8.5 : XPages dans Domino Designer 8.5 - Partie 6 LOT03P6 - Domino 8.5 : XPages dans Domino Designer 8.5 - Partie 6 Objectifs du développement en 8.5 Fournir un outil de développement moderne Faire pour les développeurs ce que Notes 8 a fait pour l'utilisateur

Plus en détail

Symfony 2. 1.Définition de symfony 2. 2.Installation. 3.Structure. 4.Symfony et les commandes

Symfony 2. 1.Définition de symfony 2. 2.Installation. 3.Structure. 4.Symfony et les commandes Symfony 2 Sommaire : 1.Définition de symfony 2 2.Installation 3.Structure 4.Symfony et les commandes 5.Le fonctionnement : le routeur (les url), les bundles, twig(templates) 6.L architecture de symfony2

Plus en détail

Rapport de stage. Développement d un logiciel de vidéoconférence : Enjeux 3. Guillaume DOTT 2009

Rapport de stage. Développement d un logiciel de vidéoconférence : Enjeux 3. Guillaume DOTT 2009 Rapport de stage Développement d un logiciel de vidéoconférence : Enjeux 3 Guillaume DOTT 2009 Maître de stage : Louis Poulette Tutrice : Marie-Paule Muller Remerciements Je tiens à remercier toute l équipe

Plus en détail

Programmation du Web : Présentation du Web dynamique

Programmation du Web : Présentation du Web dynamique Programmation du Web : Présentation du Web dynamique Jean-Baptiste Vioix (Jean-Baptiste.Vioix@u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-8 Présentation Nécessité du web dynamique

Plus en détail

CAHIER DES CHARGES. -Solution applicatives de gestion de ressources humaines. -Site intranet de notation de repas et d hôtels

CAHIER DES CHARGES. -Solution applicatives de gestion de ressources humaines. -Site intranet de notation de repas et d hôtels CAHIER DES CHARGES -Solution applicatives de gestion de ressources humaines -Site intranet de notation de repas et d hôtels Sommaire Contexte... 4 Maitrise d ouvrage... 4 Maitre d œuvre... 4 Présentation...

Plus en détail

Optimiser pour les appareils mobiles

Optimiser pour les appareils mobiles chapitre 6 Optimiser pour les appareils mobiles 6.1 Créer un site adapté aux terminaux mobiles avec jquery Mobile... 217 6.2 Transformer son site mobile en application native grâce à PhoneGap:Build...

Plus en détail

http://kerboriou.christophe.free.fr/ 0625725312 02 rue Edouard Vaillant, 44610 indre

http://kerboriou.christophe.free.fr/ 0625725312 02 rue Edouard Vaillant, 44610 indre CHRISTOPHE KERBORIOU ANALYSE PROGRAMMEUR 24 ans IUT NANTES kerboriou.christophe@free.fr 0625725312 02 rue Edouard Vaillant, 44610 indre Parcours universitaire IUT NANTES : 2006 Licence Professionnelle

Plus en détail

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage Technologies du Web Créer et héberger un site Web Page 1 / 26 Plan Planification Choisir une solution d hébergement Administration Développement du site Page 2 / 26 Cahier des charges Objectifs du site

Plus en détail

EXTENSION de Microsoft Dynamics CRM 2013. Réf FR 80452

EXTENSION de Microsoft Dynamics CRM 2013. Réf FR 80452 EXTENSION de Microsoft Dynamics CRM 2013 Réf FR 80452 Durée : 3 jours A propos de ce cours : Ce cours offre une information interactive et détaillée sur le développement d extensions pour Microsoft Dynamics

Plus en détail

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web. ASTRIUM - Toulouse JEE Formation 2013 TP JEE Développement Web en Java Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web. Figure 1 Architecture

Plus en détail

Développer de nouvelles fonctionnalités

Développer de nouvelles fonctionnalités 19 Développer de nouvelles fonctionnalités Chaque site e-commerce est unique. Bien que Magento soit une application riche, des besoins spécifiques apparaîtront et l ajout de modules deviendra nécessaire.

Plus en détail

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s Mickaël Mickaël BLANCHARD BLANCHARD Préface de Sébastien L e p e r s Magento Préface de Sébastien L e p e r s Magento Réussir son site e-commerce Réussir son site e-commerce Groupe Eyrolles, 2010, ISBN

Plus en détail

PLAN PROJET. Binôme ou monôme (B/M): M. : abdlhaqmilan@gmail.com GSM : 00212640108250. : Gestion d'une agence de location de voiture.

PLAN PROJET. Binôme ou monôme (B/M): M. : abdlhaqmilan@gmail.com GSM : 00212640108250. : Gestion d'une agence de location de voiture. Développement d une application JAVA EE PLAN PROJET Binôme ou monôme (B/M): M Nom & Prénom : AZRAGUE Abdelhaq Email : abdlhaqmilan@gmail.com GSM : 00212640108250 Organisme Scolaire : Gestion d'une agence

Plus en détail

Gestion du serveur WHS 2011

Gestion du serveur WHS 2011 Chapitre 15 Gestion du serveur WHS 2011 Les principales commandes Windows Home Server 2011 reprend l ergonomie de Windows 7 et intègre les principales commandes de Windows Server 2008 R2. Les commandes

Plus en détail

Guide d utilisation Plus de souplesse dans votre communication?

Guide d utilisation Plus de souplesse dans votre communication? Guide d utilisation Plus de souplesse dans votre communication? Un produit de la société Table des matières Table des matières... 2 Guide complet d utilisation... 3 Connexion à l administration i-flexo...

Plus en détail

Introduction à ADO.NET

Introduction à ADO.NET 1 Introduction à ADO.NET Introduction à ADO.NET Sommaire Introduction à ADO.NET... 1 1 Introduction... 2 1.1 Qu est ce que l ADO.NET?... 2 1.2 Les nouveautés d ADO.NET... 2 1.3 Les avantages d ADO.NET...

Plus en détail

Avant-Propos Sencha Touch

Avant-Propos Sencha Touch Avant-Propos Développeurs web, vous qui souhaitez vous diversifier et appréhender simplement le développement mobile, mais redoutez un apprentissage long d un langage que vous ne connaissez pas, vous allez

Plus en détail

INTEGRATEUR DEVELOPPEUR

INTEGRATEUR DEVELOPPEUR www.emweb.fr INTEGRATEUR DEVELOPPEUR FORMATION ELIGIBLE AU DIF/CIF DURÉE : 700 h de formation PRE REQUIS Avoir un esprit logique Etre motivé(e)! OBJECTIF A l issue de cette formation, vous serez capable

Plus en détail

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki Institut Supérieur de Gestion Cours pour 3 ème LFIG Java Enterprise Edition Introduction Bayoudhi Chaouki 1 Java EE - Objectifs Faciliter le développement de nouvelles applications à base de composants

Plus en détail

Rapport d Étude Pratique : Site Web pour conférence scientifique

Rapport d Étude Pratique : Site Web pour conférence scientifique Rapport d Étude Pratique : Site Web pour conférence scientifique Quentin Dufour, Thomas Hareau, Laurent Aymard, Jean Chorin Encadrant : Jean-François Dupuy 2015 Site Web de conférence scientifique 2 Résumé

Plus en détail

Gestion d une école. FABRE Maxime FOUCHE Alexis LEPOT Florian

Gestion d une école. FABRE Maxime FOUCHE Alexis LEPOT Florian Gestion d une école FABRE Maxime 2015 Sommaire Introduction... 2 I. Présentation du projet... 3 1- Lancement de l application... 3 Fonctionnalités réalisées... 4 A. Le serveur... 4 1 - Le réseau... 4 2

Plus en détail

Mise en œuvre des serveurs d application

Mise en œuvre des serveurs d application Nancy-Université Mise en œuvre des serveurs d application UE 203d Master 1 IST-IE Printemps 2008 Master 1 IST-IE : Mise en œuvre des serveurs d application 1/54 Ces transparents, ainsi que les énoncés

Plus en détail

Introduction à. Oracle Application Express

Introduction à. Oracle Application Express Introduction à Oracle Application Express Sommaire Qu est-ce que Oracle Application Express (APEX)? Vue d ensemble des fonctionnalités et des différents composants d Oracle APEX Démonstration de création

Plus en détail

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Module 1 : Programmer une application informatique Durée

Plus en détail

SITE WEB E-COMMERCE ET VENTE A DISTANCE

SITE WEB E-COMMERCE ET VENTE A DISTANCE Développement d une application JAVA EE SITE WEB E-COMMERCE ET VENTE A DISTANCE PLAN PROJET Binôme ou monôme (B/M): M Nom & Prénom : AIT NASSER Btissam Email : aitnasser.btissam123@gmail.com GSM : Organisme

Plus en détail

Programmation GWT 2. Développer des applications HTML5/JavaScript en Java avec Google Web Toolkit. 2 e édition. Sami Jaber

Programmation GWT 2. Développer des applications HTML5/JavaScript en Java avec Google Web Toolkit. 2 e édition. Sami Jaber Programmation GWT 2 Développer des applications HTML5/JavaScript en Java avec Google Web Toolkit 2 e édition Sami Jaber Groupe Eyrolles, 2012, ISBN : 978-2-212-13478-0 Table des matières Introduction à

Plus en détail

OpenText Content Server v10 Cours 3-0126 (ex 215)

OpenText Content Server v10 Cours 3-0126 (ex 215) v10 Cours 3-0126 (ex 215) Administration système et indexation-recherche Durée : 5 jours Ce cours de 5 jours apprendra aux administrateurs, aux architectes système et aux services support comment installer,

Plus en détail

Gestion de données complexes

Gestion de données complexes Master 2 Informatique Spécialité AIGLE Gestion de données complexes Amayas ABBOUTE Gilles ENTRINGER SOMMAIRE Sommaire i 1 - Introduction 1 2 - Technologies utilisées 2 2.1 API Jena........................................

Plus en détail

Création d un catalogue en ligne

Création d un catalogue en ligne 5 Création d un catalogue en ligne Au sommaire de ce chapitre Fonctionnement théorique Définition de jeux d enregistrements Insertion de contenu dynamique Aperçu des données Finalisation de la page de

Plus en détail

Unité de formation 1 : Structurer une application. Durée : 3 semaines

Unité de formation 1 : Structurer une application. Durée : 3 semaines PROGRAMME «DEVELOPPEUR LOGICIEL» Titre professionnel : «Développeur Logiciel» Inscrit au RNCP de niveau III (Bac+2) (JO du 23 Octobre 2007) (32 semaines) Unité de formation 1 : Structurer une application

Plus en détail

Application Web de gestion des formations (T09006)

Application Web de gestion des formations (T09006) Application Web de gestion des formations (T09006) Au sein d une équipe assurant des formations métier pour l un de nos clients grand compte, l objectif consiste à analyser les besoins, concevoir et implémenter

Plus en détail

Guide de démarrage Débuter avec e-monsite Les termes spécifiques à e-monsite

Guide de démarrage Débuter avec e-monsite Les termes spécifiques à e-monsite Guide de démarrage Débuter avec e-monsite... page 2 Les termes spécifiques à e-monsite... page 2 Le manager... page 2 Les modules... page 3 Les widgets... page 3 Les plugins... page 4 Ajouter du contenu...

Plus en détail

Site Web de paris sportifs

Site Web de paris sportifs Conception Nom HENAUD Benoît Numéro d auditeur 05-39166 Version V1.1 Date de mise à jour 15/05/2008 1/18 Table des matières 1. Objectif du document... 3 2. Architecture... 4 2.1. Contraintes techniques...

Plus en détail

THÉMATIQUES. Comprendre les frameworks productifs. Découvrir leurs usages. Synthèse

THÉMATIQUES. Comprendre les frameworks productifs. Découvrir leurs usages. Synthèse THÉMATIQUES Comprendre les frameworks productifs Découvrir leurs usages Synthèse 2 LES ENJEUX DES FRAMEWORKS D ENTREPRISE EN 2012 LE CONSTAT Ressources Recrutement Flexibilité Intérêt Montée en compétence

Plus en détail

Joomla : un système de gestion de contenu

Joomla : un système de gestion de contenu CHAPITRE 2 Joomla : un système de gestion de contenu Si SGC est l abréviation française pour système de gestion de contenu, l abréviation CMS de l anglais Content Management System est le terme le plus

Plus en détail

Refonte du Site Internet du

Refonte du Site Internet du Refonte du Site Internet du Par Zereyakob Makonnen & Sauvain Renaud Mandataire : Claudine Sauvain Supervisé par Nerima Luka Projet réalisé dans le cadre du cours de Nouvelles Technologies de l'information

Plus en détail

À qui s adresse ce livre? Suppléments web. Remerciements

À qui s adresse ce livre? Suppléments web. Remerciements Avant propos Le marché de la géolocalisation est en pleine effervescence, comme le prouve l annonce de lancement par Facebook, en août 2010, de son service Places, qui permet de partager sa position géographique

Plus en détail

NFP111 Systèmes et Applications Réparties

NFP111 Systèmes et Applications Réparties NFP111 Systèmes et Applications Réparties 1 de 38 NFP111 Systèmes et Applications Réparties Cours 11 - Les Enterprise Java Beans (Introduction aux Enterprise Claude Duvallet Université du Havre UFR Sciences

Plus en détail

Projet Covoiturage TP 1

Projet Covoiturage TP 1 Projet Covoiturage TP 1 Description du thème Ce TP est le premier d une série mettant en œuvre le développement mobile en utilisant la bibliothèque jquery Mobile. Propriétés Description Intitulé long Formation

Plus en détail

gcaddy Suite Description du produit

gcaddy Suite Description du produit gcaddy Suite Description du produit Version 1.0 www.gweb.be @ info@gweb.be TVA : BE-863.684.238 SNCI : 143-0617856-67 1 / 8 1 Description de gcaddy gcaddy est le module E-commerce de Gweb. Il se présente

Plus en détail

Visual Studio 2013 Concevoir et développer des projets Web, les gérer avec TFS 2013

Visual Studio 2013 Concevoir et développer des projets Web, les gérer avec TFS 2013 Introduction 1. Présentation du cas d étude 13 1.1 Présentation générale 13 1.2 Présentation des applications 13 2. Déroulement du projet 14 3. Pré-requis et fondamentaux techniques à connaître 15 3.1

Plus en détail

Manuel du rédacteur. Dernière mise à jour : le 14/04/2010

Manuel du rédacteur. Dernière mise à jour : le 14/04/2010 Manuel du rédacteur Dernière mise à jour : le 14/04/2010 Table des matières 1 PRÉSENTATION GÉNÉRALE... 3 2 L INTERFACE DE GESTION... 3 2.1 ACCÈS À L INTERFACE DE GESTION... 3 2.2 PRÉSENTATION GÉNÉRALE...

Plus en détail

GUIDE Outlook Version du 17 novembre 2010

GUIDE Outlook Version du 17 novembre 2010 GUIDE Outlook Version du 17 novembre 2010 Table des matières Qu est-ce qu Outlook?... 2 1. Découverte de l interface d Outlook... 2 2 Description de la liste des dossiers.... 3 3. Description des types

Plus en détail

Team Foundation Server Côté chef de projet

Team Foundation Server Côté chef de projet Team Foundation Server Côté chef de projet Version 1.0 Z Sylvain Lieu Franck Boisgibault 2 Chapitre 03 - Partie chef de projet Sommaire 1 Introduction... 3 2 Rôles et groupes... 4 2.1 Groupes par défaut...

Plus en détail

Présentation du produit. Introduction Fonctionnalités Technologies Open Source Avantages Services Éditions Licence Captures d écran

Présentation du produit. Introduction Fonctionnalités Technologies Open Source Avantages Services Éditions Licence Captures d écran Présentation du produit Introduction Fonctionnalités Technologies Open Source Avantages Services Éditions Licence Captures d écran Page 2 Page 3 Page 5 Page 6 Page 7 Page 8 Page 9 Page 10 Introduction

Plus en détail

Architecture technique des PGI

Architecture technique des PGI Architecture technique des PGI Description du thème Propriétés Description Intitulé long Formation concernée Matière Présentation Notions Transversalité Pré-requis Outils Mots-clés Durée Auteur(es) Version

Plus en détail

Guillaume MONTAVON Benoît MEILHAC. Rapport Technique du projet. Gestionnaire de tâches pour Android

Guillaume MONTAVON Benoît MEILHAC. Rapport Technique du projet. Gestionnaire de tâches pour Android Guillaume MONTAVON Benoît MEILHAC Rapport Technique du projet Gestionnaire de tâches pour Android Sommaire 1. Introduction... 3 2. Outils utilisés... 3 2.1. Android SDK... 3 2.2. Android dans Eclipse...

Plus en détail

GUIDE DE DEMARRAGE RAPIDE 4.5. FileAudit VERSION. www.isdecisions.com

GUIDE DE DEMARRAGE RAPIDE 4.5. FileAudit VERSION. www.isdecisions.com GUIDE DE DEMARRAGE RAPIDE FileAudit 4.5 VERSION www.isdecisions.com Introduction FileAudit surveille l accès ou les tentatives d accès aux fichiers et répertoires sensibles stockés sur vos systèmes Windows.

Plus en détail

Présentation d UnivAbsences Par MONJAL Guillaume, LAURENT Corentin, RAFAILLAC Maxime, RAOULT Benoit

Présentation d UnivAbsences Par MONJAL Guillaume, LAURENT Corentin, RAFAILLAC Maxime, RAOULT Benoit Gestion des absences de l Université d Angers Présentation d UnivAbsences Par MONJAL Guillaume, LAURENT Corentin, RAFAILLAC Maxime, RAOULT Benoit 1 POURQUOI? Pourquoi ce sujet? Sans ce projet Gestion des

Plus en détail

I N F O S T A N C E. Cahier de textes Rentrée 2009

I N F O S T A N C E. Cahier de textes Rentrée 2009 I N F O S T A N C E Cahier de textes Rentrée 2009 I N D E X INTRODUCTION... 4 PRESENTATION... 5 LES DROITS... 6 SAISIR UN CAHIER DE TEXTES... 7 SAISIE DU CAHIER DE TEXTES DEPUIS LE PLANNING... 7 Contenu

Plus en détail

Programmation Web. Madalina Croitoru IUT Montpellier

Programmation Web. Madalina Croitoru IUT Montpellier Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance

Plus en détail

ArcGis Viewer for Flex & ArcOpole

ArcGis Viewer for Flex & ArcOpole 17 Décembre 2012 11h45 FADDOUL Tanios Exposé de Génie Logiciel ArcGis Viewer for Flex & ArcOpole Sommaire Présentation générale Comparatif Développement d outils Conclusion 2 Présentation générale 3 Présentation

Plus en détail

PLATEFORME COLLABORATIVE &

PLATEFORME COLLABORATIVE & & PARTAGE D INFORMATIONS Cerpeg 2012 - Fabienne Mauri - Académie de Bordeaux page 1 SOMMAIRE Vue d ensemble... 3 PRÉSENTATION GÉNÉRALE... 3 LES MODULES / LES UTILISATEURS... 4 LES ACTIONS... 5 Gestion

Plus en détail