ECOM

=Objectifs du projet= Le projet eCOM consiste à concevoir et développer une application de commerce électronique. Une motivation principale du projet eCOM est qu'il intègre dans sa mise en œuvre différentes thématiques étudiées dans les formations en informatique : en particulier, interfaces homme-machine, applications et architectures réparties, bases de données. Les aspects relatifs au génie logiciel sont également présents puisque le projet eCOM comprend la conception et la réalisation d'un produit logiciel qui satisfait certains critères de qualité (documentation, respect des normes, etc).

L'intégration de différentes thématiques présente les atouts suivants : En outre, une deuxième motivation forte du projet eCOM est qu'il intègre des technologies et des standards récents et largement utilisés dans le domaine des applications Internet. Ce projet permet plus précisément de se placer en tant qu'utilisateurs de la technologie JEE (Java Enterprise Edition) destinée à la réalisation de serveurs d'information ou de serveurs de commerce électronique à base de composants distribués, transactionnels et persistants. Les réalisateurs sont confrontés par ce biais à la manipulation de mécanismes et de fonctions générales d'un système réparti : gestion de la désignation de composants distribués, configuration d'une application distribuée, association de propriétés non fonctionnelles aux composants (persistance, transactions), gestion des images persistantes des composants (liaisons avec une base de données). Des extensions au projet sont décrites ici et seront réalisées lors du projet RICOM/GICOM au semestre 2.
 * Valorisation des enseignements acquis dans les différentes thématiques au profit d'un projet important et réaliste.
 * Appréhension des (inter)dépendances entre les thématiques.
 * Communications entre les différents réalisateurs du projet.

L'application réalisée devra offrir deux interfaces distinctes :
 * les administrateurs qui gèrent les stocks de produits, les comptes des utilisateurs de l'application et le suivi des commandes ;
 * les consommateurs/acheteurs qui peuvent consulter des articles, les placer dans leur caddie et valider une commande.

Chaque groupe devra élaborer un cahier des charges précis de l'application en termes de fonctionnalités et de critères d'ergonomie. Par ailleurs, le projet devra être réalisé en employant les méthodes et technologies présentées en cours. Ces différents aspects devront être validés par l'équipe pédagogique tout au long du projet.

=É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
 * Performances (résultat du injection de charge avec JMeter ou Clif)
 * Utilisation (optionnelle) de technologies/APIs/frameworks avancés

Consignes spécifiques pour les soutenances IHM
A REDIGER PAR SYBILLE

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 Amazon 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 Amazon.
 * 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 2012-2013=

M2PGI Apprenti
Equipe pédagogique: Noël de Palma (NdP), Sybille Caffiau (SC), Didier Donsez (DD), Sebastien Chassand-Barrioz (SCB), Fy RAVOAJANAHARY (FR)

Dates Importantes:
 * Démo système V1 alternant :   mardi 16 octobre
 * Démo système V2 alternant :   mardi 27 novembre
 * Semaine bloquée :   lundi 17 décembre - vendredi 21 décembre
 * Soutenances (IHM + système) :   vendredi 21 décembre


 * Remise du cahier des charges :   vendredi 14 décembre
 * Remise du dossier de conception IHM :   vendredi 14 décembre
 * Remise du dossier d'évaluation IHM :   jeudi 20 décembre


 * Remise du dossier de conception système :   vendredi 14 décembre
 * Remise du dossier d'évaluation système :   jeudi 20 décembre

Séances:
 * jeudi 6 septembre	       10h30-12h	F116	                présentation du projet	                        NDP
 * jeudi 6 septembre	       13h30-18h 	F116	                cours IHM	                                                SC
 * vendredi 7 septembre	08h-11h15	F114	               cours JEE	                                                NDP
 * vendredi 7 septembre	13h30-18h30	F114 	       cours outils + HTTP	                                        DD
 * jeudi 13 septembre	       08h-11h15	F211/F215	support système (installation JEE)	        SCB ou NDP
 * jeudi 13 septembre	       11h30-13h	Rien
 * jeudi 13 septembre	       13h30-16h45	F215	                support système (EJB) 	                        FR
 * vendredi 14 septembre	08h-13h	       F116	                cours HTTP/servlets/JSP + cours outils	DD
 * vendredi 14 septembre	13h30-16h45	F116	               cours MVC/JSF	                                        FR
 * jeudi 20 septembre	       17h-18h30	F217	                audits IHM	                                        SC
 * vendredi 21 septembre	09h-12h	       F215	                support système (technologies web)	        FR
 * vendredi 21 septembre	13h-16h	       F215	                support système (MVC)	                        FR
 * mardi 25 septembre	17h-18h30	F213/F217	support système	SCB
 * mardi 2 octobre	17h-18h30	F213/217	support système	FR
 * mardi 16 octobre	17h-18h30 	F213/217	support système + Demo V1	FR, NDP
 * mardi 23 octobre	17h-18h30	F213/217	audits IHM 	SC
 * mardi 6 novembre	17h-18h30	F216	 Support Système 	NDP
 * mardi 13 novembre	17h-18h30	F216	 Support système	FR
 * mardi 13 novembre	17h-18h30	F216	 audit IHM 	SC
 * mardi 20 novembre	17h-18h30	F213/F217	audits IHM	SC
 * mardi 27 novembre	17h-18h30	F213/F217	audits IHM + Demo v2	SC, NDP
 * lundi 17 décembre	13h30-18h30	F104/F217/F214
 * mardi 18 décembre	8h-13h	F104/F217/F214
 * mardi 18 décembre	13h30-18h30	F104/F217/F214
 * mercredi 19 décembre	8h-13h	F104/F217/F214
 * mercredi 19 décembre	13h30-18h30	F104/F217/F214
 * jeudi 20 décembre	8h-13h	F104/F217/F214
 * jeudi 20 décembre	13h30-18h30	F104/F217/F214
 * vendredi 21 décembre	8h-18h30	F213/F214/F217 soutenances IHM et système en parallèle	SC, FB, SCB, FR, NDP

Slides:
 * EJB [[File:ejb.pdf]]

M2PGI Classique
Equipe pédagogique: Noël de Palma (NdP), Sybille Caffiau (SC), Didier Donsez (DD), Sebastien Chassand-Barrioz (SCB), Fy RAVOAJANAHARY (FR)

Dates Importantes:


 * Démo système V1 classique :   jeudi 25 octobre
 * Démo système V2 classique :   jeudi 29 novembre
 * Semaine bloquée :   lundi 17 décembre - vendredi 21 décembre
 * Soutenances (IHM + système) :   vendredi 21 décembre


 * Remise du cahier des charges :   vendredi 14 décembre
 * Remise du dossier de conception IHM :   vendredi 14 décembre
 * Remise du dossier d'évaluation IHM :   jeudi 20 décembre


 * Remise du dossier de conception système :   vendredi 14 décembre
 * Remise du dossier d'évaluation système :   jeudi 20 décembre

Séances:
 * jeudi 27 septembre	8h-9h30	F117	présentation du projet	NDP
 * jeudi 27 septembre	9h45-11h15	F117	cours IHM n°1 	SC
 * jeudi 27 septembre	13h30-15h00	F117	cours JEE (1/2)	NDP
 * jeudi 27 septembre	15h15-16h45	F117	cours JEE (2/2)	NDP
 * jeudi 04 oct	8h-11h15	 F115	cours outils 	DD
 * jeudi 04 oct 	13h30-16h45	F215/F216	support système (installation JEE)	SCB
 * jeudi 11 octobre	8h-11h15	F115 	cours IHM n°2-3	SC
 * jeudi 11 octobre	17h-18h30	F215/F216      point avancement système	NDP
 * jeudi 11 octobre	17h-18h30	F215/F216	audits IHM	SC
 * jeudi 18 octobre	8h-11h15 	F115	 cours HTTP/servlets/JSP	DD
 * jeudi 18 octobre	14h00-16h45	F115	 cours MVC/JSF	FR
 * jeudi 25 octobre	8h-11h15 	F215/F216	démo V1 + support système 	SCB, NDP
 * jeudi 25 octobre    13h30-15h    F214/F216   Audit IHM	SC
 * jeudi 8 novembre	8h-11h15 	F215/F216	support système	SCB
 * jeudi 8 novembre 	9h45-11h15	F215/F216	audits IHM	SC
 * jeudi 15 novembre	8h-11h15	F215/F216	Support Système 	NDP
 * jeudi 22 novembre	8h-11h15	F215/F216	support système	SCB, NDP
 * jeudi 22 novembre	8h-9h30	F215/F216	audits IHM	SC
 * jeudi 29 novembre	8h-11h15 	F215/F216	démo V2 + support système	SCB, NDP
 * lundi 17 décembre	13h30-18h30	F104/F217/F214
 * mardi 18 décembre	8h-13h	F104/F217/F214
 * mardi 18 décembre	13h30-18h30	F104/F217/F214
 * mercredi 19 décembre	8h-13h	F104/F217/F214
 * mercredi 19 décembre	13h30-18h30	F104/F217/F214
 * jeudi 20 décembre	8h-13h	F104/F217/F214
 * jeudi 20 décembre	13h30-18h30	F104/F217/F214
 * vendredi 21 décembre	8h-18h30	F213/F214/F217 soutenances IHM et système en parallèle	SC, FB, SCB, FR, NDP

RICM5
Equipe pédagogique: Xavier Spengler (XS), Sybille Caffiau (SC), Didier Donsez (DD)

Dates Importantes:
 * Démo système V1 : ??
 * Démo système V2 : ??
 * Soutenances (IHM + système) : 19/12/2012 aprem ou 11/01/2013 aprem ou 18/01/2013 aprem
 * Remise du cahier des charges : 9/10/2012 (moodle)
 * Remise du dossier de conception IHM : ?? (moodle)
 * Remise du dossier d'évaluation IHM : ?? (moodle)
 * Remise du dossier de conception système : ?? (moodle)
 * Remise du dossier d'évaluation système : ?? (moodle)

Séances:
 * 25/09 Ma: Introduction 1H30 DD, CM Ergonomie 1H30 SC [[Media:PresentationECOM-RICM5-2012.pdf]]
 * 25/09 Ap: TD Ergonomie IHM 3h00 SC
 * 02/10 Ma: CM JavaEE & EJB 3h00 XS
 * 02/10 Ap: Install JavaEE, tutoriel EJB 3h00 XS
 * 09/10 Ma: CM Ergonomie IHM 3h00 SC
 * 09/10 Ap: TD Ergonomie IHM 1h30 SC, Tutoriel EJB 2h00 XS
 * 23/10 Ma: CM HTTP & Servlet/JSP 3h00 DD
 * 23/10 Ap: Tutoriel Servlet/JSP 3h00 XS
 * 06/11 Ma: TD JavaEE 3H00 XS
 * 13/11 Ma: En parallele : TD JavaEE 3H00 XS + TD Ergo IHM 3H00 SC
 * 20/11 Ma: TD JavaEE 3H00 XS
 * 20/11 Ap: En parallele : TD JavaEE 3H00 XS + TD Ergo IHM 3H00 SC
 * 27/11 Ma: En parallele : TD JavaEE 3H00 XS + TD Ergo IHM 3H00 SC
 * 27/11 Ap: TD JavaEE 3H00 XS
 * 04/12 Ma: En parallele : TD JavaEE 3H00 XS + TD Ergo IHM 3H00 SC
 * 04/12 Ap: TD JavaEE 3H00 XS
 * 11/12 Ma: En parallele : TD JavaEE 3H00 XS + TD Ergo IHM 3H00 SC
 * 18/12 Ma: TD Ergo IHM 3H00 SC
 * Soutenance le ???

Equipe

 * Rohart Bastien (Chef de projet)
 * Clerc Margaux
 * Plunet Arthur
 * Venandy Baptiste

Equipe

 * Adrien Pomaret (chef de projet)
 * Samantha Petit-Charles
 * Philippe Creignou

Equipe

 * Thibault ALLEGRE (Chef de projet)
 * Thibaut GUINOISEAU
 * Joseph VERDURAND

Groupe 1 : Vente à la criée

 * BISCH	 Simon
 * CHEVALLIER	Marie
 * FALL	Yacine
 * FOURURE	Florian

Groupe 2 :

 * DAUVERGNE	Léopold
 * ELOY	       Fabien
 * LEVEQUE	Florian
 * VIGIER	Sylvain

Pour le suivi du projet, c'est ici.

Groupe 3 : Lubyb

 * CLAVELIN	Aurélien
 * GNATTO-BAHIE	Christopher
 * HO	Minh Quan
 * PRAK	Soriya

Groupe 4 : Vente de Sapins de Noël
Ecom-sapins_de_noel_2012
 * CARAMELLI	 Noé-jean (chef de projet)
 * GU	Qikai
 * LU	Xiao

Groupe 5 : BookOnCloud

 * HARRACHE	Salem
 * PAZ	Elisabeth
 * RAOUX	Maxence
 * SEGALA-DUVERNEY	Joachim

Groupe 6 : Linux Store

 * MERCIER	Michael
 * OSWALD	Camille
 * WIRTH	Clément

Groupe 7 : Ecom-covoiturage

 * NICOLACCINI	Mickaël
 * NGOUALA	Rolly
 * ALEXANDRE Arthur

RICM5
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 Amazon EC2 à partir du compte EC2 créé en début de projet.
 * 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é.

=Documentation=

Transparents de cours

 * Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]
 * Cours IHM (SC) : url
 * Cours JSF (PR) : 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

Doc utiles

 * Documentation Easybeans (conteneur EJB3 utilis&eacute; par Jonas)
 * Tutorial JEE 5
 * Tutorial NetBean et JEE
 * API JEE 5
 * Sp&eacute;cifications JEE 5
 * [http://jcp.org/en/jsr/detail?id=220 Sp&eacute;cifications EJB3 (simplified API, persistence, ejbcore)|
 * JPA implementation patterns
 * Glossaire
 * Aide m&eacute;moire pour les annotations EJB3

http://proton.inrialpes.fr/~depalma/ecom/liens/liens.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