ECOM-M2PGI

=Étapes du projet= La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Le projet se conclut par une soutenance finale pour chaque partie (IHM et système).

Conduite de projet
Le projet eCOM est très court en durée. Il est préconisé d'utiliser la méthodologie Scrum pour la conduite du projet dans chaque groupe.

Critères d'évaluation
La conduite du projet sera principalement évaluée en fonction des critères suivants : Sur ces 2 premiers critères, vous n'en changez pas !!!
 * vous devez choisir un Scrum Master (unique ou tournant) : vous devez justifier votre choix
 * durée du sprint (idem : vous devez justifier votre choix)

Vous devez prévoir :
 * product backlog
 * sprint backlog
 * sprint planning
 * démos
 * rétrospectives

Pensez à créer un wiki qui regroupera l'ensemble de vos documentations. Cela doit être une documentation Agile !!!!

Un point de bonus pour ceux qui réussiront à mettre en place des "poker planning".

Etapes et documents demandés
Trois documents sont à produire : le cahier des charges (CDC), le dossier de conception IHM (à rédiger avant de développer l'IHM du site) et le document d'évaluation IHM. Les versions finales des deux premiers documents (CDC et dossier de conception IHM) sont à remettre une semaine avant les soutenances et le dossier d'évaluation, le jour de la soutenance.

Le détail sur l'organisation et l'évaluation du travail concernant les spécifications du site sera communiqué lors des premières séances de cours. En résumé :
 * Une fois le sujet choisi, analyser les sites "concurrents" et mener une enquête auprès d'utilisateurs représentatifs du futur site marchand, faire une analyse des données recueillies, en déduire les requis fonctionnels et non fonctionnels du site, identifier le modèle de l'utilisateur type, produire le modèle de tâches. Les analyses amont (sites concurrents et enquête) seront mises en annexe du CDC.
 * Définir une norme de présentation pour tous les documents du projet.
 * Ensuite, rédiger le cahier des charges. Bien penser à définir les priorités de développement. Des exemples des années précédentes seront consultables en séances d'audit.
 * Une fois le CDC validé, rédiger le dossier de conception IHM : IHM abstraite, IHM concrète, charte graphique.

Critères d'évaluation
La partie IHM du projet sera principalement évaluée en fonction des critères suivants :
 * Conformité de l'IHM concrète et abstraite avec le modèle de tâche
 * Couverture fonctionnelle de l'application et robustesse au regard des priorités que vous avez retenues
 * Qualité ergonomique au regard des principes vus en cours
 * Rigueur de la démarche

Partie Système
La partie Système est axée sur deux étapes successives.

Première étape
La première consiste à définir le cœur de l'application, c'est-à-dire le modèle de données et la logique métier, puis à réaliser un premier prototype qui démontre une bonne maîtrise des EJB (session et entity beans).

Il est vivement conseillé de définir le modèle de données aussi tôt que possible et d"en discuter avec les enseignants. Il est également recommandé de limiter le premier prototype à un sous-ensemble des spécifications fonctionnelles, à la fois assez vaste pour couvrir les principales difficultés techniques et assez léger pour respecter les délais imposés.

À ce stade, l'application est seulement accessible par l'intermédiaire d'un "client lourd" (programme java offrant une console en mode texte). En particulier, il n'est pas demandé, pour cette première étape, de réaliser une interface web pour interagir avec l'application. L'application doit cependant offrir deux interfaces (administrateur et consommateur) et exécuter les requêtes avec des garanties transactionnelles.

Une présentation/démonstration du prototype V1 sera réalisée à la fin de l'étape n°1.

Deuxième étape
La seconde étape consiste à compléter le premier prototype avec les objectifs suivants : Une présentation d'une mini-maquette d'interface web aura lieu au milieu de l'étape n°2.
 * ajout des beans nécessaires pour couvrir l'ensemble des spécifications fonctionnelles ;
 * développement d'une interface Web basée sur le modèle MVC ;
 * rédaction des documents demandés (voir ci-dessous) ;
 * modification de la configuration de déploiement : (1) client (lourd/léger) distant, (2) base de données externe (MySQL, Oracle, HSQL ...) et éventuellement distante ;
 * ajout éventuel de fonctionnalités non prioritaires.

Remarque : Aucune des phases du projet ne nécessite le développement d'un client lourd en mode graphique (SWT ...).

Documents demandés
Deux rapports doivent être rédigés pour la partie Système : un document de conception système et un document d'évaluation système.

Document de conception système
Le dossier de conception système (DCS) a pour but de permettre à toute personne de connaitre les principaux composants JEE de votre application ECOM. Cette connaissance doit pouvoir être acquise rapidement, sans avoir à entrer dans les détails de l'implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum). Le DCS est centré sur un schéma d'architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l'application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu'une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.

Pour chaque composant et lien du SAS, le DCS doit fournir :
 * Une description fonctionnelle : La description fonctionnelle d'un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu'il fournit. Attributs et méthodes seront associés à une courte description. Les besoins liées à la persistence ou aux aspects transactionnels peuvent également être explicités.
 * Une description d'implantation JEE : La description d'implantation décrit l'implantation du composant ou du lien dans l'environnement JEE. Un composant peut être implanté par un programme Java externe (client léger / client lourd JEE), par un servlet, par un bean ou par un objet POJO. Dans ces derniers cas, il faut préciser les caractéristiques des beans / POJO (local / distribué, session / évenementiel, stateful / stateless, etc). Un lien peut être implanté par une relation JEE, ou bien par conservation de référence de bean.

Document d'évaluation système
Le rapport final système du projet ECOM a pour but de préciser l’état d’avancement de votre application ECOM.

Le rapport final système doit préciser :
 * L’état de chaque composant : non réalisé, réalisé, réalisé et validé
 * Les fonctions réalisées, réalisées et testées, et celles restant à réaliser
 * Les propriétés non fonctionnelles garanties par votre réalisation, et celles restant à considérer pour finaliser votre application
 * Le temps consacré à la conception système
 * Le temps consacré au développement système
 * Les principales difficultés rencontrées

Critères d'évaluation
La partie système du projet sera principalement évaluée en fonction des critères suivants : En complément, les aspects suivants seront également considérés :
 * Conformité aux spécifications de l'application et aux consignes données dans le cadre du projet
 * Respect des échéances pour les différentes étapes du projet (y compris pour les prototypes intermédiaires et les documents)
 * Qualité de l'architecture de l'application
 * Qualité et robustesse du code applicatif
 * Compréhension des principaux concepts de la technologie JEE
 * Rigueur de la démarche de conception
 * Qualité des présentations/soutenances
 * Méthodologie de test
 * Déploiement et retrait de l'application sur/de la plateforme cloud (Azure) avec Roboconf (voir l'exemple avec LAMP)
 * Préparation d'images de VMs avec Kameleon
 * Performances (résultat du injection de charge avec Apache JMeter ou OW2 CLIF)
 * Supervision du système déployé avec des sondes Nagios ou Shinken conditionnées dans les VMs à déployer.
 * Utilisation (optionnelle) de technologies/APIs/frameworks avancés

Consignes spécifiques pour les soutenances IHM
Durée totale : 20 minutes
 * documents (version papier) à apporter : cahier des charges (version finale), dossier de conception IHM, dossier d'évaluation IHM
 * votre passage doit contenir une présentation globale du projet, le processus de conception (illustré), des évaluations, le bilan (point de vue IHM) et une démo PRÉPARÉE
 * arrivez avec l'application démarée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)
 * prévoyez 5 minutes de questions lors de votre passage

Consignes spécifiques pour les soutenances Système

 * Apportez un exemplaire du dossier d'évaluation système (déposé la veille sur Moodle) lors de la soutenance. Il n'est pas nécessaire d'apporter un exemplaire du dossier de conception système.
 * Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure avec le service développé.
 * Prévovez environ 30 minutes pour la présentation/démo/questions. Utilisez des transparents pour présenter votre projet.
 * Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s'exécuter sur une ou plusieurs instances Windows Azure.
 * Conditionnez le projet final sous la forme d’une archive (zip ou tar.gz) après avoir inclus la documentation (dans un repertoire /main/site). Utilisez la convention de nommage suivante : ecom_final_1213-X.zip où X correspond au nom du projet.
 * Déposez immédiatement après la soutenance (et en aucun cas après le 20 décembre) l'archive sur Moodle.
 * le rapport de charge (benchmark) doit être (MUST) fourni dans la documentation.
 * le rapport sur les métriques logicielles doit être (MUST) fourni dans la documentation.

=Organisation 2013-2014= EN COURS DE CONSTRUCTION

M2PGI
Equipe pédagogique: Noël de Palma (NdP), Frederic Dufau-Joel (FDJ), Sybille Caffiau (SC), Didier Donsez (DD), Sebastien Chassand-Barrioz (SCB), Ibrahim Safiedinne (FR)

Dates Importantes:
 * Semaine bloquée :   lundi 16 décembre - vendredi 20 décembre
 * Soutenances (IHM + système) :   vendredi 20 décembre


 * Remise du cahier des charges :   jeudi 24 octobre minuit (version electronique (pdf) à SC et NdP, avec "[M2PGI-ECOM]" dans le sujet)
 * Audit système : vendredi 22 nov 9h
 * Remise du dossier de conception IHM :   vendredi 13 décembre (version electronique (pdf) à SC, avec "[M2PGI-ECOM]" dans le sujet)
 * Remise du dossier d'évaluation IHM :   vendredi 20 décembre (lors de votre passage)


 * Remise du dossier de conception système :   vendredi 13 décembre (version electronique (pdf) à NdP, avec "[M2PGI-ECOM]" dans le sujet)
 * Remise du dossier d'évaluation système :   jeudi 20 décembre (lors de votre passage)

Séances:
 * 27 sept 9h-­‐12h15               Amphi 022, Boot Projet/JEE (NDP) [[File:jee.pdf]]
 * 27 sept 14h-17h15 		Amphi 022, cours Agile (FDJ) [[File:SCRUM.pdf]] [[File:KanbanAndScrum-French.pdf]]
 * 04 oct	08h-13h00   		Amphi 022, cours HTTP/servlets/JSP (DD)
 * 04 oct	14h-16h  		2 salles de TPs F104, F208, Support Syst. Cl&Alt (SCB/NDP)
 * 04 oct	16h-18h  		Amphi 022, cours Agile (FDJ)
 * 11 oct 	08h-13h 		       Amphi 022, cours IHM SC
 * 11 oct 	14h-17h15		Amphi 022, cours outils (DD)
 * 18 oct 	09h-12h15		Amphi 022, cours MVC/JSF/GWT (SCB)
 * 18 oct   14h-17h15 		3 salles de TPs F104, F214, F216, audit Agile, audit IHM et support système en //. Cl&Alt (SC, FDJ, SCB, NDP)
 * 8 nov 	9h-12h15 		salles de TPs F214, F208. Support système Cl&Alt (SCB)
 * 8 nov 	14h-17h15 		3 salles de TPs F104, F214, F216 (Cl&Alt), audit Agile (FDJ)
 * 15 nov   8h-9h15 		        F022, Amphi cours Cloud (IS ou NDP)
 * 15 nov   9h15h-11h30		salles de TPs F104, F208 (Cl&Alt). Support système (IS)
 * 15 nov   14h-17h15 		salles de TPs F104, F213, F216 (Cl&Alt). Audit Agile, audit IHM  et Support système en //. (SC, FDJ, SCB, NDP)
 * 22 nov   9h-12h15 		salles de TPs F215, F208 (Cl&Alt). Support système Cl&Alt (SCB).
 * 22 nov   14h-17h15 		salles de TPs F104, F214, F216 (Cl&Alt). Support système Cl&Alt (IS).
 * 29 nov   9h-12h15 		salles de TPs F214, F208 (Cl&Alt). Support système Cl&Alt (IS).
 * 29 nov  14h-17h15 		salles de TPs F104, F214, F216 (Cl&Alt). Audit Agile et audit IHM et support systeme en //. Cl&Alt. (SCB, SC, FDJ, NDP)
 * 6 dec 	9h-12h15 		salles de TPs F215, F208 (Cl&Alt). Support système (IS).
 * 6 dec 	14h-17h15 		salles de TPs F104, F112, F113,  (Cl&Alt). Audit Agile et support système CL&Alt (FDJ, NDP, SCB)
 * 13 dec   9h-12h15 		salles de TPs F214, F208 (Cl&Alt). Support système (IS).
 * 13 dec  14h-18h15 		salles de TPs F213, F214 (Cl&Alt). Audit Agile et support systeme en //. Cl&Alt. (SCB, SC, FDJ, NDP)

M2PGI Classique
IMPERATIF
 * le projet doit être (MUST) géré selon la méthode Scrum : le Scrum Master devra présenter le déroulement du projet.
 * le serveur JavaEE doit être (MUST) hébergé sur une instance Windows Azure à partir du compte étudiant Azure offert gratuitement en début de projet (la machine virtuelle peut etre de type Windows ou Linux).
 * un rapport de charge (benchmark) doit être (MUST) fourni : les outils JMeter ou Clif peuvent être utilisés.
 * un rapport sur les métriques logicielles doit être (MUST) fourni : l'outil Sonar peut être utilisé.

Ordre de passage :
 * Respectez l'ordre établi
 * Faites attention au temps. Vous disposez de 15 minutes par soutenance pour : votre présentation, la démo et les questions

ATTENTION : Si vous voulez modifier ce planning, vous devez : Aucune modification ne sera acceptée après le 18 décembre.
 * trouver un autre groupe avec qui échanger
 * vous assurer que tous les membres de ce groupe acceptent l'échange
 * envoyer un mail à SC et XS pour informer du changement (avec le chef de projet de l'autre groupe en copie)

=Documentation=

Transparents de cours

 * Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]
 * Cours JEE tiers presentation (SCB) : url
 * Cours GWT (SCB) : url
 * Cours maven (DD) : url
 * Cours versionning (DD) : url
 * Cours subversion (DD) : url
 * Cours forge (DD) : url
 * Cours http (DD) : url
 * Cours servlet (DD) : url

Squelette du projet
ecom-maven.zip Inaccessible

Doc utiles
http://proton.inrialpes.fr/~depalma/ecom/liens/liens.html
 * Documentation Easybeans (conteneur EJB3 utilis&eacute; par Jonas)
 * Tutorial JavaEE 6
 * Tutorial NetBean et JEE
 * API JavaEE 6
 * Sp&eacute;cifications JavaEE 6
 * JPA implementation patterns
 * Glossaire
 * Aide m&eacute;moire pour les annotations EJB3
 * Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html
 * Documentation et Training Kit sur Windows Azure : http://www.microsoft.com/en-us/download/details.aspx?id=8396
 * Documentation de Roboconf
 * Exemple avec LAMP http://roboconf.net/en/user-guide/lamp-example-part-1.html

Quelques livres
REMARQUE: les livres sur JavaEE se periment très vite avec l'évolution de la spécification
 * Java EE6 Cookbook for securing, tuning, and extending enterprise applications: http://www.packtpub.com/java-ee6-securing-tuning-extending-enterprise-applications-cookbook/book
 * Holly Cummins and Timothy Ward, Enterprise OSGi in Action, March, 2013, 400 pages, ISBN: 9781617290138, http://www.manning.com/cummins/ (chapitre 2, chapitre 10)
 * Debu Panda, Reza Rahman, Derek Lane, EJB 3 in Action, Pub Mannings, 2007, http://www.manning.com/panda/
 * Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan, EJB 3 in Action, Second Edition, Pub Mannings, 2011, http://www.manning.com/panda2/