<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://air.imag.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sybille.Caffiau</id>
	<title>air - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://air.imag.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sybille.Caffiau"/>
	<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php/Special:Contributions/Sybille.Caffiau"/>
	<updated>2026-05-30T10:38:26Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=44048</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=44048"/>
		<updated>2018-12-18T08:23:03Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Rendus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* VZ : Vincent Zurczak (vzurczak@linagora.com)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&#039;&#039;&#039;Autres :&#039;&#039;&#039;&lt;br /&gt;
* ADE : Emploi du temps en ligne&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-1F0 2018-2019===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 18/09 à 8h.&lt;br /&gt;
&lt;br /&gt;
* [[ECOM-1FO_1819_Restaurant]] : &#039;&#039;&#039;William Weill (CP)&#039;&#039;&#039;, Théo Lévesque, Loris Gentillon, Benjamin Besnier, Thomas Ozenda&lt;br /&gt;
* [[ECOM-1FO_1819_Spectacle]] : &#039;&#039;&#039;Thibaud Vegreville (CP)&#039;&#039;&#039;, Joffrey Ferreira, Bastien Terrier, Cédric Lafrasse&lt;br /&gt;
* [[ECOM-1FO_1819_Camping]] : &#039;&#039;&#039;Timothée Depriester (CP)&#039;&#039;&#039;, Sekina Belguendouz, Servan Charlot, Samuel Bamba, Florian Cuzin&lt;br /&gt;
* [[ECOM-1FO_1819_Transport]] : &#039;&#039;&#039;Julien Courtial (CP)&#039;&#039;&#039;, Aurélien Surier, Raphaël Manger, Théo Echevet&lt;br /&gt;
* [[ECOM-1FO_1819_Sport]] : &#039;&#039;&#039;Hugo Gros-Daillon (CP)&#039;&#039;&#039;, Quentin Fombaron, Tim Lepage, Vincent Aubert&lt;br /&gt;
* [[ECOM-1F0_1819_BTB|ECOM-1FO_1819_BruleTaBuche]] : &#039;&#039;&#039;Léo Valette (CP)&#039;&#039;&#039;, Amina Boucherima, Zoran Chanet, Najwa Ez-zine, Enzo Molion&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2017-2018]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et VZ).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 18/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2018.pdf|transparents]]), CM [[Media:RestfulServices.pdf|REST]], [[MicroServices]], [[Spring]], [[JHipster]] (DD) (P005)&lt;br /&gt;
* 18/09 15h45-18h30 : (DD) Installation [[JHipster]] et [[Docker]]. Génération de l&#039;application MVP de eCOM, lancement du profile dev, lancement du profil prod (avec Docker), analyse de qualité du code (généré) avec le container SonarQube et déploiement sur Heroku de 2 applications (stage, production) (F214, F215).&lt;br /&gt;
&lt;br /&gt;
* 25/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P257)&lt;br /&gt;
* 25/09 15h45-18h30 :  Séance en autonomie (F114, F214)&lt;br /&gt;
&lt;br /&gt;
* 02/10 8h00-12h15 : Test utilisateur (SC) puis Séance en autonomie (P039)&lt;br /&gt;
* 02/10 15h45-18h30 : Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 09/10 8h00-12h15 : Audit 1 (P013) et Séance en autonomie (P105, P133)&lt;br /&gt;
* 09/10 15h45-18h30 :  Tests de robustesse (charges) (VZ)  (F114, F214)&lt;br /&gt;
&lt;br /&gt;
* 16/10 8h00-12h15 : Séance en autonomie (P257)&lt;br /&gt;
* 16/10 15h45-18h30 :  Séance encadrée (SC) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 23/10 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 23/10 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 06/11 8h00-12h15 : Audit 2 (F114) et Séance en autonomie (F202)&lt;br /&gt;
* 06/11 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 12/11  8h00-12h15 : Séance en autonomie (P257)&lt;br /&gt;
&lt;br /&gt;
* 20/11 8h00-12h15 : Séance en autonomie + Séance encadrée (SC) (P257)&lt;br /&gt;
* 20/11 15h45-18h30 :  Séance encadrée (VZ) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 27/11 15h45-18h30 :  Séance encadrée (VZ) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 04/12 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 04/12 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 11/12 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 11/12 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 18/12 8h00-12h15 : Soutenances (F114) et rendus finaux&lt;br /&gt;
* 18/12 15h45-18h30 :  Soutenances (F114) et rendus finaux&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie [[Spring Boot]] / [[JHipster]].&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]] sur plusieurs VM dans un cloud public (AWS, GAE, Heroku, Azure, Bluemix, Digital Ocean ...), le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 09 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 06 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 18 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
Attention : les concepts que vous avez vus en cours d&#039;architecture doivent être mis en application pour l&#039;architecture de votre projet. Une attention particulière sur ce point doit être portée lors de vos présentations à l&#039;audit 2 et à la soutenance. Le travail que vous présenterez fournira de support à l&#039;évaluation du module de GL.&lt;br /&gt;
&lt;br /&gt;
===Audit 1 ===&lt;br /&gt;
*Salle : P013&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- 8h35 : Restaurant &lt;br /&gt;
&lt;br /&gt;
- 9h10 : Spectacle&lt;br /&gt;
&lt;br /&gt;
- 9h45 : Camping&lt;br /&gt;
&lt;br /&gt;
- 10h20 : Transport&lt;br /&gt;
&lt;br /&gt;
- 10h55 : Sport &lt;br /&gt;
&lt;br /&gt;
- 11h30 : Brule ta bûche&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques et état de prise en main&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
* Modèle de tâches et IHMA pour les premières tâches&lt;br /&gt;
&lt;br /&gt;
===Audit 2 ===&lt;br /&gt;
*Salle : F114&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet : &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Architecture complète&lt;br /&gt;
* Procédure de tests&lt;br /&gt;
* Procédure d&#039;intégration du code &lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Entity, Ressources REST (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- 8h : Transport &lt;br /&gt;
&lt;br /&gt;
- 8h30 : Spectacle&lt;br /&gt;
&lt;br /&gt;
- 9h : Restaurant&lt;br /&gt;
&lt;br /&gt;
- 9h30 : Camping&lt;br /&gt;
&lt;br /&gt;
- 10h : Sport &lt;br /&gt;
&lt;br /&gt;
- 10h30 : Brule ta bûche&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : F114&lt;br /&gt;
* Durée totale : 30 min (max 15 minutes de présentation, min 5 minutes de démo) &lt;br /&gt;
* Utilisez des transparents pour présenter votre projet ( [[Media:Présentation RICM-2018.odp]]). Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- 8h : Sport &lt;br /&gt;
&lt;br /&gt;
- 8h35 : Restaurant &lt;br /&gt;
&lt;br /&gt;
- 9h10 : Spectacle&lt;br /&gt;
&lt;br /&gt;
- 9h45 : Camping&lt;br /&gt;
&lt;br /&gt;
- 10h20 : Transport&lt;br /&gt;
&lt;br /&gt;
- 11h : Brule ta bûche&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
Votre présentation doit suivre le template suivante : [[Media:Présentation RICM-2018.odp]]&lt;br /&gt;
Vous devez suivre l&#039;ordre dans lequel les items sont proposés mais vous pouvez ajouter des slides en cas de besoin pour illustrer (ex : pour expliquer votre processus).&lt;br /&gt;
Si vous avec des remarques/questions n&#039;attendez pas pour les poser&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et VZ pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Tout votre projet doit être suivi grâce à gitLab.&lt;br /&gt;
&lt;br /&gt;
A tout moment, les enseignants doivent donc pouvoir &lt;br /&gt;
* avoir la dernière version du code (dernière version du logiciel en production et ce qui est en cours de développement dans des branches dédiées)&lt;br /&gt;
* voir les tâches prévues/en cours/réalisées&lt;br /&gt;
* savoir le travail de chaque membre (effectué et assigné)&lt;br /&gt;
* consulter les documents de conception (à jour) &lt;br /&gt;
* consulter les CR des daily meeting et autres réunions et les rétrospectives et vos présentations aux différents audits&lt;br /&gt;
* avoir connaissance des procédures de qualité que vous mettez en place au sein de votre projet&lt;br /&gt;
* consulter les résultats des différents tests pour chaque release&lt;br /&gt;
&lt;br /&gt;
Attention : nous insistons particulièrement sur le fait que toutes ces données doivent être maintenues en temps réel et accessibles sur le gitlab de votre projet.&lt;br /&gt;
&lt;br /&gt;
Attention : nous consulterons également les messages de commit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Vous trouverez ci-dessous une liste (non exhaustive) de certains livrables pouvant être produits au sein de votre projet&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;. (obligatoire)&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Le Dossier de Conception Système (DCS) a pour but de permettre à toute personne de connaitre les principaux composants Spring de votre application ECOM. Cette connaissance doit pouvoir être acquise rapidement, sans avoir à entrer dans les détails de l&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation Spring : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;environnement Spring. Un composant peut être implanté par un client généré à partir de l&#039;interface de/des micro-services, par un micro-service REST (Controller), par un Service, par un Entity ou par un client Feign vers un micro-service externe au systeme (par exemple, service de paiement Swipe.com, ...).&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (tableau de tâches de Gitlab)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluations de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Evaluation de la cybersécurité du projet (option)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Evaluation des performances du projet (option)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Résultat d&#039;une injection de charge simpliste avec [[Gatling]]&lt;br /&gt;
* Résultat d&#039;une injection de charge suivant un scénario complet avec [[Gatling]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Gestion des risques (option)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Slides de présentation conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L19. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L20. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L21. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20182019-ECOM]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L22. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à utiliser un outil adapté cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
Vous devez utiliser GitLab comme support à votre projet (versioning, gestion des tâches...).&lt;br /&gt;
&lt;br /&gt;
Nous vous demandons également d&#039;utiliser les issues pour la communication avec les enseignants. En particulier, toute absence ou télétravail doit être signalé par ce média.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer un groupe GitLab. Y ajouter les membres du projet eCOM. Créer plusieurs projets pour les différents parties. Activer les notifications. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;est-à-dire le modèle de données (UML ou similaire [https://www.jhipster.tech/jdl/ JDL]) et la logique métier, puis à réaliser un premier prototype qui démontre une bonne maîtrise des Entity (annotations JAX-RS, annotations [[Swagger]]).&lt;br /&gt;
&lt;br /&gt;
L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl (généré avec le générateur [https://swagger.io/tools/swagger-codegen/ swagger-codegen]), [[Swagger]] UI, injecteur de charge [[Gatling]], ....) et le frontend AngularX que vous aurez généré avec [[JHipster]].&lt;br /&gt;
&lt;br /&gt;
Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et utilisateurs finaux) et exécuter certaines requêtes avec des garanties transactionnelles.&lt;br /&gt;
&lt;br /&gt;
TRES IMPORTANT : Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]]/IPtables pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, ...) pour la production (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] ou [[Nginx]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
# Génération et rafraichissement des certificats SSL avec [[Let&#039;s Encrypt]]&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec un FileStorageService ([https://www.callicoder.com/spring-boot-file-upload-download-rest-api-example/ lien]) &lt;br /&gt;
** Gestion adaptative des contenus multimedia (photos) avec un ThumbnailService (montrez l&#039;amélioration des performances avec Gatling)&lt;br /&gt;
** Gestion du cache client pour les photos et les thumbnails avec Cache-Control et ETag (montrez l&#039;amélioration des performances avec Gatling)&lt;br /&gt;
** Utilisation de mode Lazy pour les chargements (fetch) des collections et des médias (CLOB,BLOB).&lt;br /&gt;
** Génération d&#039;une application mobile [[Ionic]] avec [https://github.com/oktadeveloper/generator-jhipster-ionic generator-jhipster-ionic] (inclure les plugins [[Apache Cordova]] utiles à votre projet).&lt;br /&gt;
** Utilisation d&#039;un cache ([https://www.jhipster.tech/using-cache/ préconisé par JHipster])&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Génération de documents PDF à partir des valeurs de champs d&#039;une entité ou du collection d&#039;entités (exemple d&#039;applications : facture, dossard coureur, export RGPD, ...) [https://www.stackextend.com/java/generate-pdf-document-using-jasperreports-and-spring-boot/ lien]&lt;br /&gt;
** Import et export massifs de collections d&#039;entités en format CSV, JSON.&lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters/Aspects en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST avec [[Keycloak]] ou [[OKTA]].&lt;br /&gt;
** Utilisation du service de paiement Stripe.com en mode développeur&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Chatbot du helpdesk (comme [https://github.com/ovh-ux/ovh-chatbot ovh-chatbot])&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Minikube]], [[Kubernetes]], [[Rancher]] ou [[Docker Swarm]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers.&lt;br /&gt;
** Script périodique (crontab) de dump et de backup distant de la base MySQL.&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via le MailService, Thymeleaf et des taches @Scheduled&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS (si le destinataire a un compte gratuit pour l&#039;auto-réception de SMS)&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google, [https://www.jhipster.tech/heroku/ Heroku])&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]] ou [[Gatling]]) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le rolling update des composants répliqués (application, base de données, serveurs de mail, load balancer). Remarque: [[Kubernetes]] gère les rolling updates ([https://kubernetes.io/docs/tasks/run-application/rolling-update-replication-controller/ lien]).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom. JHipster génère le dockerfile de l&#039;application et quelques descripteurs docker-compose.&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]], [[Hawkular]], [[Telegraf]] + [[InfluxDB]] + [[Grafana]], [[Prometheus]] ...* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des mécanismes pour intégrer les besoins des utilisateurs&lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
===Evaluation des IHMs===&lt;br /&gt;
Une IHM doit être évaluée par au moins deux types d&#039;évaluation (en plus de l&#039;évaluation fonctionnelle) :&lt;br /&gt;
* évaluation experte pour vérifier que les principes fondamentaux d&#039;utilisabilité sont respectés&lt;br /&gt;
* tests utilisateur pour étudier comment vos utilisateurs utilise dans leurs contextes d&#039;utilisation votre interface&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2018-2019.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur ces technologies se périment très vite.&lt;br /&gt;
&lt;br /&gt;
====[[Spring]]====&lt;br /&gt;
* Bons tutoriels sur https://www.baeldung.com/rest-with-spring-series/&lt;br /&gt;
* Les manuels de références de Spring https://spring.io/projects/spring-boot#overview&lt;br /&gt;
* Craig Walls, Spring in Action, Fifth Edition, https://www.manning.com/books/spring-in-action-fifth-edition&lt;br /&gt;
&lt;br /&gt;
====[[JHipster]]====&lt;br /&gt;
* Matt Raible, The JHipster Mini-Book 4.5 (GRATUIT) https://www.infoq.com/minibooks/jhipster-4x-mini-book&lt;br /&gt;
* Deepu K Sasidharan, Sendil Kumar N, Full Stack Development with JHipster, (10 $ en promotion) March 2018, https://www.packtpub.com/application-development/full-stack-development-jhipster &lt;br /&gt;
&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:FicheEval20182019-ECOM.doc&amp;diff=44045</id>
		<title>File:FicheEval20182019-ECOM.doc</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:FicheEval20182019-ECOM.doc&amp;diff=44045"/>
		<updated>2018-12-18T08:01:21Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=44044</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=44044"/>
		<updated>2018-12-18T07:57:42Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Rendus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* VZ : Vincent Zurczak (vzurczak@linagora.com)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&#039;&#039;&#039;Autres :&#039;&#039;&#039;&lt;br /&gt;
* ADE : Emploi du temps en ligne&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-1F0 2018-2019===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 18/09 à 8h.&lt;br /&gt;
&lt;br /&gt;
* [[ECOM-1FO_1819_Restaurant]] : &#039;&#039;&#039;William Weill (CP)&#039;&#039;&#039;, Théo Lévesque, Loris Gentillon, Benjamin Besnier, Thomas Ozenda&lt;br /&gt;
* [[ECOM-1FO_1819_Spectacle]] : &#039;&#039;&#039;Thibaud Vegreville (CP)&#039;&#039;&#039;, Joffrey Ferreira, Bastien Terrier, Cédric Lafrasse&lt;br /&gt;
* [[ECOM-1FO_1819_Camping]] : &#039;&#039;&#039;Timothée Depriester (CP)&#039;&#039;&#039;, Sekina Belguendouz, Servan Charlot, Samuel Bamba, Florian Cuzin&lt;br /&gt;
* [[ECOM-1FO_1819_Transport]] : &#039;&#039;&#039;Julien Courtial (CP)&#039;&#039;&#039;, Aurélien Surier, Raphaël Manger, Théo Echevet&lt;br /&gt;
* [[ECOM-1FO_1819_Sport]] : &#039;&#039;&#039;Hugo Gros-Daillon (CP)&#039;&#039;&#039;, Quentin Fombaron, Tim Lepage, Vincent Aubert&lt;br /&gt;
* [[ECOM-1F0_1819_BTB|ECOM-1FO_1819_BruleTaBuche]] : &#039;&#039;&#039;Léo Valette (CP)&#039;&#039;&#039;, Amina Boucherima, Zoran Chanet, Najwa Ez-zine, Enzo Molion&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2017-2018]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et VZ).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 18/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2018.pdf|transparents]]), CM [[Media:RestfulServices.pdf|REST]], [[MicroServices]], [[Spring]], [[JHipster]] (DD) (P005)&lt;br /&gt;
* 18/09 15h45-18h30 : (DD) Installation [[JHipster]] et [[Docker]]. Génération de l&#039;application MVP de eCOM, lancement du profile dev, lancement du profil prod (avec Docker), analyse de qualité du code (généré) avec le container SonarQube et déploiement sur Heroku de 2 applications (stage, production) (F214, F215).&lt;br /&gt;
&lt;br /&gt;
* 25/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P257)&lt;br /&gt;
* 25/09 15h45-18h30 :  Séance en autonomie (F114, F214)&lt;br /&gt;
&lt;br /&gt;
* 02/10 8h00-12h15 : Test utilisateur (SC) puis Séance en autonomie (P039)&lt;br /&gt;
* 02/10 15h45-18h30 : Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 09/10 8h00-12h15 : Audit 1 (P013) et Séance en autonomie (P105, P133)&lt;br /&gt;
* 09/10 15h45-18h30 :  Tests de robustesse (charges) (VZ)  (F114, F214)&lt;br /&gt;
&lt;br /&gt;
* 16/10 8h00-12h15 : Séance en autonomie (P257)&lt;br /&gt;
* 16/10 15h45-18h30 :  Séance encadrée (SC) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 23/10 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 23/10 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 06/11 8h00-12h15 : Audit 2 (F114) et Séance en autonomie (F202)&lt;br /&gt;
* 06/11 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 12/11  8h00-12h15 : Séance en autonomie (P257)&lt;br /&gt;
&lt;br /&gt;
* 20/11 8h00-12h15 : Séance en autonomie + Séance encadrée (SC) (P257)&lt;br /&gt;
* 20/11 15h45-18h30 :  Séance encadrée (VZ) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 27/11 15h45-18h30 :  Séance encadrée (VZ) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 04/12 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 04/12 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 11/12 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 11/12 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 18/12 8h00-12h15 : Soutenances (F114) et rendus finaux&lt;br /&gt;
* 18/12 15h45-18h30 :  Soutenances (F114) et rendus finaux&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie [[Spring Boot]] / [[JHipster]].&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]] sur plusieurs VM dans un cloud public (AWS, GAE, Heroku, Azure, Bluemix, Digital Ocean ...), le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 09 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 06 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 18 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
Attention : les concepts que vous avez vus en cours d&#039;architecture doivent être mis en application pour l&#039;architecture de votre projet. Une attention particulière sur ce point doit être portée lors de vos présentations à l&#039;audit 2 et à la soutenance. Le travail que vous présenterez fournira de support à l&#039;évaluation du module de GL.&lt;br /&gt;
&lt;br /&gt;
===Audit 1 ===&lt;br /&gt;
*Salle : P013&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- 8h35 : Restaurant &lt;br /&gt;
&lt;br /&gt;
- 9h10 : Spectacle&lt;br /&gt;
&lt;br /&gt;
- 9h45 : Camping&lt;br /&gt;
&lt;br /&gt;
- 10h20 : Transport&lt;br /&gt;
&lt;br /&gt;
- 10h55 : Sport &lt;br /&gt;
&lt;br /&gt;
- 11h30 : Brule ta bûche&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques et état de prise en main&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
* Modèle de tâches et IHMA pour les premières tâches&lt;br /&gt;
&lt;br /&gt;
===Audit 2 ===&lt;br /&gt;
*Salle : F114&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet : &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Architecture complète&lt;br /&gt;
* Procédure de tests&lt;br /&gt;
* Procédure d&#039;intégration du code &lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Entity, Ressources REST (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- 8h : Transport &lt;br /&gt;
&lt;br /&gt;
- 8h30 : Spectacle&lt;br /&gt;
&lt;br /&gt;
- 9h : Restaurant&lt;br /&gt;
&lt;br /&gt;
- 9h30 : Camping&lt;br /&gt;
&lt;br /&gt;
- 10h : Sport &lt;br /&gt;
&lt;br /&gt;
- 10h30 : Brule ta bûche&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : F114&lt;br /&gt;
* Durée totale : 30 min (max 15 minutes de présentation, min 5 minutes de démo) &lt;br /&gt;
* Utilisez des transparents pour présenter votre projet ( [[Media:Présentation RICM-2018.odp]]). Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- 8h : Sport &lt;br /&gt;
&lt;br /&gt;
- 8h35 : Restaurant &lt;br /&gt;
&lt;br /&gt;
- 9h10 : Spectacle&lt;br /&gt;
&lt;br /&gt;
- 9h45 : Camping&lt;br /&gt;
&lt;br /&gt;
- 10h20 : Transport&lt;br /&gt;
&lt;br /&gt;
- 11h : Brule ta bûche&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
Votre présentation doit suivre le template suivante : [[Media:Présentation RICM-2018.odp]]&lt;br /&gt;
Vous devez suivre l&#039;ordre dans lequel les items sont proposés mais vous pouvez ajouter des slides en cas de besoin pour illustrer (ex : pour expliquer votre processus).&lt;br /&gt;
Si vous avec des remarques/questions n&#039;attendez pas pour les poser&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et VZ pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Tout votre projet doit être suivi grâce à gitLab.&lt;br /&gt;
&lt;br /&gt;
A tout moment, les enseignants doivent donc pouvoir &lt;br /&gt;
* avoir la dernière version du code (dernière version du logiciel en production et ce qui est en cours de développement dans des branches dédiées)&lt;br /&gt;
* voir les tâches prévues/en cours/réalisées&lt;br /&gt;
* savoir le travail de chaque membre (effectué et assigné)&lt;br /&gt;
* consulter les documents de conception (à jour) &lt;br /&gt;
* consulter les CR des daily meeting et autres réunions et les rétrospectives et vos présentations aux différents audits&lt;br /&gt;
* avoir connaissance des procédures de qualité que vous mettez en place au sein de votre projet&lt;br /&gt;
* consulter les résultats des différents tests pour chaque release&lt;br /&gt;
&lt;br /&gt;
Attention : nous insistons particulièrement sur le fait que toutes ces données doivent être maintenues en temps réel et accessibles sur le gitlab de votre projet.&lt;br /&gt;
&lt;br /&gt;
Attention : nous consulterons également les messages de commit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Vous trouverez ci-dessous une liste (non exhaustive) de certains livrables pouvant être produits au sein de votre projet&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;. (obligatoire)&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Le Dossier de Conception Système (DCS) a pour but de permettre à toute personne de connaitre les principaux composants Spring de votre application ECOM. Cette connaissance doit pouvoir être acquise rapidement, sans avoir à entrer dans les détails de l&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation Spring : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;environnement Spring. Un composant peut être implanté par un client généré à partir de l&#039;interface de/des micro-services, par un micro-service REST (Controller), par un Service, par un Entity ou par un client Feign vers un micro-service externe au systeme (par exemple, service de paiement Swipe.com, ...).&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (tableau de tâches de Gitlab)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Evaluation de la cybersécurité du projet (option)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Evaluation des performances du projet (option)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Résultat d&#039;une injection de charge simpliste avec [[Gatling]]&lt;br /&gt;
* Résultat d&#039;une injection de charge suivant un scénario complet avec [[Gatling]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Gestion des risques (option)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Slides de présentation conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L19. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L20. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L21. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20182019-ECOM]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L22. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à utiliser un outil adapté cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
Vous devez utiliser GitLab comme support à votre projet (versioning, gestion des tâches...).&lt;br /&gt;
&lt;br /&gt;
Nous vous demandons également d&#039;utiliser les issues pour la communication avec les enseignants. En particulier, toute absence ou télétravail doit être signalé par ce média.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer un groupe GitLab. Y ajouter les membres du projet eCOM. Créer plusieurs projets pour les différents parties. Activer les notifications. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;est-à-dire le modèle de données (UML ou similaire [https://www.jhipster.tech/jdl/ JDL]) et la logique métier, puis à réaliser un premier prototype qui démontre une bonne maîtrise des Entity (annotations JAX-RS, annotations [[Swagger]]).&lt;br /&gt;
&lt;br /&gt;
L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl (généré avec le générateur [https://swagger.io/tools/swagger-codegen/ swagger-codegen]), [[Swagger]] UI, injecteur de charge [[Gatling]], ....) et le frontend AngularX que vous aurez généré avec [[JHipster]].&lt;br /&gt;
&lt;br /&gt;
Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et utilisateurs finaux) et exécuter certaines requêtes avec des garanties transactionnelles.&lt;br /&gt;
&lt;br /&gt;
TRES IMPORTANT : Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]]/IPtables pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, ...) pour la production (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] ou [[Nginx]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
# Génération et rafraichissement des certificats SSL avec [[Let&#039;s Encrypt]]&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec un FileStorageService ([https://www.callicoder.com/spring-boot-file-upload-download-rest-api-example/ lien]) &lt;br /&gt;
** Gestion adaptative des contenus multimedia (photos) avec un ThumbnailService (montrez l&#039;amélioration des performances avec Gatling)&lt;br /&gt;
** Gestion du cache client pour les photos et les thumbnails avec Cache-Control et ETag (montrez l&#039;amélioration des performances avec Gatling)&lt;br /&gt;
** Utilisation de mode Lazy pour les chargements (fetch) des collections et des médias (CLOB,BLOB).&lt;br /&gt;
** Génération d&#039;une application mobile [[Ionic]] avec [https://github.com/oktadeveloper/generator-jhipster-ionic generator-jhipster-ionic] (inclure les plugins [[Apache Cordova]] utiles à votre projet).&lt;br /&gt;
** Utilisation d&#039;un cache ([https://www.jhipster.tech/using-cache/ préconisé par JHipster])&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Génération de documents PDF à partir des valeurs de champs d&#039;une entité ou du collection d&#039;entités (exemple d&#039;applications : facture, dossard coureur, export RGPD, ...) [https://www.stackextend.com/java/generate-pdf-document-using-jasperreports-and-spring-boot/ lien]&lt;br /&gt;
** Import et export massifs de collections d&#039;entités en format CSV, JSON.&lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters/Aspects en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST avec [[Keycloak]] ou [[OKTA]].&lt;br /&gt;
** Utilisation du service de paiement Stripe.com en mode développeur&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Chatbot du helpdesk (comme [https://github.com/ovh-ux/ovh-chatbot ovh-chatbot])&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Minikube]], [[Kubernetes]], [[Rancher]] ou [[Docker Swarm]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers.&lt;br /&gt;
** Script périodique (crontab) de dump et de backup distant de la base MySQL.&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via le MailService, Thymeleaf et des taches @Scheduled&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS (si le destinataire a un compte gratuit pour l&#039;auto-réception de SMS)&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google, [https://www.jhipster.tech/heroku/ Heroku])&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]] ou [[Gatling]]) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le rolling update des composants répliqués (application, base de données, serveurs de mail, load balancer). Remarque: [[Kubernetes]] gère les rolling updates ([https://kubernetes.io/docs/tasks/run-application/rolling-update-replication-controller/ lien]).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom. JHipster génère le dockerfile de l&#039;application et quelques descripteurs docker-compose.&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]], [[Hawkular]], [[Telegraf]] + [[InfluxDB]] + [[Grafana]], [[Prometheus]] ...* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des mécanismes pour intégrer les besoins des utilisateurs&lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
===Evaluation des IHMs===&lt;br /&gt;
Une IHM doit être évaluée par au moins deux types d&#039;évaluation (en plus de l&#039;évaluation fonctionnelle) :&lt;br /&gt;
* évaluation experte pour vérifier que les principes fondamentaux d&#039;utilisabilité sont respectés&lt;br /&gt;
* tests utilisateur pour étudier comment vos utilisateurs utilise dans leurs contextes d&#039;utilisation votre interface&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2018-2019.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur ces technologies se périment très vite.&lt;br /&gt;
&lt;br /&gt;
====[[Spring]]====&lt;br /&gt;
* Bons tutoriels sur https://www.baeldung.com/rest-with-spring-series/&lt;br /&gt;
* Les manuels de références de Spring https://spring.io/projects/spring-boot#overview&lt;br /&gt;
* Craig Walls, Spring in Action, Fifth Edition, https://www.manning.com/books/spring-in-action-fifth-edition&lt;br /&gt;
&lt;br /&gt;
====[[JHipster]]====&lt;br /&gt;
* Matt Raible, The JHipster Mini-Book 4.5 (GRATUIT) https://www.infoq.com/minibooks/jhipster-4x-mini-book&lt;br /&gt;
* Deepu K Sasidharan, Sendil Kumar N, Full Stack Development with JHipster, (10 $ en promotion) March 2018, https://www.packtpub.com/application-development/full-stack-development-jhipster &lt;br /&gt;
&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=43572</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=43572"/>
		<updated>2018-12-11T13:27:53Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Soutenance de fin de projet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* VZ : Vincent Zurczak (vzurczak@linagora.com)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&#039;&#039;&#039;Autres :&#039;&#039;&#039;&lt;br /&gt;
* ADE : Emploi du temps en ligne&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-1F0 2018-2019===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 18/09 à 8h.&lt;br /&gt;
&lt;br /&gt;
* [[ECOM-1FO_1819_Restaurant]] : &#039;&#039;&#039;William Weill (CP)&#039;&#039;&#039;, Théo Lévesque, Loris Gentillon, Benjamin Besnier, Thomas Ozenda&lt;br /&gt;
* [[ECOM-1FO_1819_Spectacle]] : &#039;&#039;&#039;Thibaud Vegreville (CP)&#039;&#039;&#039;, Joffrey Ferreira, Bastien Terrier, Cédric Lafrasse&lt;br /&gt;
* [[ECOM-1FO_1819_Camping]] : &#039;&#039;&#039;Timothée Depriester (CP)&#039;&#039;&#039;, Sekina Belguendouz, Servan Charlot, Samuel Bamba, Florian Cuzin&lt;br /&gt;
* [[ECOM-1FO_1819_Transport]] : &#039;&#039;&#039;Julien Courtial (CP)&#039;&#039;&#039;, Aurélien Surier, Raphaël Manger, Théo Echevet&lt;br /&gt;
* [[ECOM-1FO_1819_Sport]] : &#039;&#039;&#039;Hugo Gros-Daillon (CP)&#039;&#039;&#039;, Quentin Fombaron, Tim Lepage, Vincent Aubert&lt;br /&gt;
* [[ECOM-1F0_1819_BTB|ECOM-1FO_1819_BruleTaBuche]] : &#039;&#039;&#039;Léo Valette (CP)&#039;&#039;&#039;, Amina Boucherima, Zoran Chanet, Najwa Ez-zine, Enzo Molion&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2017-2018]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et VZ).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 18/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2018.pdf|transparents]]), CM [[Media:RestfulServices.pdf|REST]], [[MicroServices]], [[Spring]], [[JHipster]] (DD) (P005)&lt;br /&gt;
* 18/09 15h45-18h30 : (DD) Installation [[JHipster]] et [[Docker]]. Génération de l&#039;application MVP de eCOM, lancement du profile dev, lancement du profil prod (avec Docker), analyse de qualité du code (généré) avec le container SonarQube et déploiement sur Heroku de 2 applications (stage, production) (F214, F215).&lt;br /&gt;
&lt;br /&gt;
* 25/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P257)&lt;br /&gt;
* 25/09 15h45-18h30 :  Séance en autonomie (F114, F214)&lt;br /&gt;
&lt;br /&gt;
* 02/10 8h00-12h15 : Test utilisateur (SC) puis Séance en autonomie (P039)&lt;br /&gt;
* 02/10 15h45-18h30 : Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 09/10 8h00-12h15 : Audit 1 (P013) et Séance en autonomie (P105, P133)&lt;br /&gt;
* 09/10 15h45-18h30 :  Tests de robustesse (charges) (VZ)  (F114, F214)&lt;br /&gt;
&lt;br /&gt;
* 16/10 8h00-12h15 : Séance en autonomie (P257)&lt;br /&gt;
* 16/10 15h45-18h30 :  Séance encadrée (SC) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 23/10 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 23/10 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 06/11 8h00-12h15 : Audit 2 (F114) et Séance en autonomie (F202)&lt;br /&gt;
* 06/11 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 12/11  8h00-12h15 : Séance en autonomie (P257)&lt;br /&gt;
&lt;br /&gt;
* 20/11 8h00-12h15 : Séance en autonomie + Séance encadrée (SC) (P257)&lt;br /&gt;
* 20/11 15h45-18h30 :  Séance encadrée (VZ) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 27/11 15h45-18h30 :  Séance encadrée (VZ) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 04/12 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 04/12 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 11/12 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 11/12 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 18/12 8h00-12h15 : Soutenances (F114) et rendus finaux&lt;br /&gt;
* 18/12 15h45-18h30 :  Soutenances (F114) et rendus finaux&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie [[Spring Boot]] / [[JHipster]].&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]] sur plusieurs VM dans un cloud public (AWS, GAE, Heroku, Azure, Bluemix, Digital Ocean ...), le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 09 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 06 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 18 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
Attention : les concepts que vous avez vus en cours d&#039;architecture doivent être mis en application pour l&#039;architecture de votre projet. Une attention particulière sur ce point doit être portée lors de vos présentations à l&#039;audit 2 et à la soutenance. Le travail que vous présenterez fournira de support à l&#039;évaluation du module de GL.&lt;br /&gt;
&lt;br /&gt;
===Audit 1 ===&lt;br /&gt;
*Salle : P013&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- 8h35 : Restaurant &lt;br /&gt;
&lt;br /&gt;
- 9h10 : Spectacle&lt;br /&gt;
&lt;br /&gt;
- 9h45 : Camping&lt;br /&gt;
&lt;br /&gt;
- 10h20 : Transport&lt;br /&gt;
&lt;br /&gt;
- 10h55 : Sport &lt;br /&gt;
&lt;br /&gt;
- 11h30 : Brule ta bûche&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques et état de prise en main&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
* Modèle de tâches et IHMA pour les premières tâches&lt;br /&gt;
&lt;br /&gt;
===Audit 2 ===&lt;br /&gt;
*Salle : F114&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet : &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Architecture complète&lt;br /&gt;
* Procédure de tests&lt;br /&gt;
* Procédure d&#039;intégration du code &lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Entity, Ressources REST (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- 8h : Transport &lt;br /&gt;
&lt;br /&gt;
- 8h30 : Spectacle&lt;br /&gt;
&lt;br /&gt;
- 9h : Restaurant&lt;br /&gt;
&lt;br /&gt;
- 9h30 : Camping&lt;br /&gt;
&lt;br /&gt;
- 10h : Sport &lt;br /&gt;
&lt;br /&gt;
- 10h30 : Brule ta bûche&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : F114&lt;br /&gt;
* Durée totale : 30 min (max 15 minutes de présentation, min 5 minutes de démo) &lt;br /&gt;
* Utilisez des transparents pour présenter votre projet ( [[Media:Présentation RICM-2018.odp]]). Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- 8h : Sport &lt;br /&gt;
&lt;br /&gt;
- 8h35 : Restaurant &lt;br /&gt;
&lt;br /&gt;
- 9h10 : Spectacle&lt;br /&gt;
&lt;br /&gt;
- 9h45 : Camping&lt;br /&gt;
&lt;br /&gt;
- 10h20 : Transport&lt;br /&gt;
&lt;br /&gt;
- 11h : Brule ta bûche&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
Votre présentation doit suivre le template suivante : [[Media:Présentation RICM-2018.odp]]&lt;br /&gt;
Vous devez suivre l&#039;ordre dans lequel les items sont proposés mais vous pouvez ajouter des slides en cas de besoin pour illustrer (ex : pour expliquer votre processus).&lt;br /&gt;
Si vous avec des remarques/questions n&#039;attendez pas pour les poser&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et VZ pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Tout votre projet doit être suivi grâce à gitLab.&lt;br /&gt;
&lt;br /&gt;
A tout moment, les enseignants doivent donc pouvoir &lt;br /&gt;
* avoir la dernière version du code (dernière version du logiciel en production et ce qui est en cours de développement dans des branches dédiées)&lt;br /&gt;
* voir les tâches prévues/en cours/réalisées&lt;br /&gt;
* savoir le travail de chaque membre (effectué et assigné)&lt;br /&gt;
* consulter les documents de conception (à jour) &lt;br /&gt;
* consulter les CR des daily meeting et autres réunions et les rétrospectives et vos présentations aux différents audits&lt;br /&gt;
* avoir connaissance des procédures de qualité que vous mettez en place au sein de votre projet&lt;br /&gt;
* consulter les résultats des différents tests pour chaque release&lt;br /&gt;
&lt;br /&gt;
Attention : nous insistons particulièrement sur le fait que toutes ces données doivent être maintenues en temps réel et accessibles sur le gitlab de votre projet.&lt;br /&gt;
&lt;br /&gt;
Attention : nous consulterons également les messages de commit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Vous trouverez ci-dessous une liste (non exhaustive) de certains livrables pouvant être produits au sein de votre projet&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;. (obligatoire)&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Le Dossier de Conception Système (DCS) a pour but de permettre à toute personne de connaitre les principaux composants Spring de votre application ECOM. Cette connaissance doit pouvoir être acquise rapidement, sans avoir à entrer dans les détails de l&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation Spring : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;environnement Spring. Un composant peut être implanté par un client généré à partir de l&#039;interface de/des micro-services, par un micro-service REST (Controller), par un Service, par un Entity ou par un client Feign vers un micro-service externe au systeme (par exemple, service de paiement Swipe.com, ...).&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (tableau de tâches de Gitlab)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Evaluation de la cybersécurité du projet (option)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Evaluation des performances du projet (option)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Résultat d&#039;une injection de charge simpliste avec [[Gatling]]&lt;br /&gt;
* Résultat d&#039;une injection de charge suivant un scénario complet avec [[Gatling]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Gestion des risques (option)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Slides de présentation conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L19. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L20. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L21. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L22. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à utiliser un outil adapté cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
Vous devez utiliser GitLab comme support à votre projet (versioning, gestion des tâches...).&lt;br /&gt;
&lt;br /&gt;
Nous vous demandons également d&#039;utiliser les issues pour la communication avec les enseignants. En particulier, toute absence ou télétravail doit être signalé par ce média.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer un groupe GitLab. Y ajouter les membres du projet eCOM. Créer plusieurs projets pour les différents parties. Activer les notifications. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;est-à-dire le modèle de données (UML ou similaire [https://www.jhipster.tech/jdl/ JDL]) et la logique métier, puis à réaliser un premier prototype qui démontre une bonne maîtrise des Entity (annotations JAX-RS, annotations [[Swagger]]).&lt;br /&gt;
&lt;br /&gt;
L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl (généré avec le générateur [https://swagger.io/tools/swagger-codegen/ swagger-codegen]), [[Swagger]] UI, injecteur de charge [[Gatling]], ....) et le frontend AngularX que vous aurez généré avec [[JHipster]].&lt;br /&gt;
&lt;br /&gt;
Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et utilisateurs finaux) et exécuter certaines requêtes avec des garanties transactionnelles.&lt;br /&gt;
&lt;br /&gt;
TRES IMPORTANT : Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]]/IPtables pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, ...) pour la production (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] ou [[Nginx]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
# Génération et rafraichissement des certificats SSL avec [[Let&#039;s Encrypt]]&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec un FileStorageService ([https://www.callicoder.com/spring-boot-file-upload-download-rest-api-example/ lien]) &lt;br /&gt;
** Gestion adaptative des contenus multimedia (photos) avec un ThumbnailService (montrez l&#039;amélioration des performances avec Gatling)&lt;br /&gt;
** Gestion du cache client pour les photos et les thumbnails avec Cache-Control et ETag (montrez l&#039;amélioration des performances avec Gatling)&lt;br /&gt;
** Utilisation de mode Lazy pour les chargements (fetch) des collections et des médias (CLOB,BLOB).&lt;br /&gt;
** Génération d&#039;une application mobile [[Ionic]] avec [https://github.com/oktadeveloper/generator-jhipster-ionic generator-jhipster-ionic] (inclure les plugins [[Apache Cordova]] utiles à votre projet).&lt;br /&gt;
** Utilisation d&#039;un cache ([https://www.jhipster.tech/using-cache/ préconisé par JHipster])&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Génération de documents PDF à partir des valeurs de champs d&#039;une entité ou du collection d&#039;entités (exemple d&#039;applications : facture, dossard coureur, export RGPD, ...) [https://www.stackextend.com/java/generate-pdf-document-using-jasperreports-and-spring-boot/ lien]&lt;br /&gt;
** Import et export massifs de collections d&#039;entités en format CSV, JSON.&lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters/Aspects en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST avec [[Keycloak]] ou [[OKTA]].&lt;br /&gt;
** Utilisation du service de paiement Stripe.com en mode développeur&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Chatbot du helpdesk (comme [https://github.com/ovh-ux/ovh-chatbot ovh-chatbot])&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Minikube]], [[Kubernetes]], [[Rancher]] ou [[Docker Swarm]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers.&lt;br /&gt;
** Script périodique (crontab) de dump et de backup distant de la base MySQL.&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via le MailService, Thymeleaf et des taches @Scheduled&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS (si le destinataire a un compte gratuit pour l&#039;auto-réception de SMS)&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google, [https://www.jhipster.tech/heroku/ Heroku])&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]] ou [[Gatling]]) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le rolling update des composants répliqués (application, base de données, serveurs de mail, load balancer). Remarque: [[Kubernetes]] gère les rolling updates ([https://kubernetes.io/docs/tasks/run-application/rolling-update-replication-controller/ lien]).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom. JHipster génère le dockerfile de l&#039;application et quelques descripteurs docker-compose.&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]], [[Hawkular]], [[Telegraf]] + [[InfluxDB]] + [[Grafana]], [[Prometheus]] ...* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des mécanismes pour intégrer les besoins des utilisateurs&lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
===Evaluation des IHMs===&lt;br /&gt;
Une IHM doit être évaluée par au moins deux types d&#039;évaluation (en plus de l&#039;évaluation fonctionnelle) :&lt;br /&gt;
* évaluation experte pour vérifier que les principes fondamentaux d&#039;utilisabilité sont respectés&lt;br /&gt;
* tests utilisateur pour étudier comment vos utilisateurs utilise dans leurs contextes d&#039;utilisation votre interface&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2018-2019.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur ces technologies se périment très vite.&lt;br /&gt;
&lt;br /&gt;
====[[Spring]]====&lt;br /&gt;
* Bons tutoriels sur https://www.baeldung.com/rest-with-spring-series/&lt;br /&gt;
* Les manuels de références de Spring https://spring.io/projects/spring-boot#overview&lt;br /&gt;
* Craig Walls, Spring in Action, Fifth Edition, https://www.manning.com/books/spring-in-action-fifth-edition&lt;br /&gt;
&lt;br /&gt;
====[[JHipster]]====&lt;br /&gt;
* Matt Raible, The JHipster Mini-Book 4.5 (GRATUIT) https://www.infoq.com/minibooks/jhipster-4x-mini-book&lt;br /&gt;
* Deepu K Sasidharan, Sendil Kumar N, Full Stack Development with JHipster, (10 $ en promotion) March 2018, https://www.packtpub.com/application-development/full-stack-development-jhipster &lt;br /&gt;
&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=43571</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=43571"/>
		<updated>2018-12-11T13:17:28Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Soutenance de fin de projet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* VZ : Vincent Zurczak (vzurczak@linagora.com)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&#039;&#039;&#039;Autres :&#039;&#039;&#039;&lt;br /&gt;
* ADE : Emploi du temps en ligne&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-1F0 2018-2019===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 18/09 à 8h.&lt;br /&gt;
&lt;br /&gt;
* [[ECOM-1FO_1819_Restaurant]] : &#039;&#039;&#039;William Weill (CP)&#039;&#039;&#039;, Théo Lévesque, Loris Gentillon, Benjamin Besnier, Thomas Ozenda&lt;br /&gt;
* [[ECOM-1FO_1819_Spectacle]] : &#039;&#039;&#039;Thibaud Vegreville (CP)&#039;&#039;&#039;, Joffrey Ferreira, Bastien Terrier, Cédric Lafrasse&lt;br /&gt;
* [[ECOM-1FO_1819_Camping]] : &#039;&#039;&#039;Timothée Depriester (CP)&#039;&#039;&#039;, Sekina Belguendouz, Servan Charlot, Samuel Bamba, Florian Cuzin&lt;br /&gt;
* [[ECOM-1FO_1819_Transport]] : &#039;&#039;&#039;Julien Courtial (CP)&#039;&#039;&#039;, Aurélien Surier, Raphaël Manger, Théo Echevet&lt;br /&gt;
* [[ECOM-1FO_1819_Sport]] : &#039;&#039;&#039;Hugo Gros-Daillon (CP)&#039;&#039;&#039;, Quentin Fombaron, Tim Lepage, Vincent Aubert&lt;br /&gt;
* [[ECOM-1F0_1819_BTB|ECOM-1FO_1819_BruleTaBuche]] : &#039;&#039;&#039;Léo Valette (CP)&#039;&#039;&#039;, Amina Boucherima, Zoran Chanet, Najwa Ez-zine, Enzo Molion&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2017-2018]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et VZ).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 18/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2018.pdf|transparents]]), CM [[Media:RestfulServices.pdf|REST]], [[MicroServices]], [[Spring]], [[JHipster]] (DD) (P005)&lt;br /&gt;
* 18/09 15h45-18h30 : (DD) Installation [[JHipster]] et [[Docker]]. Génération de l&#039;application MVP de eCOM, lancement du profile dev, lancement du profil prod (avec Docker), analyse de qualité du code (généré) avec le container SonarQube et déploiement sur Heroku de 2 applications (stage, production) (F214, F215).&lt;br /&gt;
&lt;br /&gt;
* 25/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P257)&lt;br /&gt;
* 25/09 15h45-18h30 :  Séance en autonomie (F114, F214)&lt;br /&gt;
&lt;br /&gt;
* 02/10 8h00-12h15 : Test utilisateur (SC) puis Séance en autonomie (P039)&lt;br /&gt;
* 02/10 15h45-18h30 : Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 09/10 8h00-12h15 : Audit 1 (P013) et Séance en autonomie (P105, P133)&lt;br /&gt;
* 09/10 15h45-18h30 :  Tests de robustesse (charges) (VZ)  (F114, F214)&lt;br /&gt;
&lt;br /&gt;
* 16/10 8h00-12h15 : Séance en autonomie (P257)&lt;br /&gt;
* 16/10 15h45-18h30 :  Séance encadrée (SC) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 23/10 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 23/10 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 06/11 8h00-12h15 : Audit 2 (F114) et Séance en autonomie (F202)&lt;br /&gt;
* 06/11 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 12/11  8h00-12h15 : Séance en autonomie (P257)&lt;br /&gt;
&lt;br /&gt;
* 20/11 8h00-12h15 : Séance en autonomie + Séance encadrée (SC) (P257)&lt;br /&gt;
* 20/11 15h45-18h30 :  Séance encadrée (VZ) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 27/11 15h45-18h30 :  Séance encadrée (VZ) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 04/12 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 04/12 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 11/12 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 11/12 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 18/12 8h00-12h15 : Soutenances (F114) et rendus finaux&lt;br /&gt;
* 18/12 15h45-18h30 :  Soutenances (F114) et rendus finaux&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie [[Spring Boot]] / [[JHipster]].&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]] sur plusieurs VM dans un cloud public (AWS, GAE, Heroku, Azure, Bluemix, Digital Ocean ...), le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 09 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 06 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 18 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
Attention : les concepts que vous avez vus en cours d&#039;architecture doivent être mis en application pour l&#039;architecture de votre projet. Une attention particulière sur ce point doit être portée lors de vos présentations à l&#039;audit 2 et à la soutenance. Le travail que vous présenterez fournira de support à l&#039;évaluation du module de GL.&lt;br /&gt;
&lt;br /&gt;
===Audit 1 ===&lt;br /&gt;
*Salle : P013&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- 8h35 : Restaurant &lt;br /&gt;
&lt;br /&gt;
- 9h10 : Spectacle&lt;br /&gt;
&lt;br /&gt;
- 9h45 : Camping&lt;br /&gt;
&lt;br /&gt;
- 10h20 : Transport&lt;br /&gt;
&lt;br /&gt;
- 10h55 : Sport &lt;br /&gt;
&lt;br /&gt;
- 11h30 : Brule ta bûche&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques et état de prise en main&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
* Modèle de tâches et IHMA pour les premières tâches&lt;br /&gt;
&lt;br /&gt;
===Audit 2 ===&lt;br /&gt;
*Salle : F114&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet : &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Architecture complète&lt;br /&gt;
* Procédure de tests&lt;br /&gt;
* Procédure d&#039;intégration du code &lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Entity, Ressources REST (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- 8h : Transport &lt;br /&gt;
&lt;br /&gt;
- 8h30 : Spectacle&lt;br /&gt;
&lt;br /&gt;
- 9h : Restaurant&lt;br /&gt;
&lt;br /&gt;
- 9h30 : Camping&lt;br /&gt;
&lt;br /&gt;
- 10h : Sport &lt;br /&gt;
&lt;br /&gt;
- 10h30 : Brule ta bûche&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : F114&lt;br /&gt;
* Durée totale : 30 min (max 15 minutes de présentation, min 5 minutes de démo) &lt;br /&gt;
* Utilisez des transparents pour présenter votre projet. Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- 8h : Sport &lt;br /&gt;
&lt;br /&gt;
- 8h35 : Restaurant &lt;br /&gt;
&lt;br /&gt;
- 9h10 : Spectacle&lt;br /&gt;
&lt;br /&gt;
- 9h45 : Camping&lt;br /&gt;
&lt;br /&gt;
- 10h20 : Transport&lt;br /&gt;
&lt;br /&gt;
- 11h : Brule ta bûche&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
Votre présentation doit suivre le template suivante : [[Media:Présentation RICM-2018.odp]]&lt;br /&gt;
Vous devez suivre l&#039;ordre dans lequel les items sont proposés mais vous pouvez ajouter des slides en cas de besoin pour illustrer (ex : pour expliquer votre processus).&lt;br /&gt;
Si vous avec des remarques/questions n&#039;attendez pas pour les poser&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et VZ pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Tout votre projet doit être suivi grâce à gitLab.&lt;br /&gt;
&lt;br /&gt;
A tout moment, les enseignants doivent donc pouvoir &lt;br /&gt;
* avoir la dernière version du code (dernière version du logiciel en production et ce qui est en cours de développement dans des branches dédiées)&lt;br /&gt;
* voir les tâches prévues/en cours/réalisées&lt;br /&gt;
* savoir le travail de chaque membre (effectué et assigné)&lt;br /&gt;
* consulter les documents de conception (à jour) &lt;br /&gt;
* consulter les CR des daily meeting et autres réunions et les rétrospectives et vos présentations aux différents audits&lt;br /&gt;
* avoir connaissance des procédures de qualité que vous mettez en place au sein de votre projet&lt;br /&gt;
* consulter les résultats des différents tests pour chaque release&lt;br /&gt;
&lt;br /&gt;
Attention : nous insistons particulièrement sur le fait que toutes ces données doivent être maintenues en temps réel et accessibles sur le gitlab de votre projet.&lt;br /&gt;
&lt;br /&gt;
Attention : nous consulterons également les messages de commit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Vous trouverez ci-dessous une liste (non exhaustive) de certains livrables pouvant être produits au sein de votre projet&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;. (obligatoire)&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Le Dossier de Conception Système (DCS) a pour but de permettre à toute personne de connaitre les principaux composants Spring de votre application ECOM. Cette connaissance doit pouvoir être acquise rapidement, sans avoir à entrer dans les détails de l&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation Spring : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;environnement Spring. Un composant peut être implanté par un client généré à partir de l&#039;interface de/des micro-services, par un micro-service REST (Controller), par un Service, par un Entity ou par un client Feign vers un micro-service externe au systeme (par exemple, service de paiement Swipe.com, ...).&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (tableau de tâches de Gitlab)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Evaluation de la cybersécurité du projet (option)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Evaluation des performances du projet (option)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Résultat d&#039;une injection de charge simpliste avec [[Gatling]]&lt;br /&gt;
* Résultat d&#039;une injection de charge suivant un scénario complet avec [[Gatling]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Gestion des risques (option)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Slides de présentation conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L19. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L20. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L21. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L22. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à utiliser un outil adapté cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
Vous devez utiliser GitLab comme support à votre projet (versioning, gestion des tâches...).&lt;br /&gt;
&lt;br /&gt;
Nous vous demandons également d&#039;utiliser les issues pour la communication avec les enseignants. En particulier, toute absence ou télétravail doit être signalé par ce média.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer un groupe GitLab. Y ajouter les membres du projet eCOM. Créer plusieurs projets pour les différents parties. Activer les notifications. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;est-à-dire le modèle de données (UML ou similaire [https://www.jhipster.tech/jdl/ JDL]) et la logique métier, puis à réaliser un premier prototype qui démontre une bonne maîtrise des Entity (annotations JAX-RS, annotations [[Swagger]]).&lt;br /&gt;
&lt;br /&gt;
L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl (généré avec le générateur [https://swagger.io/tools/swagger-codegen/ swagger-codegen]), [[Swagger]] UI, injecteur de charge [[Gatling]], ....) et le frontend AngularX que vous aurez généré avec [[JHipster]].&lt;br /&gt;
&lt;br /&gt;
Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et utilisateurs finaux) et exécuter certaines requêtes avec des garanties transactionnelles.&lt;br /&gt;
&lt;br /&gt;
TRES IMPORTANT : Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]]/IPtables pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, ...) pour la production (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] ou [[Nginx]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
# Génération et rafraichissement des certificats SSL avec [[Let&#039;s Encrypt]]&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec un FileStorageService ([https://www.callicoder.com/spring-boot-file-upload-download-rest-api-example/ lien]) &lt;br /&gt;
** Gestion adaptative des contenus multimedia (photos) avec un ThumbnailService (montrez l&#039;amélioration des performances avec Gatling)&lt;br /&gt;
** Gestion du cache client pour les photos et les thumbnails avec Cache-Control et ETag (montrez l&#039;amélioration des performances avec Gatling)&lt;br /&gt;
** Utilisation de mode Lazy pour les chargements (fetch) des collections et des médias (CLOB,BLOB).&lt;br /&gt;
** Génération d&#039;une application mobile [[Ionic]] avec [https://github.com/oktadeveloper/generator-jhipster-ionic generator-jhipster-ionic] (inclure les plugins [[Apache Cordova]] utiles à votre projet).&lt;br /&gt;
** Utilisation d&#039;un cache ([https://www.jhipster.tech/using-cache/ préconisé par JHipster])&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Génération de documents PDF à partir des valeurs de champs d&#039;une entité ou du collection d&#039;entités (exemple d&#039;applications : facture, dossard coureur, export RGPD, ...) [https://www.stackextend.com/java/generate-pdf-document-using-jasperreports-and-spring-boot/ lien]&lt;br /&gt;
** Import et export massifs de collections d&#039;entités en format CSV, JSON.&lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters/Aspects en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST avec [[Keycloak]] ou [[OKTA]].&lt;br /&gt;
** Utilisation du service de paiement Stripe.com en mode développeur&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Chatbot du helpdesk (comme [https://github.com/ovh-ux/ovh-chatbot ovh-chatbot])&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Minikube]], [[Kubernetes]], [[Rancher]] ou [[Docker Swarm]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers.&lt;br /&gt;
** Script périodique (crontab) de dump et de backup distant de la base MySQL.&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via le MailService, Thymeleaf et des taches @Scheduled&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS (si le destinataire a un compte gratuit pour l&#039;auto-réception de SMS)&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google, [https://www.jhipster.tech/heroku/ Heroku])&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]] ou [[Gatling]]) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le rolling update des composants répliqués (application, base de données, serveurs de mail, load balancer). Remarque: [[Kubernetes]] gère les rolling updates ([https://kubernetes.io/docs/tasks/run-application/rolling-update-replication-controller/ lien]).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom. JHipster génère le dockerfile de l&#039;application et quelques descripteurs docker-compose.&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]], [[Hawkular]], [[Telegraf]] + [[InfluxDB]] + [[Grafana]], [[Prometheus]] ...* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des mécanismes pour intégrer les besoins des utilisateurs&lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
===Evaluation des IHMs===&lt;br /&gt;
Une IHM doit être évaluée par au moins deux types d&#039;évaluation (en plus de l&#039;évaluation fonctionnelle) :&lt;br /&gt;
* évaluation experte pour vérifier que les principes fondamentaux d&#039;utilisabilité sont respectés&lt;br /&gt;
* tests utilisateur pour étudier comment vos utilisateurs utilise dans leurs contextes d&#039;utilisation votre interface&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2018-2019.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur ces technologies se périment très vite.&lt;br /&gt;
&lt;br /&gt;
====[[Spring]]====&lt;br /&gt;
* Bons tutoriels sur https://www.baeldung.com/rest-with-spring-series/&lt;br /&gt;
* Les manuels de références de Spring https://spring.io/projects/spring-boot#overview&lt;br /&gt;
* Craig Walls, Spring in Action, Fifth Edition, https://www.manning.com/books/spring-in-action-fifth-edition&lt;br /&gt;
&lt;br /&gt;
====[[JHipster]]====&lt;br /&gt;
* Matt Raible, The JHipster Mini-Book 4.5 (GRATUIT) https://www.infoq.com/minibooks/jhipster-4x-mini-book&lt;br /&gt;
* Deepu K Sasidharan, Sendil Kumar N, Full Stack Development with JHipster, (10 $ en promotion) March 2018, https://www.packtpub.com/application-development/full-stack-development-jhipster &lt;br /&gt;
&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=43570</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=43570"/>
		<updated>2018-12-11T13:17:00Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Soutenance de fin de projet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* VZ : Vincent Zurczak (vzurczak@linagora.com)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&#039;&#039;&#039;Autres :&#039;&#039;&#039;&lt;br /&gt;
* ADE : Emploi du temps en ligne&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-1F0 2018-2019===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 18/09 à 8h.&lt;br /&gt;
&lt;br /&gt;
* [[ECOM-1FO_1819_Restaurant]] : &#039;&#039;&#039;William Weill (CP)&#039;&#039;&#039;, Théo Lévesque, Loris Gentillon, Benjamin Besnier, Thomas Ozenda&lt;br /&gt;
* [[ECOM-1FO_1819_Spectacle]] : &#039;&#039;&#039;Thibaud Vegreville (CP)&#039;&#039;&#039;, Joffrey Ferreira, Bastien Terrier, Cédric Lafrasse&lt;br /&gt;
* [[ECOM-1FO_1819_Camping]] : &#039;&#039;&#039;Timothée Depriester (CP)&#039;&#039;&#039;, Sekina Belguendouz, Servan Charlot, Samuel Bamba, Florian Cuzin&lt;br /&gt;
* [[ECOM-1FO_1819_Transport]] : &#039;&#039;&#039;Julien Courtial (CP)&#039;&#039;&#039;, Aurélien Surier, Raphaël Manger, Théo Echevet&lt;br /&gt;
* [[ECOM-1FO_1819_Sport]] : &#039;&#039;&#039;Hugo Gros-Daillon (CP)&#039;&#039;&#039;, Quentin Fombaron, Tim Lepage, Vincent Aubert&lt;br /&gt;
* [[ECOM-1F0_1819_BTB|ECOM-1FO_1819_BruleTaBuche]] : &#039;&#039;&#039;Léo Valette (CP)&#039;&#039;&#039;, Amina Boucherima, Zoran Chanet, Najwa Ez-zine, Enzo Molion&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2017-2018]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et VZ).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 18/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2018.pdf|transparents]]), CM [[Media:RestfulServices.pdf|REST]], [[MicroServices]], [[Spring]], [[JHipster]] (DD) (P005)&lt;br /&gt;
* 18/09 15h45-18h30 : (DD) Installation [[JHipster]] et [[Docker]]. Génération de l&#039;application MVP de eCOM, lancement du profile dev, lancement du profil prod (avec Docker), analyse de qualité du code (généré) avec le container SonarQube et déploiement sur Heroku de 2 applications (stage, production) (F214, F215).&lt;br /&gt;
&lt;br /&gt;
* 25/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P257)&lt;br /&gt;
* 25/09 15h45-18h30 :  Séance en autonomie (F114, F214)&lt;br /&gt;
&lt;br /&gt;
* 02/10 8h00-12h15 : Test utilisateur (SC) puis Séance en autonomie (P039)&lt;br /&gt;
* 02/10 15h45-18h30 : Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 09/10 8h00-12h15 : Audit 1 (P013) et Séance en autonomie (P105, P133)&lt;br /&gt;
* 09/10 15h45-18h30 :  Tests de robustesse (charges) (VZ)  (F114, F214)&lt;br /&gt;
&lt;br /&gt;
* 16/10 8h00-12h15 : Séance en autonomie (P257)&lt;br /&gt;
* 16/10 15h45-18h30 :  Séance encadrée (SC) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 23/10 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 23/10 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 06/11 8h00-12h15 : Audit 2 (F114) et Séance en autonomie (F202)&lt;br /&gt;
* 06/11 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 12/11  8h00-12h15 : Séance en autonomie (P257)&lt;br /&gt;
&lt;br /&gt;
* 20/11 8h00-12h15 : Séance en autonomie + Séance encadrée (SC) (P257)&lt;br /&gt;
* 20/11 15h45-18h30 :  Séance encadrée (VZ) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 27/11 15h45-18h30 :  Séance encadrée (VZ) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 04/12 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 04/12 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 11/12 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 11/12 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 18/12 8h00-12h15 : Soutenances (F114) et rendus finaux&lt;br /&gt;
* 18/12 15h45-18h30 :  Soutenances (F114) et rendus finaux&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie [[Spring Boot]] / [[JHipster]].&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]] sur plusieurs VM dans un cloud public (AWS, GAE, Heroku, Azure, Bluemix, Digital Ocean ...), le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 09 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 06 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 18 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
Attention : les concepts que vous avez vus en cours d&#039;architecture doivent être mis en application pour l&#039;architecture de votre projet. Une attention particulière sur ce point doit être portée lors de vos présentations à l&#039;audit 2 et à la soutenance. Le travail que vous présenterez fournira de support à l&#039;évaluation du module de GL.&lt;br /&gt;
&lt;br /&gt;
===Audit 1 ===&lt;br /&gt;
*Salle : P013&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- 8h35 : Restaurant &lt;br /&gt;
&lt;br /&gt;
- 9h10 : Spectacle&lt;br /&gt;
&lt;br /&gt;
- 9h45 : Camping&lt;br /&gt;
&lt;br /&gt;
- 10h20 : Transport&lt;br /&gt;
&lt;br /&gt;
- 10h55 : Sport &lt;br /&gt;
&lt;br /&gt;
- 11h30 : Brule ta bûche&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques et état de prise en main&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
* Modèle de tâches et IHMA pour les premières tâches&lt;br /&gt;
&lt;br /&gt;
===Audit 2 ===&lt;br /&gt;
*Salle : F114&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet : &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Architecture complète&lt;br /&gt;
* Procédure de tests&lt;br /&gt;
* Procédure d&#039;intégration du code &lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Entity, Ressources REST (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- 8h : Transport &lt;br /&gt;
&lt;br /&gt;
- 8h30 : Spectacle&lt;br /&gt;
&lt;br /&gt;
- 9h : Restaurant&lt;br /&gt;
&lt;br /&gt;
- 9h30 : Camping&lt;br /&gt;
&lt;br /&gt;
- 10h : Sport &lt;br /&gt;
&lt;br /&gt;
- 10h30 : Brule ta bûche&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : F114&lt;br /&gt;
* Durée totale : 30 min (max 15 minutes de présentation, min 5 minutes de démo) &lt;br /&gt;
* Utilisez des transparents pour présenter votre projet. Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- 8h : Sport &lt;br /&gt;
&lt;br /&gt;
- 8h35 : Restaurant &lt;br /&gt;
&lt;br /&gt;
- 9h10 : Spectacle&lt;br /&gt;
&lt;br /&gt;
- 9h45 : Camping&lt;br /&gt;
&lt;br /&gt;
- 10h20 : Transport&lt;br /&gt;
&lt;br /&gt;
- 11h : Brule ta bûche&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
Votre présentation doit suivre le template suivante : [[Media:Présentation RICM-2018.odp]&lt;br /&gt;
Vous devez suivre l&#039;ordre dans lequel les items sont proposés mais vous pouvez ajouter des slides en cas de besoin pour illustrer (ex : pour expliquer votre processus).&lt;br /&gt;
Si vous avec des remarques/questions n&#039;attendez pas pour les poser&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et VZ pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Tout votre projet doit être suivi grâce à gitLab.&lt;br /&gt;
&lt;br /&gt;
A tout moment, les enseignants doivent donc pouvoir &lt;br /&gt;
* avoir la dernière version du code (dernière version du logiciel en production et ce qui est en cours de développement dans des branches dédiées)&lt;br /&gt;
* voir les tâches prévues/en cours/réalisées&lt;br /&gt;
* savoir le travail de chaque membre (effectué et assigné)&lt;br /&gt;
* consulter les documents de conception (à jour) &lt;br /&gt;
* consulter les CR des daily meeting et autres réunions et les rétrospectives et vos présentations aux différents audits&lt;br /&gt;
* avoir connaissance des procédures de qualité que vous mettez en place au sein de votre projet&lt;br /&gt;
* consulter les résultats des différents tests pour chaque release&lt;br /&gt;
&lt;br /&gt;
Attention : nous insistons particulièrement sur le fait que toutes ces données doivent être maintenues en temps réel et accessibles sur le gitlab de votre projet.&lt;br /&gt;
&lt;br /&gt;
Attention : nous consulterons également les messages de commit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Vous trouverez ci-dessous une liste (non exhaustive) de certains livrables pouvant être produits au sein de votre projet&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;. (obligatoire)&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Le Dossier de Conception Système (DCS) a pour but de permettre à toute personne de connaitre les principaux composants Spring de votre application ECOM. Cette connaissance doit pouvoir être acquise rapidement, sans avoir à entrer dans les détails de l&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation Spring : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;environnement Spring. Un composant peut être implanté par un client généré à partir de l&#039;interface de/des micro-services, par un micro-service REST (Controller), par un Service, par un Entity ou par un client Feign vers un micro-service externe au systeme (par exemple, service de paiement Swipe.com, ...).&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (tableau de tâches de Gitlab)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Evaluation de la cybersécurité du projet (option)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Evaluation des performances du projet (option)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Résultat d&#039;une injection de charge simpliste avec [[Gatling]]&lt;br /&gt;
* Résultat d&#039;une injection de charge suivant un scénario complet avec [[Gatling]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Gestion des risques (option)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Slides de présentation conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L19. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L20. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L21. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L22. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à utiliser un outil adapté cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
Vous devez utiliser GitLab comme support à votre projet (versioning, gestion des tâches...).&lt;br /&gt;
&lt;br /&gt;
Nous vous demandons également d&#039;utiliser les issues pour la communication avec les enseignants. En particulier, toute absence ou télétravail doit être signalé par ce média.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer un groupe GitLab. Y ajouter les membres du projet eCOM. Créer plusieurs projets pour les différents parties. Activer les notifications. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;est-à-dire le modèle de données (UML ou similaire [https://www.jhipster.tech/jdl/ JDL]) et la logique métier, puis à réaliser un premier prototype qui démontre une bonne maîtrise des Entity (annotations JAX-RS, annotations [[Swagger]]).&lt;br /&gt;
&lt;br /&gt;
L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl (généré avec le générateur [https://swagger.io/tools/swagger-codegen/ swagger-codegen]), [[Swagger]] UI, injecteur de charge [[Gatling]], ....) et le frontend AngularX que vous aurez généré avec [[JHipster]].&lt;br /&gt;
&lt;br /&gt;
Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et utilisateurs finaux) et exécuter certaines requêtes avec des garanties transactionnelles.&lt;br /&gt;
&lt;br /&gt;
TRES IMPORTANT : Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]]/IPtables pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, ...) pour la production (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] ou [[Nginx]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
# Génération et rafraichissement des certificats SSL avec [[Let&#039;s Encrypt]]&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec un FileStorageService ([https://www.callicoder.com/spring-boot-file-upload-download-rest-api-example/ lien]) &lt;br /&gt;
** Gestion adaptative des contenus multimedia (photos) avec un ThumbnailService (montrez l&#039;amélioration des performances avec Gatling)&lt;br /&gt;
** Gestion du cache client pour les photos et les thumbnails avec Cache-Control et ETag (montrez l&#039;amélioration des performances avec Gatling)&lt;br /&gt;
** Utilisation de mode Lazy pour les chargements (fetch) des collections et des médias (CLOB,BLOB).&lt;br /&gt;
** Génération d&#039;une application mobile [[Ionic]] avec [https://github.com/oktadeveloper/generator-jhipster-ionic generator-jhipster-ionic] (inclure les plugins [[Apache Cordova]] utiles à votre projet).&lt;br /&gt;
** Utilisation d&#039;un cache ([https://www.jhipster.tech/using-cache/ préconisé par JHipster])&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Génération de documents PDF à partir des valeurs de champs d&#039;une entité ou du collection d&#039;entités (exemple d&#039;applications : facture, dossard coureur, export RGPD, ...) [https://www.stackextend.com/java/generate-pdf-document-using-jasperreports-and-spring-boot/ lien]&lt;br /&gt;
** Import et export massifs de collections d&#039;entités en format CSV, JSON.&lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters/Aspects en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST avec [[Keycloak]] ou [[OKTA]].&lt;br /&gt;
** Utilisation du service de paiement Stripe.com en mode développeur&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Chatbot du helpdesk (comme [https://github.com/ovh-ux/ovh-chatbot ovh-chatbot])&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Minikube]], [[Kubernetes]], [[Rancher]] ou [[Docker Swarm]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers.&lt;br /&gt;
** Script périodique (crontab) de dump et de backup distant de la base MySQL.&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via le MailService, Thymeleaf et des taches @Scheduled&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS (si le destinataire a un compte gratuit pour l&#039;auto-réception de SMS)&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google, [https://www.jhipster.tech/heroku/ Heroku])&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]] ou [[Gatling]]) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le rolling update des composants répliqués (application, base de données, serveurs de mail, load balancer). Remarque: [[Kubernetes]] gère les rolling updates ([https://kubernetes.io/docs/tasks/run-application/rolling-update-replication-controller/ lien]).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom. JHipster génère le dockerfile de l&#039;application et quelques descripteurs docker-compose.&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]], [[Hawkular]], [[Telegraf]] + [[InfluxDB]] + [[Grafana]], [[Prometheus]] ...* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des mécanismes pour intégrer les besoins des utilisateurs&lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
===Evaluation des IHMs===&lt;br /&gt;
Une IHM doit être évaluée par au moins deux types d&#039;évaluation (en plus de l&#039;évaluation fonctionnelle) :&lt;br /&gt;
* évaluation experte pour vérifier que les principes fondamentaux d&#039;utilisabilité sont respectés&lt;br /&gt;
* tests utilisateur pour étudier comment vos utilisateurs utilise dans leurs contextes d&#039;utilisation votre interface&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2018-2019.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur ces technologies se périment très vite.&lt;br /&gt;
&lt;br /&gt;
====[[Spring]]====&lt;br /&gt;
* Bons tutoriels sur https://www.baeldung.com/rest-with-spring-series/&lt;br /&gt;
* Les manuels de références de Spring https://spring.io/projects/spring-boot#overview&lt;br /&gt;
* Craig Walls, Spring in Action, Fifth Edition, https://www.manning.com/books/spring-in-action-fifth-edition&lt;br /&gt;
&lt;br /&gt;
====[[JHipster]]====&lt;br /&gt;
* Matt Raible, The JHipster Mini-Book 4.5 (GRATUIT) https://www.infoq.com/minibooks/jhipster-4x-mini-book&lt;br /&gt;
* Deepu K Sasidharan, Sendil Kumar N, Full Stack Development with JHipster, (10 $ en promotion) March 2018, https://www.packtpub.com/application-development/full-stack-development-jhipster &lt;br /&gt;
&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=43569</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=43569"/>
		<updated>2018-12-11T13:14:26Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Soutenance de fin de projet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* VZ : Vincent Zurczak (vzurczak@linagora.com)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&#039;&#039;&#039;Autres :&#039;&#039;&#039;&lt;br /&gt;
* ADE : Emploi du temps en ligne&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-1F0 2018-2019===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 18/09 à 8h.&lt;br /&gt;
&lt;br /&gt;
* [[ECOM-1FO_1819_Restaurant]] : &#039;&#039;&#039;William Weill (CP)&#039;&#039;&#039;, Théo Lévesque, Loris Gentillon, Benjamin Besnier, Thomas Ozenda&lt;br /&gt;
* [[ECOM-1FO_1819_Spectacle]] : &#039;&#039;&#039;Thibaud Vegreville (CP)&#039;&#039;&#039;, Joffrey Ferreira, Bastien Terrier, Cédric Lafrasse&lt;br /&gt;
* [[ECOM-1FO_1819_Camping]] : &#039;&#039;&#039;Timothée Depriester (CP)&#039;&#039;&#039;, Sekina Belguendouz, Servan Charlot, Samuel Bamba, Florian Cuzin&lt;br /&gt;
* [[ECOM-1FO_1819_Transport]] : &#039;&#039;&#039;Julien Courtial (CP)&#039;&#039;&#039;, Aurélien Surier, Raphaël Manger, Théo Echevet&lt;br /&gt;
* [[ECOM-1FO_1819_Sport]] : &#039;&#039;&#039;Hugo Gros-Daillon (CP)&#039;&#039;&#039;, Quentin Fombaron, Tim Lepage, Vincent Aubert&lt;br /&gt;
* [[ECOM-1F0_1819_BTB|ECOM-1FO_1819_BruleTaBuche]] : &#039;&#039;&#039;Léo Valette (CP)&#039;&#039;&#039;, Amina Boucherima, Zoran Chanet, Najwa Ez-zine, Enzo Molion&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2017-2018]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et VZ).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 18/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2018.pdf|transparents]]), CM [[Media:RestfulServices.pdf|REST]], [[MicroServices]], [[Spring]], [[JHipster]] (DD) (P005)&lt;br /&gt;
* 18/09 15h45-18h30 : (DD) Installation [[JHipster]] et [[Docker]]. Génération de l&#039;application MVP de eCOM, lancement du profile dev, lancement du profil prod (avec Docker), analyse de qualité du code (généré) avec le container SonarQube et déploiement sur Heroku de 2 applications (stage, production) (F214, F215).&lt;br /&gt;
&lt;br /&gt;
* 25/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P257)&lt;br /&gt;
* 25/09 15h45-18h30 :  Séance en autonomie (F114, F214)&lt;br /&gt;
&lt;br /&gt;
* 02/10 8h00-12h15 : Test utilisateur (SC) puis Séance en autonomie (P039)&lt;br /&gt;
* 02/10 15h45-18h30 : Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 09/10 8h00-12h15 : Audit 1 (P013) et Séance en autonomie (P105, P133)&lt;br /&gt;
* 09/10 15h45-18h30 :  Tests de robustesse (charges) (VZ)  (F114, F214)&lt;br /&gt;
&lt;br /&gt;
* 16/10 8h00-12h15 : Séance en autonomie (P257)&lt;br /&gt;
* 16/10 15h45-18h30 :  Séance encadrée (SC) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 23/10 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 23/10 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 06/11 8h00-12h15 : Audit 2 (F114) et Séance en autonomie (F202)&lt;br /&gt;
* 06/11 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 12/11  8h00-12h15 : Séance en autonomie (P257)&lt;br /&gt;
&lt;br /&gt;
* 20/11 8h00-12h15 : Séance en autonomie + Séance encadrée (SC) (P257)&lt;br /&gt;
* 20/11 15h45-18h30 :  Séance encadrée (VZ) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 27/11 15h45-18h30 :  Séance encadrée (VZ) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 04/12 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 04/12 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 11/12 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 11/12 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 18/12 8h00-12h15 : Soutenances (F114) et rendus finaux&lt;br /&gt;
* 18/12 15h45-18h30 :  Soutenances (F114) et rendus finaux&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie [[Spring Boot]] / [[JHipster]].&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]] sur plusieurs VM dans un cloud public (AWS, GAE, Heroku, Azure, Bluemix, Digital Ocean ...), le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 09 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 06 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 18 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
Attention : les concepts que vous avez vus en cours d&#039;architecture doivent être mis en application pour l&#039;architecture de votre projet. Une attention particulière sur ce point doit être portée lors de vos présentations à l&#039;audit 2 et à la soutenance. Le travail que vous présenterez fournira de support à l&#039;évaluation du module de GL.&lt;br /&gt;
&lt;br /&gt;
===Audit 1 ===&lt;br /&gt;
*Salle : P013&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- 8h35 : Restaurant &lt;br /&gt;
&lt;br /&gt;
- 9h10 : Spectacle&lt;br /&gt;
&lt;br /&gt;
- 9h45 : Camping&lt;br /&gt;
&lt;br /&gt;
- 10h20 : Transport&lt;br /&gt;
&lt;br /&gt;
- 10h55 : Sport &lt;br /&gt;
&lt;br /&gt;
- 11h30 : Brule ta bûche&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques et état de prise en main&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
* Modèle de tâches et IHMA pour les premières tâches&lt;br /&gt;
&lt;br /&gt;
===Audit 2 ===&lt;br /&gt;
*Salle : F114&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet : &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Architecture complète&lt;br /&gt;
* Procédure de tests&lt;br /&gt;
* Procédure d&#039;intégration du code &lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Entity, Ressources REST (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- 8h : Transport &lt;br /&gt;
&lt;br /&gt;
- 8h30 : Spectacle&lt;br /&gt;
&lt;br /&gt;
- 9h : Restaurant&lt;br /&gt;
&lt;br /&gt;
- 9h30 : Camping&lt;br /&gt;
&lt;br /&gt;
- 10h : Sport &lt;br /&gt;
&lt;br /&gt;
- 10h30 : Brule ta bûche&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : P&lt;br /&gt;
* Durée totale : 30 min (max 15 minutes de présentation, min 5 minutes de démo) &lt;br /&gt;
* Utilisez des transparents pour présenter votre projet. Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- 8h : Sport &lt;br /&gt;
&lt;br /&gt;
- 8h35 : Restaurant &lt;br /&gt;
&lt;br /&gt;
- 9h10 : Spectacle&lt;br /&gt;
&lt;br /&gt;
- 9h45 : Camping&lt;br /&gt;
&lt;br /&gt;
- 10h20 : Transport&lt;br /&gt;
&lt;br /&gt;
- 11h : Brule ta bûche&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
Votre présentation doit suivre le template suivante : &lt;br /&gt;
Vous devez suivre l&#039;ordre dans lequel les items sont proposés mais vous pouvez ajouter des slides en cas de besoin pour illustrer (ex : pour expliquer votre processus).&lt;br /&gt;
Si vous avec des remarques/questions n&#039;attendez pas pour les poser&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et VZ pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Tout votre projet doit être suivi grâce à gitLab.&lt;br /&gt;
&lt;br /&gt;
A tout moment, les enseignants doivent donc pouvoir &lt;br /&gt;
* avoir la dernière version du code (dernière version du logiciel en production et ce qui est en cours de développement dans des branches dédiées)&lt;br /&gt;
* voir les tâches prévues/en cours/réalisées&lt;br /&gt;
* savoir le travail de chaque membre (effectué et assigné)&lt;br /&gt;
* consulter les documents de conception (à jour) &lt;br /&gt;
* consulter les CR des daily meeting et autres réunions et les rétrospectives et vos présentations aux différents audits&lt;br /&gt;
* avoir connaissance des procédures de qualité que vous mettez en place au sein de votre projet&lt;br /&gt;
* consulter les résultats des différents tests pour chaque release&lt;br /&gt;
&lt;br /&gt;
Attention : nous insistons particulièrement sur le fait que toutes ces données doivent être maintenues en temps réel et accessibles sur le gitlab de votre projet.&lt;br /&gt;
&lt;br /&gt;
Attention : nous consulterons également les messages de commit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Vous trouverez ci-dessous une liste (non exhaustive) de certains livrables pouvant être produits au sein de votre projet&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;. (obligatoire)&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Le Dossier de Conception Système (DCS) a pour but de permettre à toute personne de connaitre les principaux composants Spring de votre application ECOM. Cette connaissance doit pouvoir être acquise rapidement, sans avoir à entrer dans les détails de l&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation Spring : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;environnement Spring. Un composant peut être implanté par un client généré à partir de l&#039;interface de/des micro-services, par un micro-service REST (Controller), par un Service, par un Entity ou par un client Feign vers un micro-service externe au systeme (par exemple, service de paiement Swipe.com, ...).&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (tableau de tâches de Gitlab)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Evaluation de la cybersécurité du projet (option)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Evaluation des performances du projet (option)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Résultat d&#039;une injection de charge simpliste avec [[Gatling]]&lt;br /&gt;
* Résultat d&#039;une injection de charge suivant un scénario complet avec [[Gatling]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Gestion des risques (option)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Slides de présentation conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L19. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L20. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L21. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L22. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à utiliser un outil adapté cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
Vous devez utiliser GitLab comme support à votre projet (versioning, gestion des tâches...).&lt;br /&gt;
&lt;br /&gt;
Nous vous demandons également d&#039;utiliser les issues pour la communication avec les enseignants. En particulier, toute absence ou télétravail doit être signalé par ce média.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer un groupe GitLab. Y ajouter les membres du projet eCOM. Créer plusieurs projets pour les différents parties. Activer les notifications. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;est-à-dire le modèle de données (UML ou similaire [https://www.jhipster.tech/jdl/ JDL]) et la logique métier, puis à réaliser un premier prototype qui démontre une bonne maîtrise des Entity (annotations JAX-RS, annotations [[Swagger]]).&lt;br /&gt;
&lt;br /&gt;
L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl (généré avec le générateur [https://swagger.io/tools/swagger-codegen/ swagger-codegen]), [[Swagger]] UI, injecteur de charge [[Gatling]], ....) et le frontend AngularX que vous aurez généré avec [[JHipster]].&lt;br /&gt;
&lt;br /&gt;
Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et utilisateurs finaux) et exécuter certaines requêtes avec des garanties transactionnelles.&lt;br /&gt;
&lt;br /&gt;
TRES IMPORTANT : Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]]/IPtables pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, ...) pour la production (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] ou [[Nginx]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
# Génération et rafraichissement des certificats SSL avec [[Let&#039;s Encrypt]]&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec un FileStorageService ([https://www.callicoder.com/spring-boot-file-upload-download-rest-api-example/ lien]) &lt;br /&gt;
** Gestion adaptative des contenus multimedia (photos) avec un ThumbnailService (montrez l&#039;amélioration des performances avec Gatling)&lt;br /&gt;
** Gestion du cache client pour les photos et les thumbnails avec Cache-Control et ETag (montrez l&#039;amélioration des performances avec Gatling)&lt;br /&gt;
** Utilisation de mode Lazy pour les chargements (fetch) des collections et des médias (CLOB,BLOB).&lt;br /&gt;
** Génération d&#039;une application mobile [[Ionic]] avec [https://github.com/oktadeveloper/generator-jhipster-ionic generator-jhipster-ionic] (inclure les plugins [[Apache Cordova]] utiles à votre projet).&lt;br /&gt;
** Utilisation d&#039;un cache ([https://www.jhipster.tech/using-cache/ préconisé par JHipster])&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Génération de documents PDF à partir des valeurs de champs d&#039;une entité ou du collection d&#039;entités (exemple d&#039;applications : facture, dossard coureur, export RGPD, ...) [https://www.stackextend.com/java/generate-pdf-document-using-jasperreports-and-spring-boot/ lien]&lt;br /&gt;
** Import et export massifs de collections d&#039;entités en format CSV, JSON.&lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters/Aspects en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST avec [[Keycloak]] ou [[OKTA]].&lt;br /&gt;
** Utilisation du service de paiement Stripe.com en mode développeur&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Chatbot du helpdesk (comme [https://github.com/ovh-ux/ovh-chatbot ovh-chatbot])&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Minikube]], [[Kubernetes]], [[Rancher]] ou [[Docker Swarm]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers.&lt;br /&gt;
** Script périodique (crontab) de dump et de backup distant de la base MySQL.&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via le MailService, Thymeleaf et des taches @Scheduled&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS (si le destinataire a un compte gratuit pour l&#039;auto-réception de SMS)&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google, [https://www.jhipster.tech/heroku/ Heroku])&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]] ou [[Gatling]]) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le rolling update des composants répliqués (application, base de données, serveurs de mail, load balancer). Remarque: [[Kubernetes]] gère les rolling updates ([https://kubernetes.io/docs/tasks/run-application/rolling-update-replication-controller/ lien]).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom. JHipster génère le dockerfile de l&#039;application et quelques descripteurs docker-compose.&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]], [[Hawkular]], [[Telegraf]] + [[InfluxDB]] + [[Grafana]], [[Prometheus]] ...* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des mécanismes pour intégrer les besoins des utilisateurs&lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
===Evaluation des IHMs===&lt;br /&gt;
Une IHM doit être évaluée par au moins deux types d&#039;évaluation (en plus de l&#039;évaluation fonctionnelle) :&lt;br /&gt;
* évaluation experte pour vérifier que les principes fondamentaux d&#039;utilisabilité sont respectés&lt;br /&gt;
* tests utilisateur pour étudier comment vos utilisateurs utilise dans leurs contextes d&#039;utilisation votre interface&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2018-2019.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur ces technologies se périment très vite.&lt;br /&gt;
&lt;br /&gt;
====[[Spring]]====&lt;br /&gt;
* Bons tutoriels sur https://www.baeldung.com/rest-with-spring-series/&lt;br /&gt;
* Les manuels de références de Spring https://spring.io/projects/spring-boot#overview&lt;br /&gt;
* Craig Walls, Spring in Action, Fifth Edition, https://www.manning.com/books/spring-in-action-fifth-edition&lt;br /&gt;
&lt;br /&gt;
====[[JHipster]]====&lt;br /&gt;
* Matt Raible, The JHipster Mini-Book 4.5 (GRATUIT) https://www.infoq.com/minibooks/jhipster-4x-mini-book&lt;br /&gt;
* Deepu K Sasidharan, Sendil Kumar N, Full Stack Development with JHipster, (10 $ en promotion) March 2018, https://www.packtpub.com/application-development/full-stack-development-jhipster &lt;br /&gt;
&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:Pr%C3%A9sentation_RICM-2018.odp&amp;diff=43568</id>
		<title>File:Présentation RICM-2018.odp</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:Pr%C3%A9sentation_RICM-2018.odp&amp;diff=43568"/>
		<updated>2018-12-11T12:58:58Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=43481</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=43481"/>
		<updated>2018-12-04T16:47:56Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Soutenance de fin de projet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* VZ : Vincent Zurczak (vzurczak@linagora.com)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&#039;&#039;&#039;Autres :&#039;&#039;&#039;&lt;br /&gt;
* ADE : Emploi du temps en ligne&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-1F0 2018-2019===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 18/09 à 8h.&lt;br /&gt;
&lt;br /&gt;
* [[ECOM-1FO_1819_Restaurant]] : &#039;&#039;&#039;William Weill (CP)&#039;&#039;&#039;, Théo Lévesque, Loris Gentillon, Benjamin Besnier, Thomas Ozenda&lt;br /&gt;
* [[ECOM-1FO_1819_Spectacle]] : &#039;&#039;&#039;Thibaud Vegreville (CP)&#039;&#039;&#039;, Joffrey Ferreira, Bastien Terrier, Cédric Lafrasse&lt;br /&gt;
* [[ECOM-1FO_1819_Camping]] : &#039;&#039;&#039;Timothée Depriester (CP)&#039;&#039;&#039;, Sekina Belguendouz, Servan Charlot, Samuel Bamba, Florian Cuzin&lt;br /&gt;
* [[ECOM-1FO_1819_Transport]] : &#039;&#039;&#039;Julien Courtial (CP)&#039;&#039;&#039;, Aurélien Surier, Raphaël Manger, Théo Echevet&lt;br /&gt;
* [[ECOM-1FO_1819_Sport]] : &#039;&#039;&#039;Hugo Gros-Daillon (CP)&#039;&#039;&#039;, Quentin Fombaron, Tim Lepage, Vincent Aubert&lt;br /&gt;
* [[ECOM-1F0_1819_BTB|ECOM-1FO_1819_BruleTaBuche]] : &#039;&#039;&#039;Léo Valette (CP)&#039;&#039;&#039;, Amina Boucherima, Zoran Chanet, Najwa Ez-zine, Enzo Molion&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2017-2018]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et VZ).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 18/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2018.pdf|transparents]]), CM [[Media:RestfulServices.pdf|REST]], [[MicroServices]], [[Spring]], [[JHipster]] (DD) (P005)&lt;br /&gt;
* 18/09 15h45-18h30 : (DD) Installation [[JHipster]] et [[Docker]]. Génération de l&#039;application MVP de eCOM, lancement du profile dev, lancement du profil prod (avec Docker), analyse de qualité du code (généré) avec le container SonarQube et déploiement sur Heroku de 2 applications (stage, production) (F214, F215).&lt;br /&gt;
&lt;br /&gt;
* 25/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P257)&lt;br /&gt;
* 25/09 15h45-18h30 :  Séance en autonomie (F114, F214)&lt;br /&gt;
&lt;br /&gt;
* 02/10 8h00-12h15 : Test utilisateur (SC) puis Séance en autonomie (P039)&lt;br /&gt;
* 02/10 15h45-18h30 : Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 09/10 8h00-12h15 : Audit 1 (P013) et Séance en autonomie (P105, P133)&lt;br /&gt;
* 09/10 15h45-18h30 :  Tests de robustesse (charges) (VZ)  (F114, F214)&lt;br /&gt;
&lt;br /&gt;
* 16/10 8h00-12h15 : Séance en autonomie (P257)&lt;br /&gt;
* 16/10 15h45-18h30 :  Séance encadrée (SC) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 23/10 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 23/10 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 06/11 8h00-12h15 : Audit 2 (F114) et Séance en autonomie (F202)&lt;br /&gt;
* 06/11 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 12/11  8h00-12h15 : Séance en autonomie (P257)&lt;br /&gt;
&lt;br /&gt;
* 20/11 8h00-12h15 : Séance en autonomie + Séance encadrée (SC) (P257)&lt;br /&gt;
* 20/11 15h45-18h30 :  Séance encadrée (VZ) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 27/11 15h45-18h30 :  Séance encadrée (VZ) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 04/12 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 04/12 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 11/12 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 11/12 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 18/12 8h00-12h15 : Soutenances (F114) et rendus finaux&lt;br /&gt;
* 18/12 15h45-18h30 :  Soutenances (F114) et rendus finaux&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie [[Spring Boot]] / [[JHipster]].&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]] sur plusieurs VM dans un cloud public (AWS, GAE, Heroku, Azure, Bluemix, Digital Ocean ...), le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 09 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 06 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 18 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
Attention : les concepts que vous avez vus en cours d&#039;architecture doivent être mis en application pour l&#039;architecture de votre projet. Une attention particulière sur ce point doit être portée lors de vos présentations à l&#039;audit 2 et à la soutenance. Le travail que vous présenterez fournira de support à l&#039;évaluation du module de GL.&lt;br /&gt;
&lt;br /&gt;
===Audit 1 ===&lt;br /&gt;
*Salle : P013&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- 8h35 : Restaurant &lt;br /&gt;
&lt;br /&gt;
- 9h10 : Spectacle&lt;br /&gt;
&lt;br /&gt;
- 9h45 : Camping&lt;br /&gt;
&lt;br /&gt;
- 10h20 : Transport&lt;br /&gt;
&lt;br /&gt;
- 10h55 : Sport &lt;br /&gt;
&lt;br /&gt;
- 11h30 : Brule ta bûche&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques et état de prise en main&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
* Modèle de tâches et IHMA pour les premières tâches&lt;br /&gt;
&lt;br /&gt;
===Audit 2 ===&lt;br /&gt;
*Salle : F114&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet : &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Architecture complète&lt;br /&gt;
* Procédure de tests&lt;br /&gt;
* Procédure d&#039;intégration du code &lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Entity, Ressources REST (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- 8h : Transport &lt;br /&gt;
&lt;br /&gt;
- 8h30 : Spectacle&lt;br /&gt;
&lt;br /&gt;
- 9h : Restaurant&lt;br /&gt;
&lt;br /&gt;
- 9h30 : Camping&lt;br /&gt;
&lt;br /&gt;
- 10h : Sport &lt;br /&gt;
&lt;br /&gt;
- 10h30 : Brule ta bûche&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : P&lt;br /&gt;
* Durée totale : 30 min (max 15 minutes de présentation, min 5 minutes de démo) &lt;br /&gt;
* Utilisez des transparents pour présenter votre projet. Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- 8h : Sport &lt;br /&gt;
&lt;br /&gt;
- 8h35 : Restaurant &lt;br /&gt;
&lt;br /&gt;
- 9h10 : Spectacle&lt;br /&gt;
&lt;br /&gt;
- 9h45 : Camping&lt;br /&gt;
&lt;br /&gt;
- 10h20 : Transport&lt;br /&gt;
&lt;br /&gt;
- 11h : Brule ta bûche&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
* une présentation globale du projet&lt;br /&gt;
* le processus de conception (illustré avec vos différentes productions)&lt;br /&gt;
* la démonstration de votre application&lt;br /&gt;
* des évaluations&lt;br /&gt;
* le bilan (pédagogique ET du projet/individuel ET groupe)&lt;br /&gt;
* le temps consacré à la conception &lt;br /&gt;
* le temps consacré au développement &lt;br /&gt;
* les principales difficultés rencontrées&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et VZ pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Tout votre projet doit être suivi grâce à gitLab.&lt;br /&gt;
&lt;br /&gt;
A tout moment, les enseignants doivent donc pouvoir &lt;br /&gt;
* avoir la dernière version du code (dernière version du logiciel en production et ce qui est en cours de développement dans des branches dédiées)&lt;br /&gt;
* voir les tâches prévues/en cours/réalisées&lt;br /&gt;
* savoir le travail de chaque membre (effectué et assigné)&lt;br /&gt;
* consulter les documents de conception (à jour) &lt;br /&gt;
* consulter les CR des daily meeting et autres réunions et les rétrospectives et vos présentations aux différents audits&lt;br /&gt;
* avoir connaissance des procédures de qualité que vous mettez en place au sein de votre projet&lt;br /&gt;
* consulter les résultats des différents tests pour chaque release&lt;br /&gt;
&lt;br /&gt;
Attention : nous insistons particulièrement sur le fait que toutes ces données doivent être maintenues en temps réel et accessibles sur le gitlab de votre projet.&lt;br /&gt;
&lt;br /&gt;
Attention : nous consulterons également les messages de commit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Vous trouverez ci-dessous une liste (non exhaustive) de certains livrables pouvant être produits au sein de votre projet&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;. (obligatoire)&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Le Dossier de Conception Système (DCS) a pour but de permettre à toute personne de connaitre les principaux composants Spring de votre application ECOM. Cette connaissance doit pouvoir être acquise rapidement, sans avoir à entrer dans les détails de l&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation Spring : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;environnement Spring. Un composant peut être implanté par un client généré à partir de l&#039;interface de/des micro-services, par un micro-service REST (Controller), par un Service, par un Entity ou par un client Feign vers un micro-service externe au systeme (par exemple, service de paiement Swipe.com, ...).&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (tableau de tâches de Gitlab)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Evaluation de la cybersécurité du projet (option)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Evaluation des performances du projet (option)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Résultat d&#039;une injection de charge simpliste avec [[Gatling]]&lt;br /&gt;
* Résultat d&#039;une injection de charge suivant un scénario complet avec [[Gatling]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Gestion des risques (option)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Slides de présentation conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L19. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L20. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L21. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L22. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à utiliser un outil adapté cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
Vous devez utiliser GitLab comme support à votre projet (versioning, gestion des tâches...).&lt;br /&gt;
&lt;br /&gt;
Nous vous demandons également d&#039;utiliser les issues pour la communication avec les enseignants. En particulier, toute absence ou télétravail doit être signalé par ce média.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer un groupe GitLab. Y ajouter les membres du projet eCOM. Créer plusieurs projets pour les différents parties. Activer les notifications. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;est-à-dire le modèle de données (UML ou similaire [https://www.jhipster.tech/jdl/ JDL]) et la logique métier, puis à réaliser un premier prototype qui démontre une bonne maîtrise des Entity (annotations JAX-RS, annotations [[Swagger]]).&lt;br /&gt;
&lt;br /&gt;
L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl (généré avec le générateur [https://swagger.io/tools/swagger-codegen/ swagger-codegen]), [[Swagger]] UI, injecteur de charge [[Gatling]], ....) et le frontend AngularX que vous aurez généré avec [[JHipster]].&lt;br /&gt;
&lt;br /&gt;
Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et utilisateurs finaux) et exécuter certaines requêtes avec des garanties transactionnelles.&lt;br /&gt;
&lt;br /&gt;
TRES IMPORTANT : Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]]/IPtables pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, ...) pour la production (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] ou [[Nginx]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
# Génération et rafraichissement des certificats SSL avec [[Let&#039;s Encrypt]]&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec un FileStorageService ([https://www.callicoder.com/spring-boot-file-upload-download-rest-api-example/ lien]) &lt;br /&gt;
** Gestion adaptative des contenus multimedia (photos) avec un ThumbnailService (montrez l&#039;amélioration des performances avec Gatling)&lt;br /&gt;
** Gestion du cache client pour les photos et les thumbnails avec Cache-Control et ETag (montrez l&#039;amélioration des performances avec Gatling)&lt;br /&gt;
** Utilisation de mode Lazy pour les chargements (fetch) des collections et des médias (CLOB,BLOB).&lt;br /&gt;
** Génération d&#039;une application mobile [[Ionic]] avec [https://github.com/oktadeveloper/generator-jhipster-ionic generator-jhipster-ionic] (inclure les plugins [[Apache Cordova]] utiles à votre projet).&lt;br /&gt;
** Utilisation d&#039;un cache ([https://www.jhipster.tech/using-cache/ préconisé par JHipster])&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Génération de documents PDF à partir des valeurs de champs d&#039;une entité ou du collection d&#039;entités (exemple d&#039;applications : facture, dossard coureur, export RGPD, ...) [https://www.stackextend.com/java/generate-pdf-document-using-jasperreports-and-spring-boot/ lien]&lt;br /&gt;
** Import et export massifs de collections d&#039;entités en format CSV, JSON.&lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters/Aspects en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST avec [[Keycloak]] ou [[OKTA]].&lt;br /&gt;
** Utilisation du service de paiement Stripe.com en mode développeur&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Chatbot du helpdesk (comme [https://github.com/ovh-ux/ovh-chatbot ovh-chatbot])&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Minikube]], [[Kubernetes]], [[Rancher]] ou [[Docker Swarm]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers.&lt;br /&gt;
** Script périodique (crontab) de dump et de backup distant de la base MySQL.&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via le MailService, Thymeleaf et des taches @Scheduled&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS (si le destinataire a un compte gratuit pour l&#039;auto-réception de SMS)&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google, [https://www.jhipster.tech/heroku/ Heroku])&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]] ou [[Gatling]]) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le rolling update des composants répliqués (application, base de données, serveurs de mail, load balancer). Remarque: [[Kubernetes]] gère les rolling updates ([https://kubernetes.io/docs/tasks/run-application/rolling-update-replication-controller/ lien]).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom. JHipster génère le dockerfile de l&#039;application et quelques descripteurs docker-compose.&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]], [[Hawkular]], [[Telegraf]] + [[InfluxDB]] + [[Grafana]], [[Prometheus]] ...* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des mécanismes pour intégrer les besoins des utilisateurs&lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
===Evaluation des IHMs===&lt;br /&gt;
Une IHM doit être évaluée par au moins deux types d&#039;évaluation (en plus de l&#039;évaluation fonctionnelle) :&lt;br /&gt;
* évaluation experte pour vérifier que les principes fondamentaux d&#039;utilisabilité sont respectés&lt;br /&gt;
* tests utilisateur pour étudier comment vos utilisateurs utilise dans leurs contextes d&#039;utilisation votre interface&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2018-2019.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur ces technologies se périment très vite.&lt;br /&gt;
&lt;br /&gt;
====[[Spring]]====&lt;br /&gt;
* Bons tutoriels sur https://www.baeldung.com/rest-with-spring-series/&lt;br /&gt;
* Les manuels de références de Spring https://spring.io/projects/spring-boot#overview&lt;br /&gt;
* Craig Walls, Spring in Action, Fifth Edition, https://www.manning.com/books/spring-in-action-fifth-edition&lt;br /&gt;
&lt;br /&gt;
====[[JHipster]]====&lt;br /&gt;
* Matt Raible, The JHipster Mini-Book 4.5 (GRATUIT) https://www.infoq.com/minibooks/jhipster-4x-mini-book&lt;br /&gt;
* Deepu K Sasidharan, Sendil Kumar N, Full Stack Development with JHipster, (10 $ en promotion) March 2018, https://www.packtpub.com/application-development/full-stack-development-jhipster &lt;br /&gt;
&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42724</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42724"/>
		<updated>2018-11-05T09:05:10Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Audit 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* VZ : Vincent Zurczak (vzurczak@linagora.com)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&#039;&#039;&#039;Autres :&#039;&#039;&#039;&lt;br /&gt;
* ADE : Emploi du temps en ligne&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-1F0 2018-2019===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 18/09 à 8h.&lt;br /&gt;
&lt;br /&gt;
* [[ECOM-1FO_1819_Restaurant]] : &#039;&#039;&#039;William Weill (CP)&#039;&#039;&#039;, Théo Lévesque, Loris Gentillon, Benjamin Besnier, Thomas Ozenda&lt;br /&gt;
* [[ECOM-1FO_1819_Spectacle]] : &#039;&#039;&#039;Thibaud Vegreville (CP)&#039;&#039;&#039;, Joffrey Ferreira, Bastien Terrier, Cédric Lafrasse&lt;br /&gt;
* [[ECOM-1FO_1819_Camping]] : &#039;&#039;&#039;Timothée Depriester (CP)&#039;&#039;&#039;, Sekina Belguendouz, Servan Charlot, Samuel Bamba, Florian Cuzin&lt;br /&gt;
* [[ECOM-1FO_1819_Transport]] : &#039;&#039;&#039;Julien Courtial (CP)&#039;&#039;&#039;, Aurélien Surier, Raphaël Manger, Théo Echevet&lt;br /&gt;
* [[ECOM-1FO_1819_Sport]] : &#039;&#039;&#039;Hugo Gros-Daillon (CP)&#039;&#039;&#039;, Quentin Fombaron, Tim Lepage, Vincent Aubert&lt;br /&gt;
* [[ECOM-1F0_1819_BTB|ECOM-1FO_1819_BruleTaBuche]] : &#039;&#039;&#039;Léo Valette (CP)&#039;&#039;&#039;, Amina Boucherima, Zoran Chanet, Najwa Ez-zine, Enzo Molion&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2017-2018]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et VZ).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 18/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2018.pdf|transparents]]), CM [[Media:RestfulServices.pdf|REST]], [[MicroServices]], [[Spring]], [[JHipster]] (DD) (P005)&lt;br /&gt;
* 18/09 15h45-18h30 : (DD) Installation [[JHipster]] et [[Docker]]. Génération de l&#039;application MVP de eCOM, lancement du profile dev, lancement du profil prod (avec Docker), analyse de qualité du code (généré) avec le container SonarQube et déploiement sur Heroku de 2 applications (stage, production) (F214, F215).&lt;br /&gt;
&lt;br /&gt;
* 25/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P257)&lt;br /&gt;
* 25/09 15h45-18h30 :  Séance en autonomie (F114, F214)&lt;br /&gt;
&lt;br /&gt;
* 02/10 8h00-12h15 : Test utilisateur (SC) puis Séance en autonomie (P039)&lt;br /&gt;
* 02/10 15h45-18h30 : Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 09/10 8h00-12h15 : Audit 1 (P013) et Séance en autonomie (P105, P133)&lt;br /&gt;
* 09/10 15h45-18h30 :  Tests de robustesse (charges) (VZ)  (F114, F214)&lt;br /&gt;
&lt;br /&gt;
* 16/10 8h00-12h15 : Séance en autonomie (P257)&lt;br /&gt;
* 16/10 15h45-18h30 :  Séance encadrée (SC) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 23/10 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 23/10 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 06/11 8h00-12h15 : Audit 2 (F114) et Séance en autonomie (F202)&lt;br /&gt;
* 06/11 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 12/11  8h00-12h15 : Séance en autonomie (P257)&lt;br /&gt;
&lt;br /&gt;
* 20/11 8h00-12h15 : Séance en autonomie + Séance encadrée (SC) (P257)&lt;br /&gt;
* 20/11 15h45-18h30 :  Séance encadrée (VZ) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 27/11 15h45-18h30 :  Séance encadrée (VZ) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 04/12 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 04/12 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 11/12 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 11/12 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 18/12 8h00-12h15 : Soutenances (F114) et rendus finaux&lt;br /&gt;
* 18/12 15h45-18h30 :  Soutenances (F114) et rendus finaux&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie [[Spring Boot]] / [[JHipster]].&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]] sur plusieurs VM dans un cloud public (AWS, GAE, Heroku, Azure, Bluemix, Digital Ocean ...), le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 09 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 06 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 18 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
Attention : les concepts que vous avez vus en cours d&#039;architecture doivent être mis en application pour l&#039;architecture de votre projet. Une attention particulière sur ce point doit être portée lors de vos présentations à l&#039;audit 2 et à la soutenance. Le travail que vous présenterez fournira de support à l&#039;évaluation du module de GL.&lt;br /&gt;
&lt;br /&gt;
===Audit 1 ===&lt;br /&gt;
*Salle : P013&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- 8h35 : Restaurant &lt;br /&gt;
&lt;br /&gt;
- 9h10 : Spectacle&lt;br /&gt;
&lt;br /&gt;
- 9h45 : Camping&lt;br /&gt;
&lt;br /&gt;
- 10h20 : Transport&lt;br /&gt;
&lt;br /&gt;
- 10h55 : Sport &lt;br /&gt;
&lt;br /&gt;
- 11h30 : Brule ta bûche&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques et état de prise en main&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
* Modèle de tâches et IHMA pour les premières tâches&lt;br /&gt;
&lt;br /&gt;
===Audit 2 ===&lt;br /&gt;
*Salle : F114&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet : &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Architecture complète&lt;br /&gt;
* Procédure de tests&lt;br /&gt;
* Procédure d&#039;intégration du code &lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Entity, Ressources REST (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- 8h : Transport &lt;br /&gt;
&lt;br /&gt;
- 8h30 : Spectacle&lt;br /&gt;
&lt;br /&gt;
- 9h : Restaurant&lt;br /&gt;
&lt;br /&gt;
- 9h30 : Camping&lt;br /&gt;
&lt;br /&gt;
- 10h : Sport &lt;br /&gt;
&lt;br /&gt;
- 10h30 : Brule ta bûche&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : P&lt;br /&gt;
* Durée totale : 30 min&lt;br /&gt;
* Utilisez des transparents pour présenter votre projet. Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
* une présentation globale du projet&lt;br /&gt;
* le processus de conception (illustré avec vos différentes productions)&lt;br /&gt;
* la démonstration de votre application&lt;br /&gt;
* des évaluations&lt;br /&gt;
* le bilan (pédagogique ET du projet/individuel ET groupe)&lt;br /&gt;
* le temps consacré à la conception &lt;br /&gt;
* le temps consacré au développement &lt;br /&gt;
* les principales difficultés rencontrées&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* groupe 1&lt;br /&gt;
* groupe 3&lt;br /&gt;
* groupe 5&lt;br /&gt;
* groupe 4&lt;br /&gt;
* groupe 6&lt;br /&gt;
* groupe 2&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et VZ pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Tout votre projet doit être suivi grâce à gitLab.&lt;br /&gt;
&lt;br /&gt;
A tout moment, les enseignants doivent donc pouvoir &lt;br /&gt;
* avoir la dernière version du code (dernière version du logiciel en production et ce qui est en cours de développement dans des branches dédiées)&lt;br /&gt;
* voir les tâches prévues/en cours/réalisées&lt;br /&gt;
* savoir le travail de chaque membre (effectué et assigné)&lt;br /&gt;
* consulter les documents de conception (à jour) &lt;br /&gt;
* consulter les CR des daily meeting et autres réunions et les rétrospectives et vos présentations aux différents audits&lt;br /&gt;
* avoir connaissance des procédures de qualité que vous mettez en place au sein de votre projet&lt;br /&gt;
* consulter les résultats des différents tests pour chaque release&lt;br /&gt;
&lt;br /&gt;
Attention : nous insistons particulièrement sur le fait que toutes ces données doivent être maintenues en temps réel et accessibles sur le gitlab de votre projet.&lt;br /&gt;
&lt;br /&gt;
Attention : nous consulterons également les messages de commit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Vous trouverez ci-dessous une liste (non exhaustive) de certains livrables pouvant être produits au sein de votre projet&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;. (obligatoire)&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Le Dossier de Conception Système (DCS) a pour but de permettre à toute personne de connaitre les principaux composants Spring de votre application ECOM. Cette connaissance doit pouvoir être acquise rapidement, sans avoir à entrer dans les détails de l&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation Spring : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;environnement Spring. Un composant peut être implanté par un client généré à partir de l&#039;interface de/des micro-services, par un micro-service REST (Controller), par un Service, par un Entity ou par un client Feign vers un micro-service externe au systeme (par exemple, service de paiement Swipe.com, ...).&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (tableau de tâches de Gitlab)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Evaluation de la cybersécurité du projet (option)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Evaluation des performances du projet (option)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Résultat d&#039;une injection de charge simpliste avec [[Gatling]]&lt;br /&gt;
* Résultat d&#039;une injection de charge suivant un scénario complet avec [[Gatling]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Gestion des risques (option)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Slides de présentation conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L19. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L20. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L21. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L22. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à utiliser un outil adapté cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
Vous devez utiliser GitLab comme support à votre projet (versioning, gestion des tâches...).&lt;br /&gt;
&lt;br /&gt;
Nous vous demandons également d&#039;utiliser les issues pour la communication avec les enseignants. En particulier, toute absence ou télétravail doit être signalé par ce média.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer un groupe GitLab. Y ajouter les membres du projet eCOM. Créer plusieurs projets pour les différents parties. Activer les notifications. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;est-à-dire le modèle de données (UML ou similaire [https://www.jhipster.tech/jdl/ JDL]) et la logique métier, puis à réaliser un premier prototype qui démontre une bonne maîtrise des Entity (annotations JAX-RS, annotations [[Swagger]]).&lt;br /&gt;
&lt;br /&gt;
L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl (généré avec le générateur [https://swagger.io/tools/swagger-codegen/ swagger-codegen]), [[Swagger]] UI, injecteur de charge [[Gatling]], ....) et le frontend AngularX que vous aurez généré avec [[JHipster]].&lt;br /&gt;
&lt;br /&gt;
Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et utilisateurs finaux) et exécuter certaines requêtes avec des garanties transactionnelles.&lt;br /&gt;
&lt;br /&gt;
TRES IMPORTANT : Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]]/IPtables pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, ...) pour la production (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] ou [[Nginx]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
# Génération et rafraichissement des certificats SSL avec [[Let&#039;s Encrypt]]&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec un FileStorageService ([https://www.callicoder.com/spring-boot-file-upload-download-rest-api-example/ lien]) &lt;br /&gt;
** Gestion adaptative des contenus multimedia (photos) avec un ThumbnailService (montrez l&#039;amélioration des performances avec Gatling)&lt;br /&gt;
** Gestion du cache client pour les photos et les thumbnails avec Cache-Control et ETag (montrez l&#039;amélioration des performances avec Gatling)&lt;br /&gt;
** Utilisation de mode Lazy pour les chargements (fetch) des collections et des médias (CLOB,BLOB).&lt;br /&gt;
** Génération d&#039;une application mobile [[Ionic]] avec [https://github.com/oktadeveloper/generator-jhipster-ionic generator-jhipster-ionic] (inclure les plugins [[Apache Cordova]] utiles à votre projet).&lt;br /&gt;
** Utilisation d&#039;un cache ([https://www.jhipster.tech/using-cache/ préconisé par JHipster])&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Génération de documents PDF à partir des valeurs de champs d&#039;une entité ou du collection d&#039;entités (exemple d&#039;applications : facture, dossard coureur, export RGPD, ...) [https://www.stackextend.com/java/generate-pdf-document-using-jasperreports-and-spring-boot/ lien]&lt;br /&gt;
** Import et export massifs de collections d&#039;entités en format CSV, JSON.&lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters/Aspects en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST avec [[Keycloak]] ou [[OKTA]].&lt;br /&gt;
** Utilisation du service de paiement Stripe.com en mode développeur&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Chatbot du helpdesk (comme [https://github.com/ovh-ux/ovh-chatbot ovh-chatbot])&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Minikube]], [[Kubernetes]], [[Rancher]] ou [[Docker Swarm]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers.&lt;br /&gt;
** Script périodique (crontab) de dump et de backup distant de la base MySQL.&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via le MailService, Thymeleaf et des taches @Scheduled&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS (si le destinataire a un compte gratuit pour l&#039;auto-réception de SMS)&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google, [https://www.jhipster.tech/heroku/ Heroku])&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]] ou [[Gatling]]) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le rolling update des composants répliqués (application, base de données, serveurs de mail, load balancer). Remarque: [[Kubernetes]] gère les rolling updates ([https://kubernetes.io/docs/tasks/run-application/rolling-update-replication-controller/ lien]).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom. JHipster génère le dockerfile de l&#039;application et quelques descripteurs docker-compose.&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]], [[Hawkular]], [[Telegraf]] + [[InfluxDB]] + [[Grafana]], [[Prometheus]] ...* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des mécanismes pour intégrer les besoins des utilisateurs&lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
===Evaluation des IHMs===&lt;br /&gt;
Une IHM doit être évaluée par au moins deux types d&#039;évaluation (en plus de l&#039;évaluation fonctionnelle) :&lt;br /&gt;
* évaluation experte pour vérifier que les principes fondamentaux d&#039;utilisabilité sont respectés&lt;br /&gt;
* tests utilisateur pour étudier comment vos utilisateurs utilise dans leurs contextes d&#039;utilisation votre interface&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2018-2019.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur ces technologies se périment très vite.&lt;br /&gt;
&lt;br /&gt;
====[[Spring]]====&lt;br /&gt;
* Bons tutoriels sur https://www.baeldung.com/rest-with-spring-series/&lt;br /&gt;
* Les manuels de références de Spring https://spring.io/projects/spring-boot#overview&lt;br /&gt;
* Craig Walls, Spring in Action, Fifth Edition, https://www.manning.com/books/spring-in-action-fifth-edition&lt;br /&gt;
&lt;br /&gt;
====[[JHipster]]====&lt;br /&gt;
* Matt Raible, The JHipster Mini-Book 4.5 (GRATUIT) https://www.infoq.com/minibooks/jhipster-4x-mini-book&lt;br /&gt;
* Deepu K Sasidharan, Sendil Kumar N, Full Stack Development with JHipster, (10 $ en promotion) March 2018, https://www.packtpub.com/application-development/full-stack-development-jhipster &lt;br /&gt;
&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42604</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42604"/>
		<updated>2018-10-29T08:45:48Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Audit 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* VZ : Vincent Zurczak (vzurczak@linagora.com)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&#039;&#039;&#039;Autres :&#039;&#039;&#039;&lt;br /&gt;
* ADE : Emploi du temps en ligne&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-1F0 2018-2019===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 18/09 à 8h.&lt;br /&gt;
&lt;br /&gt;
* [[ECOM-1FO_1819_Restaurant]] : &#039;&#039;&#039;William Weill (CP)&#039;&#039;&#039;, Théo Lévesque, Loris Gentillon, Benjamin Besnier, Thomas Ozenda&lt;br /&gt;
* [[ECOM-1FO_1819_Spectacle]] : &#039;&#039;&#039;Thibaud Vegreville (CP)&#039;&#039;&#039;, Joffrey Ferreira, Bastien Terrier, Cédric Lafrasse&lt;br /&gt;
* [[ECOM-1FO_1819_Camping]] : &#039;&#039;&#039;Timothée Depriester (CP)&#039;&#039;&#039;, Sekina Belguendouz, Servan Charlot, Samuel Bamba, Florian Cuzin&lt;br /&gt;
* [[ECOM-1FO_1819_Transport]] : &#039;&#039;&#039;Prénom Nom (CP)&#039;&#039;&#039;, Prénom Nom, Prénom Nom, Prénom Nom, Prénom Nom&lt;br /&gt;
* [[ECOM-1FO_1819_Sport]] : &#039;&#039;&#039;Hugo Gros-Daillon (CP)&#039;&#039;&#039;, Quentin Fombaron, Tim Lepage, Vincent Aubert&lt;br /&gt;
* [[ECOM-1F0_1819_BTB|ECOM-1FO_1819_BruleTaBuche]] : &#039;&#039;&#039;Léo Valette (CP)&#039;&#039;&#039;, Amina Boucherima, Zoran Chanet, Najwa Ez-zine, Enzo Molion&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2017-2018]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et VZ).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 18/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2018.pdf|transparents]]), CM [[Media:RestfulServices.pdf|REST]], [[MicroServices]], [[Spring]], [[JHipster]] (DD) (P005)&lt;br /&gt;
* 18/09 15h45-18h30 : (DD) Installation [[JHipster]] et [[Docker]]. Génération de l&#039;application MVP de eCOM, lancement du profile dev, lancement du profil prod (avec Docker), analyse de qualité du code (généré) avec le container SonarQube et déploiement sur Heroku de 2 applications (stage, production) (F214, F215).&lt;br /&gt;
&lt;br /&gt;
* 25/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P257)&lt;br /&gt;
* 25/09 15h45-18h30 :  Séance en autonomie (F114, F214)&lt;br /&gt;
&lt;br /&gt;
* 02/10 8h00-12h15 : Test utilisateur (SC) puis Séance en autonomie (P039)&lt;br /&gt;
* 02/10 15h45-18h30 : Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 09/10 8h00-12h15 : Audit 1 (P013) et Séance en autonomie (P105, P133)&lt;br /&gt;
* 09/10 15h45-18h30 :  Tests de robustesse (charges) (VZ)  (F114, F214)&lt;br /&gt;
&lt;br /&gt;
* 16/10 8h00-12h15 : Séance en autonomie (P257)&lt;br /&gt;
* 16/10 15h45-18h30 :  Séance encadrée (SC) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 23/10 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 23/10 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 06/11 8h00-12h15 : Audit 2 (F114) et Séance en autonomie (F202)&lt;br /&gt;
* 06/11 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 12/11  8h00-12h15 : Séance en autonomie (P257)&lt;br /&gt;
&lt;br /&gt;
* 20/11 8h00-12h15 : Séance en autonomie + Séance encadrée (SC) (P257)&lt;br /&gt;
* 20/11 15h45-18h30 :  Séance encadrée (VZ) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 27/11 15h45-18h30 :  Séance encadrée (VZ) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 04/12 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 04/12 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 11/12 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 11/12 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 18/12 8h00-12h15 : Soutenances (F114) et rendus finaux&lt;br /&gt;
* 18/12 15h45-18h30 :  Soutenances (F114) et rendus finaux&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie [[Spring Boot]] / [[JHipster]].&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]] sur plusieurs VM dans un cloud public (AWS, GAE, Heroku, Azure, Bluemix, Digital Ocean ...), le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 09 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 06 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 18 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
Attention : les concepts que vous avez vus en cours d&#039;architecture doivent être mis en application pour l&#039;architecture de votre projet. Une attention particulière sur ce point doit être portée lors de vos présentations à l&#039;audit 2 et à la soutenance. Le travail que vous présenterez fournira de support à l&#039;évaluation du module de GL.&lt;br /&gt;
&lt;br /&gt;
===Audit 1 ===&lt;br /&gt;
*Salle : P013&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- 8h35 : Restaurant &lt;br /&gt;
&lt;br /&gt;
- 9h10 : Spectacle&lt;br /&gt;
&lt;br /&gt;
- 9h45 : Camping&lt;br /&gt;
&lt;br /&gt;
- 10h20 : Transport&lt;br /&gt;
&lt;br /&gt;
- 10h55 : Sport &lt;br /&gt;
&lt;br /&gt;
- 11h30 : Brule ta bûche&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques et état de prise en main&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
* Modèle de tâches et IHMA pour les premières tâches&lt;br /&gt;
&lt;br /&gt;
===Audit 2 ===&lt;br /&gt;
*Salle : F114&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet : &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Architecture complète&lt;br /&gt;
* Procédure de tests&lt;br /&gt;
* Procédure d&#039;intégration du code &lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Entity, Ressources REST (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
- 8h : Transport &lt;br /&gt;
&lt;br /&gt;
- 8h30 : Spectacle&lt;br /&gt;
&lt;br /&gt;
- 9h : Restaurant&lt;br /&gt;
&lt;br /&gt;
- 9h30 : Camping&lt;br /&gt;
&lt;br /&gt;
- 10h : Sport &lt;br /&gt;
&lt;br /&gt;
- 10h30 : Brule ta bûche&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : P&lt;br /&gt;
* Durée totale : 30 min&lt;br /&gt;
* Utilisez des transparents pour présenter votre projet. Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
* une présentation globale du projet&lt;br /&gt;
* le processus de conception (illustré avec vos différentes productions)&lt;br /&gt;
* la démonstration de votre application&lt;br /&gt;
* des évaluations&lt;br /&gt;
* le bilan (pédagogique ET du projet/individuel ET groupe)&lt;br /&gt;
* le temps consacré à la conception &lt;br /&gt;
* le temps consacré au développement &lt;br /&gt;
* les principales difficultés rencontrées&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* groupe 1&lt;br /&gt;
* groupe 3&lt;br /&gt;
* groupe 5&lt;br /&gt;
* groupe 4&lt;br /&gt;
* groupe 6&lt;br /&gt;
* groupe 2&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et VZ pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Tout votre projet doit être suivi grâce à gitLab.&lt;br /&gt;
&lt;br /&gt;
A tout moment, les enseignants doivent donc pouvoir &lt;br /&gt;
* avoir la dernière version du code (dernière version du logiciel en production et ce qui est en cours de développement dans des branches dédiées)&lt;br /&gt;
* voir les tâches prévues/en cours/réalisées&lt;br /&gt;
* savoir le travail de chaque membre (effectué et assigné)&lt;br /&gt;
* consulter les documents de conception (à jour) &lt;br /&gt;
* consulter les CR des daily meeting et autres réunions et les rétrospectives et vos présentations aux différents audits&lt;br /&gt;
* avoir connaissance des procédures de qualité que vous mettez en place au sein de votre projet&lt;br /&gt;
* consulter les résultats des différents tests pour chaque release&lt;br /&gt;
&lt;br /&gt;
Attention : nous insistons particulièrement sur le fait que toutes ces données doivent être maintenues en temps réel et accessibles sur le gitlab de votre projet.&lt;br /&gt;
&lt;br /&gt;
Attention : nous consulterons également les messages de commit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Vous trouverez ci-dessous une liste (non exhaustive) de certains livrables pouvant être produits au sein de votre projet&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;. (obligatoire)&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Le Dossier de Conception Système (DCS) a pour but de permettre à toute personne de connaitre les principaux composants Spring de votre application ECOM. Cette connaissance doit pouvoir être acquise rapidement, sans avoir à entrer dans les détails de l&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation Spring : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;environnement Spring. Un composant peut être implanté par un client généré à partir de l&#039;interface de/des micro-services, par un micro-service REST (Controller), par un Service, par un Entity ou par un client Feign vers un micro-service externe au systeme (par exemple, service de paiement Swipe.com, ...).&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (tableau de tâches de Gitlab)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Evaluation de la cybersécurité du projet (option)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Evaluation des performances du projet (option)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Résultat d&#039;une injection de charge simpliste avec [[Gatling]]&lt;br /&gt;
* Résultat d&#039;une injection de charge suivant un scénario complet avec [[Gatling]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Gestion des risques (option)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Slides de présentation conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L19. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L20. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L21. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L22. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à utiliser un outil adapté cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
Vous devez utiliser GitLab comme support à votre projet (versioning, gestion des tâches...).&lt;br /&gt;
&lt;br /&gt;
Nous vous demandons également d&#039;utiliser les issues pour la communication avec les enseignants. En particulier, toute absence ou télétravail doit être signalé par ce média.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer un groupe GitLab. Y ajouter les membres du projet eCOM. Créer plusieurs projets pour les différents parties. Activer les notifications. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;est-à-dire le modèle de données (UML ou similaire [https://www.jhipster.tech/jdl/ JDL]) et la logique métier, puis à réaliser un premier prototype qui démontre une bonne maîtrise des Entity (annotations JAX-RS, annotations [[Swagger]]).&lt;br /&gt;
&lt;br /&gt;
L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl (généré avec le générateur [https://swagger.io/tools/swagger-codegen/ swagger-codegen]), [[Swagger]] UI, injecteur de charge [[Gatling]], ....) et le frontend AngularX que vous aurez généré avec [[JHipster]].&lt;br /&gt;
&lt;br /&gt;
Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et utilisateurs finaux) et exécuter certaines requêtes avec des garanties transactionnelles.&lt;br /&gt;
&lt;br /&gt;
TRES IMPORTANT : Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]]/IPtables pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, ...) pour la production (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] ou [[Nginx]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
# Génération et rafraichissement des certificats SSL avec [[Let&#039;s Encrypt]]&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec un FileStorageService ([https://www.callicoder.com/spring-boot-file-upload-download-rest-api-example/ lien]) &lt;br /&gt;
** Gestion adaptative des contenus multimedia (photos) avec un ThumbnailService (montrez l&#039;amélioration des performances avec Gatling)&lt;br /&gt;
** Gestion du cache client pour les photos et les thumbnails avec Cache-Control et ETag (montrez l&#039;amélioration des performances avec Gatling)&lt;br /&gt;
** Utilisation de mode Lazy pour les chargements (fetch) des collections et des médias (CLOB,BLOB).&lt;br /&gt;
** Génération d&#039;une application mobile [[Ionic]] avec [https://github.com/oktadeveloper/generator-jhipster-ionic generator-jhipster-ionic] (inclure les plugins [[Apache Cordova]] utiles à votre projet).&lt;br /&gt;
** Utilisation d&#039;un cache ([https://www.jhipster.tech/using-cache/ préconisé par JHipster])&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Génération de documents PDF à partir des valeurs de champs d&#039;une entité ou du collection d&#039;entités (exemple d&#039;applications : facture, dossard coureur, export RGPD, ...) [https://www.stackextend.com/java/generate-pdf-document-using-jasperreports-and-spring-boot/ lien]&lt;br /&gt;
** Import et export massifs de collections d&#039;entités en format CSV, JSON.&lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters/Aspects en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST avec [[Keycloak]] ou [[OKTA]].&lt;br /&gt;
** Utilisation du service de paiement Stripe.com en mode développeur&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Chatbot du helpdesk (comme [https://github.com/ovh-ux/ovh-chatbot ovh-chatbot])&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Minikube]], [[Kubernetes]], [[Rancher]] ou [[Docker Swarm]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers.&lt;br /&gt;
** Script périodique (crontab) de dump et de backup distant de la base MySQL.&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via le MailService, Thymeleaf et des taches @Scheduled&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS (si le destinataire a un compte gratuit pour l&#039;auto-réception de SMS)&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google, [https://www.jhipster.tech/heroku/ Heroku])&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]] ou [[Gatling]]) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le rolling update des composants répliqués (application, base de données, serveurs de mail, load balancer). Remarque: [[Kubernetes]] gère les rolling updates ([https://kubernetes.io/docs/tasks/run-application/rolling-update-replication-controller/ lien]).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom. JHipster génère le dockerfile de l&#039;application et quelques descripteurs docker-compose.&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]], [[Hawkular]], [[Telegraf]] + [[InfluxDB]] + [[Grafana]], [[Prometheus]] ...* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des mécanismes pour intégrer les besoins des utilisateurs&lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
===Evaluation des IHMs===&lt;br /&gt;
Une IHM doit être évaluée par au moins deux types d&#039;évaluation (en plus de l&#039;évaluation fonctionnelle) :&lt;br /&gt;
* évaluation experte pour vérifier que les principes fondamentaux d&#039;utilisabilité sont respectés&lt;br /&gt;
* tests utilisateur pour étudier comment vos utilisateurs utilise dans leurs contextes d&#039;utilisation votre interface&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2018-2019.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur ces technologies se périment très vite.&lt;br /&gt;
&lt;br /&gt;
====[[Spring]]====&lt;br /&gt;
* Bons tutoriels sur https://www.baeldung.com/rest-with-spring-series/&lt;br /&gt;
* Les manuels de références de Spring https://spring.io/projects/spring-boot#overview&lt;br /&gt;
* Craig Walls, Spring in Action, Fifth Edition, https://www.manning.com/books/spring-in-action-fifth-edition&lt;br /&gt;
&lt;br /&gt;
====[[JHipster]]====&lt;br /&gt;
* Matt Raible, The JHipster Mini-Book 4.5 (GRATUIT) https://www.infoq.com/minibooks/jhipster-4x-mini-book&lt;br /&gt;
* Deepu K Sasidharan, Sendil Kumar N, Full Stack Development with JHipster, (10 $ en promotion) March 2018, https://www.packtpub.com/application-development/full-stack-development-jhipster &lt;br /&gt;
&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-M2PGI&amp;diff=42603</id>
		<title>ECOM-M2PGI</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-M2PGI&amp;diff=42603"/>
		<updated>2018-10-26T09:23:44Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* M2PGI (Classique) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application de commerce électronique. [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Étapes du projet=&lt;br /&gt;
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). &lt;br /&gt;
&lt;br /&gt;
==Conduite de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Il est préconisé d&#039;utiliser la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe.&lt;br /&gt;
&lt;br /&gt;
===Critères d&#039;évaluation===&lt;br /&gt;
La conduite du projet sera principalement évaluée en fonction des critères suivants :&lt;br /&gt;
* vous devez choisir un Scrum Master (unique ou tournant) : vous devez justifier votre choix&lt;br /&gt;
* durée du sprint (idem : vous devez justifier votre choix)&lt;br /&gt;
Sur ces 2 premiers critères, vous n&#039;en changez pas !!!&lt;br /&gt;
&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à créer un wiki qui regroupera l&#039;ensemble de vos documentations. Cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
Un point de bonus pour ceux qui réussiront à mettre en place des &amp;quot;poker planning&amp;quot;.&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
==Partie IHM==&lt;br /&gt;
&lt;br /&gt;
===Etapes et documents demandés===&lt;br /&gt;
Le détail sur l&#039;organisation et l&#039;évaluation du travail concernant les spécifications du site sera communiqué lors des premières séances de cours. Liste des Livrables et date de rendu pour les M2PGI Alternants :&lt;br /&gt;
&lt;br /&gt;
* Livrable 1 : par email, membres du groupe et brève description du sujet (un seul groupe OK)&lt;br /&gt;
&lt;br /&gt;
====[[Audit 1 :]]====&lt;br /&gt;
* L2.1 : Description des profils&lt;br /&gt;
* L2.2 : Questionnaire profils (OPT-ALT)&lt;br /&gt;
* L3.1 : Scénarios&lt;br /&gt;
* L3.2 : Analyse de la concurrence (OPT-ALT)&lt;br /&gt;
* L3.3 : Questionnaire sur l&#039;utilisation (OPT-ALT)&lt;br /&gt;
* L4 : Modèles de tâches (Audit 2 pour ALT)&lt;br /&gt;
* L5 : Fonctionnalités&lt;br /&gt;
* L6.1 : Objectifs pour chaque version (priorités de développement)&lt;br /&gt;
&lt;br /&gt;
====[[Audit 2 :]]====&lt;br /&gt;
* Mise à jour de L2 à L6.1&lt;br /&gt;
* L7.1 : Architecture (OPT-ALT)&lt;br /&gt;
* L7.2 : Base de données (OPT-ALT)&lt;br /&gt;
* L7.3 : IHM Abstraite&lt;br /&gt;
* L7.4 : Maquettes&lt;br /&gt;
* L6.2 : Objectifs pour les versions suivantes&lt;br /&gt;
* L8 : Démo de V0&lt;br /&gt;
&lt;br /&gt;
====[[Audit 3 (Soutenances) :]]====&lt;br /&gt;
* Mise à jour de L7.3 (correction des erreurs)&lt;br /&gt;
* L9 : Rapport d&#039;évaluation experte (imprimé pour la soutenance)&lt;br /&gt;
* L10 : Rapport d&#039;évaluation par expérimentation (imprimé pour la soutenance)&lt;br /&gt;
* L11 : Démonstration finale&lt;br /&gt;
* L12 : Diapos de votre présentation (version numérique à laquelle l&#039;enseignant a accès au moment de votre passage)&lt;br /&gt;
&lt;br /&gt;
OPT signifie que le livrable est optionnel soit parce qu&#039;il ne s&#039;applique pas à tous les groupes, soit parce qu&#039;il ne peut qu&#039;apporter une plus value à votre projet (points en plus mais pas en moins au moment de l&#039;attribution de la note).&lt;br /&gt;
Lorsque ce n&#039;est pas précisé, c&#039;est à vous de choisir le mode présentation (écrit, schéma...) des informations du livrable&lt;br /&gt;
&lt;br /&gt;
===Critères d&#039;évaluation===&lt;br /&gt;
La partie IHM du projet sera principalement évaluée en fonction des critères suivants : &lt;br /&gt;
* Conformité de l&#039;IHM concrète et abstraite avec le modèle de tâches &lt;br /&gt;
* Couverture fonctionnelle de l&#039;application et robustesse au regard des priorités que vous avez retenues &lt;br /&gt;
* Qualité ergonomique au regard des principes vus en cours &lt;br /&gt;
* Rigueur de la démarche&lt;br /&gt;
&lt;br /&gt;
La note est obtenue par l&#039;évaluation tout au long du projet elle est composée de :&lt;br /&gt;
* Les besoins (3 pts) : informations sur  les besoins que vous allez prendre en compte (livrables et audit 1)&lt;br /&gt;
* La conception (5 pts) : proposition de solution pour répondre aux besoins (livrables et audit 2)&lt;br /&gt;
* L&#039;évaluation (3 pts) : évaluation de votre (ou vos) solution(s) (livrable et soutenance finale)&lt;br /&gt;
* Présentations (3 pts) : qualité des présentations (documents, email et slides de soutenance finale)&lt;br /&gt;
* Développement (6 pts) : qualité et quantité du code (démo et code)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les notes des membres du groupe peuvent être différentes en fonction du travail fourni et constaté par l&#039;enseignant.&lt;br /&gt;
&lt;br /&gt;
==Partie Système==&lt;br /&gt;
&lt;br /&gt;
Remarque : Aucune des phases du projet ne nécessite le développement d&#039;un client lourd en mode graphique (SWT ...). &lt;br /&gt;
===Documents demandés===&lt;br /&gt;
Deux rapports doivent être rédigés pour la partie Système : un document de conception système et un document d&#039;évaluation système.&lt;br /&gt;
&lt;br /&gt;
====Document de conception système====&lt;br /&gt;
Le dossier de conception système (DCS) a pour but de permettre à toute personne de connaitre les principaux composants de votre application ECOM. Cette connaissance doit pouvoir être acquise rapidement, sans avoir à entrer dans les détails de l&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
====Document d&#039;évaluation système====&lt;br /&gt;
&lt;br /&gt;
Le rapport final système du projet ECOM a pour but de préciser l’état d’avancement de votre application ECOM.&lt;br /&gt;
&lt;br /&gt;
Le rapport final système doit préciser : &lt;br /&gt;
* L’état de chaque composant : non réalisé, réalisé, réalisé et validé &lt;br /&gt;
* Les fonctions réalisées, réalisées et testées, et celles restant à réaliser &lt;br /&gt;
* Les propriétés non fonctionnelles garanties par votre réalisation, et celles restant à considérer pour finaliser votre application &lt;br /&gt;
* Le temps consacré à la conception système &lt;br /&gt;
* Le temps consacré au développement système &lt;br /&gt;
* Les principales difficultés rencontrées &lt;br /&gt;
===Critères d&#039;évaluation===&lt;br /&gt;
La partie système du projet sera principalement évaluée en fonction des critères suivants : &lt;br /&gt;
* Conformité aux spécifications de l&#039;application et aux consignes données dans le cadre du projet &lt;br /&gt;
* Respect des échéances pour les différentes étapes du projet (y compris pour les prototypes intermédiaires et les documents) &lt;br /&gt;
* Qualité de l&#039;architecture de l&#039;application &lt;br /&gt;
* Qualité et robustesse du code applicatif &lt;br /&gt;
* Compréhension des principaux concepts de la technologie Web &lt;br /&gt;
* Rigueur de la démarche de conception &lt;br /&gt;
* Qualité des présentations/soutenances &lt;br /&gt;
En complément, les aspects suivants seront également considérés : &lt;br /&gt;
* Méthodologie de test &lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud &lt;br /&gt;
* Préparation d&#039;images de VMs avec [[Kameleon]]&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]] ou OW2 CLIF) &lt;br /&gt;
* Supervision du système déployé avec des sondes [[Nagios]] ou [[Shinken]] conditionnées dans les VMs à déployer.&lt;br /&gt;
* Utilisation (optionnelle) de technologies/APIs/frameworks avancés&lt;br /&gt;
&lt;br /&gt;
==Consignes pour la soutenance==&lt;br /&gt;
===Consignes spécifiques pour les soutenances IHM===&lt;br /&gt;
Salle : F113&lt;br /&gt;
&lt;br /&gt;
Durée totale : 45 minutes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le 23/09 minuit au plus tard :&lt;br /&gt;
* les documents de conception (hors évaluation), gestion de projet et le code doivent être accessibles à l&#039;enseignant : envoyer un email avec l&#039;ensemble des liens permettant d&#039;y accéder&lt;br /&gt;
&lt;br /&gt;
Le jour de la soutenance :&lt;br /&gt;
* envoyé avant votre passage les liens vers les derniers documents (évaluations + diapositives de soutenance)&lt;br /&gt;
* 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 &lt;br /&gt;
* présentez individuellement un bilan de ce que vous retenez (positif, améliorations personnelles, négatif)&lt;br /&gt;
* arrivez avec l&#039;application démarée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* prévoyez 15 minutes de questions lors de votre passage&lt;br /&gt;
&lt;br /&gt;
===Consignes spécifiques pour les soutenances Système===&lt;br /&gt;
* Apportez un exemplaire du dossier d&#039;évaluation système (déposé la veille sur Moodle) lors de la soutenance. Il n&#039;est pas nécessaire d&#039;apporter un exemplaire du dossier de conception système.&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances avec le service développé.&lt;br /&gt;
* Prévovez environ 30 minutes pour la présentation/démo/questions. Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de VM.&lt;br /&gt;
* 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.&lt;br /&gt;
* Déposez immédiatement après la soutenance (et en aucun cas après le 20 décembre) l&#039;archive sur Moodle.&lt;br /&gt;
* le rapport de charge (benchmark) doit être (MUST) fourni dans la documentation.&lt;br /&gt;
* le rapport sur les métriques logicielles doit être (MUST) fourni dans la documentation.&lt;br /&gt;
&lt;br /&gt;
=Organisation 2018-2019=&lt;br /&gt;
&lt;br /&gt;
==Planning==&lt;br /&gt;
===M2PGI (Alternant)===&lt;br /&gt;
&#039;&#039;&#039;Equipe pédagogique:&#039;&#039;&#039; VL = Vincent Lesne, NDP= Noel De Palma, SC = Sybille Caffiaux, SCB = Sebastien Chassande, UD=Ugo Decharriere	 &lt;br /&gt;
&lt;br /&gt;
*03 sept 09h-12h    	F022, Boot Projet (NDP)&lt;br /&gt;
*03 sept 14h-17h		TD F118 / TP F217, Cours Spring (SCB/NDP)&lt;br /&gt;
*04 sept 09h-12h   	TD F218 / TP F217, Cours Angular (SCB/NDP) &lt;br /&gt;
*04 sept 14h-17h		TD F218 / TP F217, Cours Angular (SCB/NDP) &lt;br /&gt;
*05 sept 09h-12h   	TD F218 / TP F217, Libre service  &lt;br /&gt;
*05 sept 14h-17h   	TD F218 / TP F217, Libre service  &lt;br /&gt;
*06 sept 09h-12h 		TD F118,                  Cours IHM (SC)&lt;br /&gt;
*06 sept 14h-17h		TD F118 / TP F217, Cours Cloud (UD) &lt;br /&gt;
*07 sept 09h-12h		TD F114 / TP F211, Cours Agile (VL)  &lt;br /&gt;
*07 sept 14h-17h		TD F114 / TP F211, Cours Agile (VL) &lt;br /&gt;
*10 sept 09h-12h		TD F218 / TP F217, Audit Syst. (SCB/NDP)  &lt;br /&gt;
*10 sept 14h-17h		TD F218 / TP F217, Audit Agile (VL)&lt;br /&gt;
*11 sept 09h-12h		TD F118 / TP F217, Libre service&lt;br /&gt;
*11 sept 14h-17h		TD F118 / TP F217, Libre service&lt;br /&gt;
*12 sept 09h-12h		TD F218 / TP F217, Libre Service&lt;br /&gt;
*12 sept 14h-17h		TD F218 / TP F217, Libre Service&lt;br /&gt;
*13 sept 09h-12h		TD F118 / TP F217, Audit Syst. (SCB, NDP) &lt;br /&gt;
*13 sept 14h-17h		TD F118 / TP F217, Audit Agile (VL)&lt;br /&gt;
*14 sept 09h-12h		TD F114 / TP F214, Point Infra. (UD)&lt;br /&gt;
*14 sept 14h-17h		TD F114 / TP F214, Libre Service&lt;br /&gt;
*17 sept 09h-12h		TD F109 / TP F216, Audit Syst.  (SCB/NDP) &lt;br /&gt;
*17 sept 14h-17h		TD F109 / TP F216, Audit Agile (VL)&lt;br /&gt;
*18 sept 09h-12h 		TD F118 / TP F217, Libre Service&lt;br /&gt;
*18 sept 14h-17h		TD F118 / TP F217, Point Infra. (UD)&lt;br /&gt;
*19 sept 09h-12h		TD F218 / TP F217, Libre Service&lt;br /&gt;
*19 sept 14h-17h		TD F218 / TP F217, Libre Service		&lt;br /&gt;
*20 sept 09h-12h		TD F118 / TP F217, Point Infra. (UD) &lt;br /&gt;
*20 sept 14h-17h		TD F118 / TP F217, Libre Service&lt;br /&gt;
*21 sept 09h-12h		TD F109 / TD F114 / TP F211, Soutenance&lt;br /&gt;
*21 sept 14h-17h		TD F109 / TD F114 / TP F211, Soutenance&lt;br /&gt;
&lt;br /&gt;
===M2PGI (Classique)===&lt;br /&gt;
&#039;&#039;&#039;Equipe pédagogique:&#039;&#039;&#039; Noël de Palma (NdP), Vincent Lesne (VL), Sybille Caffiau (SC), Sebastien Chassand-Barrioz (SCB), Ugo Decharriere (UD)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dates Importantes:&#039;&#039;&#039;&lt;br /&gt;
*28 sept  14h-17h 		F319 TD, F204 TP, Cours Spring (SCB/NDP)&lt;br /&gt;
&lt;br /&gt;
*05 oct 09h-12h    	F114 TD, F215 TP, Cours Angular (SCB/NDP) &lt;br /&gt;
*05 oct 14h-17h   		F319 TD, F204 TP,  Cours Angular (SCB/NDP) &lt;br /&gt;
&lt;br /&gt;
*12 oct 	09h-12h 		F114 TD, Cours Agile (VL)   &lt;br /&gt;
*12 oct 	14h-17h		F319 TD, Cours Agile (VL)  &lt;br /&gt;
&lt;br /&gt;
*19 oct 	09h-12h		F114 TD, F215 TP,  Cours Angular (SCB/NDP) &lt;br /&gt;
*19 oct  14h-17h 		F319 TD, F204 TP, Cours Cloud (UD) &lt;br /&gt;
&lt;br /&gt;
*26 oct 9h-12h 		F215 TP, F109 TD, Audit Système  (SCB, NDP)&lt;br /&gt;
*26 oct	14h-17h 		F204 TP,  Audit Agile (VL) &lt;br /&gt;
&lt;br /&gt;
*09 nov 9h-10h30		F114 TD, F215, Libre Service&lt;br /&gt;
*09 nov 14h-17h 	        F319 TD, F204 TP, Cours IHM (SC) puis Libre Service&lt;br /&gt;
&lt;br /&gt;
*16 nov	, 9h-12h		F215 TP,  Audit Système (SCB, NDP).&lt;br /&gt;
*16 nov 14h-17		F204 TP,  Audit Agile (VL) &lt;br /&gt;
&lt;br /&gt;
*23 nov 9h-12h 	F215 TP, Point Infra (UD).&lt;br /&gt;
*23 nov 14h-17h		F319 TD, F204 TP, Libre Service&lt;br /&gt;
&lt;br /&gt;
*30 nov 9h-12h	F215 TP,  Audit Système (SCB, NDP). &lt;br /&gt;
*30 nov 14h-17h 		F204 TP,  Audit Agile (VL)&lt;br /&gt;
&lt;br /&gt;
*07dec 9h-12h 		F215 TP, Point Infra (UD)&lt;br /&gt;
*07 dec 14-17h		F319 TD, F204 TP, Libre Service&lt;br /&gt;
&lt;br /&gt;
*14 dec 9h-12h		F215 TP, Audit système  (SCB, NDP)&lt;br /&gt;
*14 dec 14h-17h  		F204 TP, Point Infra (UD)&lt;br /&gt;
&lt;br /&gt;
*17 dec-21 dec		F216/F215 TP semaine bloquée libre service&lt;br /&gt;
*Le 21/12 soutenances tte la  journée F215/F216&lt;br /&gt;
&lt;br /&gt;
==Groupes==&lt;br /&gt;
===M2PGI Apprenti===&lt;br /&gt;
&lt;br /&gt;
===M2PGI Classique===&lt;br /&gt;
Consigne pour la constitution des groupes : Les étudiants ayant choisis l&#039;option multimobile doivent se mettre ensemble. Ils doivent constituer des groupes de 4/5 afin d&#039;avoir en tout 4 groupes (de M2 PGI classiques)&lt;br /&gt;
&lt;br /&gt;
==Soutenance==&lt;br /&gt;
===M2PGI Apprenti===&lt;br /&gt;
&lt;br /&gt;
===M2PGI Classique===&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-M2PGI&amp;diff=42602</id>
		<title>ECOM-M2PGI</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-M2PGI&amp;diff=42602"/>
		<updated>2018-10-25T16:59:05Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Audit 3 (Soutenances) : */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application de commerce électronique. [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Étapes du projet=&lt;br /&gt;
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). &lt;br /&gt;
&lt;br /&gt;
==Conduite de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Il est préconisé d&#039;utiliser la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe.&lt;br /&gt;
&lt;br /&gt;
===Critères d&#039;évaluation===&lt;br /&gt;
La conduite du projet sera principalement évaluée en fonction des critères suivants :&lt;br /&gt;
* vous devez choisir un Scrum Master (unique ou tournant) : vous devez justifier votre choix&lt;br /&gt;
* durée du sprint (idem : vous devez justifier votre choix)&lt;br /&gt;
Sur ces 2 premiers critères, vous n&#039;en changez pas !!!&lt;br /&gt;
&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à créer un wiki qui regroupera l&#039;ensemble de vos documentations. Cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
Un point de bonus pour ceux qui réussiront à mettre en place des &amp;quot;poker planning&amp;quot;.&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
==Partie IHM==&lt;br /&gt;
&lt;br /&gt;
===Etapes et documents demandés===&lt;br /&gt;
Le détail sur l&#039;organisation et l&#039;évaluation du travail concernant les spécifications du site sera communiqué lors des premières séances de cours. Liste des Livrables et date de rendu pour les M2PGI Alternants :&lt;br /&gt;
&lt;br /&gt;
* Livrable 1 : par email, membres du groupe et brève description du sujet (un seul groupe OK)&lt;br /&gt;
&lt;br /&gt;
====[[Audit 1 :]]====&lt;br /&gt;
* L2.1 : Description des profils&lt;br /&gt;
* L2.2 : Questionnaire profils (OPT-ALT)&lt;br /&gt;
* L3.1 : Scénarios&lt;br /&gt;
* L3.2 : Analyse de la concurrence (OPT-ALT)&lt;br /&gt;
* L3.3 : Questionnaire sur l&#039;utilisation (OPT-ALT)&lt;br /&gt;
* L4 : Modèles de tâches (Audit 2 pour ALT)&lt;br /&gt;
* L5 : Fonctionnalités&lt;br /&gt;
* L6.1 : Objectifs pour chaque version (priorités de développement)&lt;br /&gt;
&lt;br /&gt;
====[[Audit 2 :]]====&lt;br /&gt;
* Mise à jour de L2 à L6.1&lt;br /&gt;
* L7.1 : Architecture (OPT-ALT)&lt;br /&gt;
* L7.2 : Base de données (OPT-ALT)&lt;br /&gt;
* L7.3 : IHM Abstraite&lt;br /&gt;
* L7.4 : Maquettes&lt;br /&gt;
* L6.2 : Objectifs pour les versions suivantes&lt;br /&gt;
* L8 : Démo de V0&lt;br /&gt;
&lt;br /&gt;
====[[Audit 3 (Soutenances) :]]====&lt;br /&gt;
* Mise à jour de L7.3 (correction des erreurs)&lt;br /&gt;
* L9 : Rapport d&#039;évaluation experte (imprimé pour la soutenance)&lt;br /&gt;
* L10 : Rapport d&#039;évaluation par expérimentation (imprimé pour la soutenance)&lt;br /&gt;
* L11 : Démonstration finale&lt;br /&gt;
* L12 : Diapos de votre présentation (version numérique à laquelle l&#039;enseignant a accès au moment de votre passage)&lt;br /&gt;
&lt;br /&gt;
OPT signifie que le livrable est optionnel soit parce qu&#039;il ne s&#039;applique pas à tous les groupes, soit parce qu&#039;il ne peut qu&#039;apporter une plus value à votre projet (points en plus mais pas en moins au moment de l&#039;attribution de la note).&lt;br /&gt;
Lorsque ce n&#039;est pas précisé, c&#039;est à vous de choisir le mode présentation (écrit, schéma...) des informations du livrable&lt;br /&gt;
&lt;br /&gt;
===Critères d&#039;évaluation===&lt;br /&gt;
La partie IHM du projet sera principalement évaluée en fonction des critères suivants : &lt;br /&gt;
* Conformité de l&#039;IHM concrète et abstraite avec le modèle de tâches &lt;br /&gt;
* Couverture fonctionnelle de l&#039;application et robustesse au regard des priorités que vous avez retenues &lt;br /&gt;
* Qualité ergonomique au regard des principes vus en cours &lt;br /&gt;
* Rigueur de la démarche&lt;br /&gt;
&lt;br /&gt;
La note est obtenue par l&#039;évaluation tout au long du projet elle est composée de :&lt;br /&gt;
* Les besoins (3 pts) : informations sur  les besoins que vous allez prendre en compte (livrables et audit 1)&lt;br /&gt;
* La conception (5 pts) : proposition de solution pour répondre aux besoins (livrables et audit 2)&lt;br /&gt;
* L&#039;évaluation (3 pts) : évaluation de votre (ou vos) solution(s) (livrable et soutenance finale)&lt;br /&gt;
* Présentations (3 pts) : qualité des présentations (documents, email et slides de soutenance finale)&lt;br /&gt;
* Développement (6 pts) : qualité et quantité du code (démo et code)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les notes des membres du groupe peuvent être différentes en fonction du travail fourni et constaté par l&#039;enseignant.&lt;br /&gt;
&lt;br /&gt;
==Partie Système==&lt;br /&gt;
&lt;br /&gt;
Remarque : Aucune des phases du projet ne nécessite le développement d&#039;un client lourd en mode graphique (SWT ...). &lt;br /&gt;
===Documents demandés===&lt;br /&gt;
Deux rapports doivent être rédigés pour la partie Système : un document de conception système et un document d&#039;évaluation système.&lt;br /&gt;
&lt;br /&gt;
====Document de conception système====&lt;br /&gt;
Le dossier de conception système (DCS) a pour but de permettre à toute personne de connaitre les principaux composants de votre application ECOM. Cette connaissance doit pouvoir être acquise rapidement, sans avoir à entrer dans les détails de l&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
====Document d&#039;évaluation système====&lt;br /&gt;
&lt;br /&gt;
Le rapport final système du projet ECOM a pour but de préciser l’état d’avancement de votre application ECOM.&lt;br /&gt;
&lt;br /&gt;
Le rapport final système doit préciser : &lt;br /&gt;
* L’état de chaque composant : non réalisé, réalisé, réalisé et validé &lt;br /&gt;
* Les fonctions réalisées, réalisées et testées, et celles restant à réaliser &lt;br /&gt;
* Les propriétés non fonctionnelles garanties par votre réalisation, et celles restant à considérer pour finaliser votre application &lt;br /&gt;
* Le temps consacré à la conception système &lt;br /&gt;
* Le temps consacré au développement système &lt;br /&gt;
* Les principales difficultés rencontrées &lt;br /&gt;
===Critères d&#039;évaluation===&lt;br /&gt;
La partie système du projet sera principalement évaluée en fonction des critères suivants : &lt;br /&gt;
* Conformité aux spécifications de l&#039;application et aux consignes données dans le cadre du projet &lt;br /&gt;
* Respect des échéances pour les différentes étapes du projet (y compris pour les prototypes intermédiaires et les documents) &lt;br /&gt;
* Qualité de l&#039;architecture de l&#039;application &lt;br /&gt;
* Qualité et robustesse du code applicatif &lt;br /&gt;
* Compréhension des principaux concepts de la technologie Web &lt;br /&gt;
* Rigueur de la démarche de conception &lt;br /&gt;
* Qualité des présentations/soutenances &lt;br /&gt;
En complément, les aspects suivants seront également considérés : &lt;br /&gt;
* Méthodologie de test &lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud &lt;br /&gt;
* Préparation d&#039;images de VMs avec [[Kameleon]]&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]] ou OW2 CLIF) &lt;br /&gt;
* Supervision du système déployé avec des sondes [[Nagios]] ou [[Shinken]] conditionnées dans les VMs à déployer.&lt;br /&gt;
* Utilisation (optionnelle) de technologies/APIs/frameworks avancés&lt;br /&gt;
&lt;br /&gt;
==Consignes pour la soutenance==&lt;br /&gt;
===Consignes spécifiques pour les soutenances IHM===&lt;br /&gt;
Salle : F113&lt;br /&gt;
&lt;br /&gt;
Durée totale : 45 minutes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le 23/09 minuit au plus tard :&lt;br /&gt;
* les documents de conception (hors évaluation), gestion de projet et le code doivent être accessibles à l&#039;enseignant : envoyer un email avec l&#039;ensemble des liens permettant d&#039;y accéder&lt;br /&gt;
&lt;br /&gt;
Le jour de la soutenance :&lt;br /&gt;
* envoyé avant votre passage les liens vers les derniers documents (évaluations + diapositives de soutenance)&lt;br /&gt;
* 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 &lt;br /&gt;
* présentez individuellement un bilan de ce que vous retenez (positif, améliorations personnelles, négatif)&lt;br /&gt;
* arrivez avec l&#039;application démarée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* prévoyez 15 minutes de questions lors de votre passage&lt;br /&gt;
&lt;br /&gt;
===Consignes spécifiques pour les soutenances Système===&lt;br /&gt;
* Apportez un exemplaire du dossier d&#039;évaluation système (déposé la veille sur Moodle) lors de la soutenance. Il n&#039;est pas nécessaire d&#039;apporter un exemplaire du dossier de conception système.&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances avec le service développé.&lt;br /&gt;
* Prévovez environ 30 minutes pour la présentation/démo/questions. Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de VM.&lt;br /&gt;
* 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.&lt;br /&gt;
* Déposez immédiatement après la soutenance (et en aucun cas après le 20 décembre) l&#039;archive sur Moodle.&lt;br /&gt;
* le rapport de charge (benchmark) doit être (MUST) fourni dans la documentation.&lt;br /&gt;
* le rapport sur les métriques logicielles doit être (MUST) fourni dans la documentation.&lt;br /&gt;
&lt;br /&gt;
=Organisation 2018-2019=&lt;br /&gt;
&lt;br /&gt;
==Planning==&lt;br /&gt;
===M2PGI (Alternant)===&lt;br /&gt;
&#039;&#039;&#039;Equipe pédagogique:&#039;&#039;&#039; VL = Vincent Lesne, NDP= Noel De Palma, SC = Sybille Caffiaux, SCB = Sebastien Chassande, UD=Ugo Decharriere	 &lt;br /&gt;
&lt;br /&gt;
*03 sept 09h-12h    	F022, Boot Projet (NDP)&lt;br /&gt;
*03 sept 14h-17h		TD F118 / TP F217, Cours Spring (SCB/NDP)&lt;br /&gt;
*04 sept 09h-12h   	TD F218 / TP F217, Cours Angular (SCB/NDP) &lt;br /&gt;
*04 sept 14h-17h		TD F218 / TP F217, Cours Angular (SCB/NDP) &lt;br /&gt;
*05 sept 09h-12h   	TD F218 / TP F217, Libre service  &lt;br /&gt;
*05 sept 14h-17h   	TD F218 / TP F217, Libre service  &lt;br /&gt;
*06 sept 09h-12h 		TD F118,                  Cours IHM (SC)&lt;br /&gt;
*06 sept 14h-17h		TD F118 / TP F217, Cours Cloud (UD) &lt;br /&gt;
*07 sept 09h-12h		TD F114 / TP F211, Cours Agile (VL)  &lt;br /&gt;
*07 sept 14h-17h		TD F114 / TP F211, Cours Agile (VL) &lt;br /&gt;
*10 sept 09h-12h		TD F218 / TP F217, Audit Syst. (SCB/NDP)  &lt;br /&gt;
*10 sept 14h-17h		TD F218 / TP F217, Audit Agile (VL)&lt;br /&gt;
*11 sept 09h-12h		TD F118 / TP F217, Libre service&lt;br /&gt;
*11 sept 14h-17h		TD F118 / TP F217, Libre service&lt;br /&gt;
*12 sept 09h-12h		TD F218 / TP F217, Libre Service&lt;br /&gt;
*12 sept 14h-17h		TD F218 / TP F217, Libre Service&lt;br /&gt;
*13 sept 09h-12h		TD F118 / TP F217, Audit Syst. (SCB, NDP) &lt;br /&gt;
*13 sept 14h-17h		TD F118 / TP F217, Audit Agile (VL)&lt;br /&gt;
*14 sept 09h-12h		TD F114 / TP F214, Point Infra. (UD)&lt;br /&gt;
*14 sept 14h-17h		TD F114 / TP F214, Libre Service&lt;br /&gt;
*17 sept 09h-12h		TD F109 / TP F216, Audit Syst.  (SCB/NDP) &lt;br /&gt;
*17 sept 14h-17h		TD F109 / TP F216, Audit Agile (VL)&lt;br /&gt;
*18 sept 09h-12h 		TD F118 / TP F217, Libre Service&lt;br /&gt;
*18 sept 14h-17h		TD F118 / TP F217, Point Infra. (UD)&lt;br /&gt;
*19 sept 09h-12h		TD F218 / TP F217, Libre Service&lt;br /&gt;
*19 sept 14h-17h		TD F218 / TP F217, Libre Service		&lt;br /&gt;
*20 sept 09h-12h		TD F118 / TP F217, Point Infra. (UD) &lt;br /&gt;
*20 sept 14h-17h		TD F118 / TP F217, Libre Service&lt;br /&gt;
*21 sept 09h-12h		TD F109 / TD F114 / TP F211, Soutenance&lt;br /&gt;
*21 sept 14h-17h		TD F109 / TD F114 / TP F211, Soutenance&lt;br /&gt;
&lt;br /&gt;
===M2PGI (Classique)===&lt;br /&gt;
&#039;&#039;&#039;Equipe pédagogique:&#039;&#039;&#039; Noël de Palma (NdP), Vincent Lesne (VL), Sybille Caffiau (SC), Sebastien Chassand-Barrioz (SCB), Ugo Decharriere (UD)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dates Importantes:&#039;&#039;&#039;&lt;br /&gt;
*28 sept  14h-17h 		F319 TD, F204 TP, Cours Spring (SCB/NDP)&lt;br /&gt;
&lt;br /&gt;
*05 oct 09h-12h    		F114 TD, F215 TP, Cours Angular (SCB/NDP) &lt;br /&gt;
*05 oct 14h-17h   		F319 TD, F204 TP,  Cours Angular (SCB/NDP) &lt;br /&gt;
&lt;br /&gt;
*12 oct 	09h-12h 		F114 TD, Cours Agile (VL)   &lt;br /&gt;
*12 oct 	14h-17h		F319 TD, Cours Agile (VL)  &lt;br /&gt;
&lt;br /&gt;
*19 oct 	09h-12h		F114 TD, F215 TP,  Cours Angular (SCB/NDP) &lt;br /&gt;
*19 oct  14h-17h 		F319 TD, F204 TP, Cours Cloud (UD) &lt;br /&gt;
&lt;br /&gt;
*26 oct 9h-12h 		F215 TP, F109 TD, Audit Système  (SCB, NDP)&lt;br /&gt;
*26 oct	14h-17h 		F204 TP,  Audit Agile (VL) &lt;br /&gt;
&lt;br /&gt;
*09 nov 9h-10h30		F114 TD, Cours IHM (SC)&lt;br /&gt;
*09 nov 14h-17h 	F319 TD, F204 TP,  Libre Service&lt;br /&gt;
&lt;br /&gt;
*16 nov	, 9h-12h		F215 TP,  Audit Système (SCB, NDP).&lt;br /&gt;
*16 nov 14h-17		F204 TP,  Audit Agile (VL) &lt;br /&gt;
&lt;br /&gt;
*23 nov 9h-12h 	F215 TP, Point Infra (UD).&lt;br /&gt;
*23 nov 14h-17h		F319 TD, F204 TP, Libre Service&lt;br /&gt;
&lt;br /&gt;
*30 nov 9h-12h	F215 TP,  Audit Système (SCB, NDP). &lt;br /&gt;
*30 nov 14h-17h 		F204 TP,  Audit Agile (VL)&lt;br /&gt;
&lt;br /&gt;
*07dec 9h-12h 		F215 TP, Point Infra (UD)&lt;br /&gt;
*07 dec 14-17h		F319 TD, F204 TP, Libre Service&lt;br /&gt;
&lt;br /&gt;
*14 dec 9h-12h		F215 TP, Audit système  (SCB, NDP)&lt;br /&gt;
*14 dec 14h-17h  		F204 TP, Point Infra (UD)&lt;br /&gt;
&lt;br /&gt;
*17 dec-21 dec		F216/F215 TP semaine bloquée libre service&lt;br /&gt;
*Le 21/12 soutenances tte la  journée F215/F216&lt;br /&gt;
&lt;br /&gt;
==Groupes==&lt;br /&gt;
===M2PGI Apprenti===&lt;br /&gt;
&lt;br /&gt;
===M2PGI Classique===&lt;br /&gt;
Consigne pour la constitution des groupes : Les étudiants ayant choisis l&#039;option multimobile doivent se mettre ensemble. Ils doivent constituer des groupes de 4/5 afin d&#039;avoir en tout 4 groupes (de M2 PGI classiques)&lt;br /&gt;
&lt;br /&gt;
==Soutenance==&lt;br /&gt;
===M2PGI Apprenti===&lt;br /&gt;
&lt;br /&gt;
===M2PGI Classique===&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42510</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42510"/>
		<updated>2018-10-22T08:47:56Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Planning des séances */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* VZ : Vincent Zurczak (vzurczak@linagora.com)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&#039;&#039;&#039;Autres :&#039;&#039;&#039;&lt;br /&gt;
* ADE : Emploi du temps en ligne&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-1F0 2018-2019===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 18/09 à 8h.&lt;br /&gt;
&lt;br /&gt;
* [[ECOM-1FO_1819_Restaurant]] : &#039;&#039;&#039;Prénom Nom (CP)&#039;&#039;&#039;, Prénom Nom, Prénom Nom, Prénom Nom, Prénom Nom&lt;br /&gt;
* [[ECOM-1FO_1819_Spectacle]] : &#039;&#039;&#039;Thibaud Vegreville (CP)&#039;&#039;&#039;, Joffrey Ferreira, Bastien Terrier, Cédric Lafrasse&lt;br /&gt;
* [[ECOM-1FO_1819_Camping]] : &#039;&#039;&#039;Timothée Depriester (CP)&#039;&#039;&#039;, Sekina Belguendouz, Servan Charlot, Samuel Bamba, Florian Cuzin&lt;br /&gt;
* [[ECOM-1FO_1819_Transport]] : &#039;&#039;&#039;Prénom Nom (CP)&#039;&#039;&#039;, Prénom Nom, Prénom Nom, Prénom Nom, Prénom Nom&lt;br /&gt;
* [[ECOM-1FO_1819_Sport]] : &#039;&#039;&#039;Hugo Gros-Daillon (CP)&#039;&#039;&#039;, Quentin Fombaron, Tim Lepage, Vincent Aubert&lt;br /&gt;
* [[ECOM-1F0_1819_BTB|ECOM-1FO_1819_BruleTaBuche]] : &#039;&#039;&#039;Léo Valette (CP)&#039;&#039;&#039;, Amina Boucherima, Zoran Chanet, Najwa Ez-zine, Enzo Molion&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2017-2018]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et VZ).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 18/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2018.pdf|transparents]]), CM [[Media:RestfulServices.pdf|REST]], [[MicroServices]], [[Spring]], [[JHipster]] (DD) (P005)&lt;br /&gt;
* 18/09 15h45-18h30 : (DD) Installation [[JHipster]] et [[Docker]]. Génération de l&#039;application MVP de eCOM, lancement du profile dev, lancement du profil prod (avec Docker), analyse de qualité du code (généré) avec le container SonarQube et déploiement sur Heroku de 2 applications (stage, production) (F214, F215).&lt;br /&gt;
&lt;br /&gt;
* 25/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P257)&lt;br /&gt;
* 25/09 15h45-18h30 :  Séance en autonomie (F114, F214)&lt;br /&gt;
&lt;br /&gt;
* 02/10 8h00-12h15 : Test utilisateur (SC) puis Séance en autonomie (P039)&lt;br /&gt;
* 02/10 15h45-18h30 : Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 09/10 8h00-12h15 : Audit 1 (P013) et Séance en autonomie (P105, P133)&lt;br /&gt;
* 09/10 15h45-18h30 :  Tests de robustesse (charges) (VZ)  (F114, F214)&lt;br /&gt;
&lt;br /&gt;
* 16/10 8h00-12h15 : Séance en autonomie (P257)&lt;br /&gt;
* 16/10 15h45-18h30 :  Séance encadrée (SC) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 23/10 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 23/10 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 06/11 8h00-12h15 : Audit 2 (F114) et Séance en autonomie (F202)&lt;br /&gt;
* 06/11 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 12/11  8h00-12h15 : Séance en autonomie (P257)&lt;br /&gt;
&lt;br /&gt;
* 20/11 8h00-12h15 : Séance en autonomie + Séance encadrée (SC) (P257)&lt;br /&gt;
* 20/11 15h45-18h30 :  Séance encadrée (VZ) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 27/11 15h45-18h30 :  Séance encadrée (VZ) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 04/12 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 04/12 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 11/12 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 11/12 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 18/12 8h00-12h15 : Soutenances (F114) et rendus finaux&lt;br /&gt;
* 18/12 15h45-18h30 :  Soutenances (F114) et rendus finaux&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie [[Spring Boot]] / [[JHipster]].&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]] sur plusieurs VM dans un cloud public (AWS, GAE, Heroku, Azure, Bluemix, Digital Ocean ...), le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 09 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 06 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 18 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
Attention : les concepts que vous avez vus en cours d&#039;architecture doivent être mis en application pour l&#039;architecture de votre projet. Une attention particulière sur ce point doit être portée lors de vos présentations à l&#039;audit 2 et à la soutenance. Le travail que vous présenterez fournira de support à l&#039;évaluation du module de GL.&lt;br /&gt;
&lt;br /&gt;
===Audit 1 ===&lt;br /&gt;
*Salle : P013&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- 8h35 : Restaurant &lt;br /&gt;
&lt;br /&gt;
- 9h10 : Spectacle&lt;br /&gt;
&lt;br /&gt;
- 9h45 : Camping&lt;br /&gt;
&lt;br /&gt;
- 10h20 : Transport&lt;br /&gt;
&lt;br /&gt;
- 10h55 : Sport &lt;br /&gt;
&lt;br /&gt;
- 11h30 : Brule ta bûche&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques et état de prise en main&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
* Modèle de tâches et IHMA pour les premières tâches&lt;br /&gt;
&lt;br /&gt;
===Audit 2 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet : &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Architecture complète&lt;br /&gt;
* Procédure de tests&lt;br /&gt;
* Procédure d&#039;intégration du code &lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Entity, Ressources REST (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- groupe 6 : &lt;br /&gt;
&lt;br /&gt;
- groupe 1 :&lt;br /&gt;
&lt;br /&gt;
- groupe 5 : &lt;br /&gt;
&lt;br /&gt;
- groupe 2 : &lt;br /&gt;
&lt;br /&gt;
- groupe 4 : &lt;br /&gt;
&lt;br /&gt;
- groupe 3 : &lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : P&lt;br /&gt;
* Durée totale : 30 min&lt;br /&gt;
* Utilisez des transparents pour présenter votre projet. Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
* une présentation globale du projet&lt;br /&gt;
* le processus de conception (illustré avec vos différentes productions)&lt;br /&gt;
* la démonstration de votre application&lt;br /&gt;
* des évaluations&lt;br /&gt;
* le bilan (pédagogique ET du projet/individuel ET groupe)&lt;br /&gt;
* le temps consacré à la conception &lt;br /&gt;
* le temps consacré au développement &lt;br /&gt;
* les principales difficultés rencontrées&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* groupe 1&lt;br /&gt;
* groupe 3&lt;br /&gt;
* groupe 5&lt;br /&gt;
* groupe 4&lt;br /&gt;
* groupe 6&lt;br /&gt;
* groupe 2&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et VZ pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Tout votre projet doit être suivi grâce à gitLab.&lt;br /&gt;
&lt;br /&gt;
A tout moment, les enseignants doivent donc pouvoir &lt;br /&gt;
* avoir la dernière version du code (dernière version du logiciel en production et ce qui est en cours de développement dans des branches dédiées)&lt;br /&gt;
* voir les tâches prévues/en cours/réalisées&lt;br /&gt;
* savoir le travail de chaque membre (effectué et assigné)&lt;br /&gt;
* consulter les documents de conception (à jour) &lt;br /&gt;
* consulter les CR des daily meeting et autres réunions et les rétrospectives et vos présentations aux différents audits&lt;br /&gt;
* avoir connaissance des procédures de qualité que vous mettez en place au sein de votre projet&lt;br /&gt;
* consulter les résultats des différents tests pour chaque release&lt;br /&gt;
&lt;br /&gt;
Attention : nous insistons particulièrement sur le fait que toutes ces données doivent être maintenues en temps réel et accessibles sur le gitlab de votre projet.&lt;br /&gt;
&lt;br /&gt;
Attention : nous consulterons également les messages de commit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Vous trouverez ci-dessous une liste (non exhaustive) de certains livrables pouvant être produits au sein de votre projet&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;. (obligatoire)&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Le Dossier de Conception Système (DCS) a pour but de permettre à toute personne de connaitre les principaux composants Spring de votre application ECOM. Cette connaissance doit pouvoir être acquise rapidement, sans avoir à entrer dans les détails de l&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation Spring : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;environnement Spring. Un composant peut être implanté par un client généré à partir de l&#039;interface de/des micro-services, par un micro-service REST (Controller), par un Service, par un Entity ou par un client Feign vers un micro-service externe au systeme (par exemple, service de paiement Swipe.com, ...).&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (tableau de tâches de Gitlab)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Evaluation de la cybersécurité du projet (option)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Evaluation des performances du projet (option)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Résultat d&#039;une injection de charge simpliste avec [[Gatling]]&lt;br /&gt;
* Résultat d&#039;une injection de charge suivant un scénario complet avec [[Gatling]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Gestion des risques (option)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Slides de présentation conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L19. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L20. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L21. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L22. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à utiliser un outil adapté cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
Vous devez utiliser GitLab comme support à votre projet (versioning, gestion des tâches...).&lt;br /&gt;
&lt;br /&gt;
Nous vous demandons également d&#039;utiliser les issues pour la communication avec les enseignants. En particulier, toute absence ou télétravail doit être signalé par ce média.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer un groupe GitLab. Y ajouter les membres du projet eCOM. Créer plusieurs projets pour les différents parties. Activer les notifications. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;est-à-dire le modèle de données (UML ou similaire [https://www.jhipster.tech/jdl/ JDL]) et la logique métier, puis à réaliser un premier prototype qui démontre une bonne maîtrise des Entity (annotations JAX-RS, annotations [[Swagger]]).&lt;br /&gt;
&lt;br /&gt;
L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl (généré avec le générateur [https://swagger.io/tools/swagger-codegen/ swagger-codegen]), [[Swagger]] UI, injecteur de charge [[Gatling]], ....) et le frontend AngularX que vous aurez généré avec [[JHipster]].&lt;br /&gt;
&lt;br /&gt;
Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et utilisateurs finaux) et exécuter certaines requêtes avec des garanties transactionnelles.&lt;br /&gt;
&lt;br /&gt;
TRES IMPORTANT : Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]]/IPtables pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, ...) pour la production (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] ou [[Nginx]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
# Génération et rafraichissement des certificats SSL avec [[Let&#039;s Encrypt]]&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec un FileStorageService ([https://www.callicoder.com/spring-boot-file-upload-download-rest-api-example/ lien]) &lt;br /&gt;
** Gestion adaptative des contenus multimedia (photos) avec un ThumbnailService (montrez l&#039;amélioration des performances avec Gatling)&lt;br /&gt;
** Gestion du cache client pour les photos et les thumbnails avec Cache-Control et ETag (montrez l&#039;amélioration des performances avec Gatling)&lt;br /&gt;
** Utilisation de mode Lazy pour les chargements (fetch) des collections et des médias (CLOB,BLOB).&lt;br /&gt;
** Génération d&#039;une application mobile [[Ionic]] avec [https://github.com/oktadeveloper/generator-jhipster-ionic generator-jhipster-ionic] (inclure les plugins [[Apache Cordova]] utiles à votre projet).&lt;br /&gt;
** Utilisation d&#039;un cache ([https://www.jhipster.tech/using-cache/ préconisé par JHipster])&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Génération de documents PDF à partir des valeurs de champs d&#039;une entité ou du collection d&#039;entités (exemple d&#039;applications : facture, dossard coureur, export RGPD, ...) [https://www.stackextend.com/java/generate-pdf-document-using-jasperreports-and-spring-boot/ lien]&lt;br /&gt;
** Import et export massifs de collections d&#039;entités en format CSV, JSON.&lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters/Aspects en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST avec [[Keycloak]] ou [[OKTA]].&lt;br /&gt;
** Utilisation du service de paiement Stripe.com en mode développeur&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Chatbot du helpdesk (comme [https://github.com/ovh-ux/ovh-chatbot ovh-chatbot])&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Minikube]], [[Kubernetes]], [[Rancher]] ou [[Docker Swarm]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers.&lt;br /&gt;
** Script périodique (crontab) de dump et de backup distant de la base MySQL.&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via le MailService, Thymeleaf et des taches @Scheduled&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS (si le destinataire a un compte gratuit pour l&#039;auto-réception de SMS)&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google, [https://www.jhipster.tech/heroku/ Heroku])&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]] ou [[Gatling]]) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le rolling update des composants répliqués (application, base de données, serveurs de mail, load balancer). Remarque: [[Kubernetes]] gère les rolling updates ([https://kubernetes.io/docs/tasks/run-application/rolling-update-replication-controller/ lien]).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom. JHipster génère le dockerfile de l&#039;application et quelques descripteurs docker-compose.&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]], [[Hawkular]], [[Telegraf]] + [[InfluxDB]] + [[Grafana]], [[Prometheus]] ...* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des mécanismes pour intégrer les besoins des utilisateurs&lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
===Evaluation des IHMs===&lt;br /&gt;
Une IHM doit être évaluée par au moins deux types d&#039;évaluation (en plus de l&#039;évaluation fonctionnelle) :&lt;br /&gt;
* évaluation experte pour vérifier que les principes fondamentaux d&#039;utilisabilité sont respectés&lt;br /&gt;
* tests utilisateur pour étudier comment vos utilisateurs utilise dans leurs contextes d&#039;utilisation votre interface&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2018-2019.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur ces technologies se périment très vite.&lt;br /&gt;
&lt;br /&gt;
====[[Spring]]====&lt;br /&gt;
* Bons tutoriels sur https://www.baeldung.com/rest-with-spring-series/&lt;br /&gt;
* Les manuels de références de Spring https://spring.io/projects/spring-boot#overview&lt;br /&gt;
* Craig Walls, Spring in Action, Fifth Edition, https://www.manning.com/books/spring-in-action-fifth-edition&lt;br /&gt;
&lt;br /&gt;
====[[JHipster]]====&lt;br /&gt;
* Matt Raible, The JHipster Mini-Book 4.5 (GRATUIT) https://www.infoq.com/minibooks/jhipster-4x-mini-book&lt;br /&gt;
* Deepu K Sasidharan, Sendil Kumar N, Full Stack Development with JHipster, (10 $ en promotion) March 2018, https://www.packtpub.com/application-development/full-stack-development-jhipster &lt;br /&gt;
&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42284</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42284"/>
		<updated>2018-10-08T07:42:57Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Audit 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* VZ : Vincent Zurczak (vzurczak@linagora.com)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&#039;&#039;&#039;Autres :&#039;&#039;&#039;&lt;br /&gt;
* ADE : Emploi du temps en ligne&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-RICM 2018-2019===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 18/09 à 8h.&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2017-2018]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et VZ).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 18/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2018.pdf|transparents]]), CM [[Media:RestfulServices.pdf|REST]], [[MicroServices]], [[Spring]], [[JHipster]] (DD) (P005)&lt;br /&gt;
* 18/09 15h45-18h30 : (DD) Installation [[JHipster]] et [[Docker]]. Génération de l&#039;application MVP de eCOM, lancement du profile dev, lancement du profil prod (avec Docker), analyse de qualité du code (généré) avec le container SonarQube et déploiement sur Heroku de 2 applications (stage, production) (F214, F215).&lt;br /&gt;
&lt;br /&gt;
* 25/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P257)&lt;br /&gt;
* 25/09 15h45-18h30 :  Séance en autonomie (F114, F214)&lt;br /&gt;
&lt;br /&gt;
* 02/10 8h00-12h15 : Test utilisateur (SC) puis Séance en autonomie (P039)&lt;br /&gt;
* 02/10 15h45-18h30 : Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 09/10 8h00-12h15 : Audit 1 (P013) et Séance en autonomie (P105, P133)&lt;br /&gt;
* 09/10 15h45-18h30 :  Tests de robustesse (charges) (VZ)  (F114, F214)&lt;br /&gt;
&lt;br /&gt;
* 16/10 8h00-12h15 : Séance en autonomie (P257)&lt;br /&gt;
* 16/10 15h45-18h30 :  Séance encadrée (SC) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 23/10 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 23/10 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 06/11 8h00-12h15 : Audit 2 (F114) et Séance en autonomie (F202)&lt;br /&gt;
* 06/11 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 20/11 8h00-12h15 : Séance en autonomie + Séance encadrée (SC) (P257)&lt;br /&gt;
* 20/11 15h45-18h30 :  Séance encadrée (VZ) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 27/11 8h00-12h15 : Séance en autonomie (P257)&lt;br /&gt;
* 27/11 15h45-18h30 :  Séance encadrée (VZ) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 04/12 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 04/12 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 11/12 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 11/12 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 18/12 8h00-12h15 : Soutenances (F114) et rendus finaux&lt;br /&gt;
* 18/12 15h45-18h30 :  Soutenances (F114) et rendus finaux&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie [[Spring Boot]] / [[JHipster]].&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]] sur plusieurs VM dans un cloud public (AWS, GAE, Heroku, Azure, ...), le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 09 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 06 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 18 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
Attention : les concepts que vous avez vus en cours d&#039;architecture doivent être mis en application pour l&#039;architecture de votre projet. Une attention particulière sur ce point doit être portée lors de vos présentations à l&#039;audit 2 et à la soutenance. Le travail que vous présenterez fournira de support à l&#039;évaluation du module de GL.&lt;br /&gt;
&lt;br /&gt;
===Audit 1 ===&lt;br /&gt;
*Salle : P013&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- 8h35 : Restaurant &lt;br /&gt;
&lt;br /&gt;
- 9h10 : Spectacle&lt;br /&gt;
&lt;br /&gt;
- 9h45 : Camping&lt;br /&gt;
&lt;br /&gt;
- 10h20 : Transport&lt;br /&gt;
&lt;br /&gt;
- 10h55 : Sport &lt;br /&gt;
&lt;br /&gt;
- 11h30 : Brule ta bûche&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques et état de prise en main&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
* Modèle de tâches et IHMA pour les premières tâches&lt;br /&gt;
&lt;br /&gt;
===Audit 2 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet : &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Architecture complète&lt;br /&gt;
* Procédure de tests&lt;br /&gt;
* Procédure d&#039;intégration du code &lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Entity, Ressources REST (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- groupe 6 : &lt;br /&gt;
&lt;br /&gt;
- groupe 1 :&lt;br /&gt;
&lt;br /&gt;
- groupe 5 : &lt;br /&gt;
&lt;br /&gt;
- groupe 2 : &lt;br /&gt;
&lt;br /&gt;
- groupe 4 : &lt;br /&gt;
&lt;br /&gt;
- groupe 3 : &lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : P&lt;br /&gt;
* Durée totale : 30 min&lt;br /&gt;
* Utilisez des transparents pour présenter votre projet. Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
* une présentation globale du projet&lt;br /&gt;
* le processus de conception (illustré avec vos différentes productions)&lt;br /&gt;
* la démonstration de votre application&lt;br /&gt;
* des évaluations&lt;br /&gt;
* le bilan (pédagogique ET du projet/individuel ET groupe)&lt;br /&gt;
* le temps consacré à la conception &lt;br /&gt;
* le temps consacré au développement &lt;br /&gt;
* les principales difficultés rencontrées&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* groupe 1&lt;br /&gt;
* groupe 3&lt;br /&gt;
* groupe 5&lt;br /&gt;
* groupe 4&lt;br /&gt;
* groupe 6&lt;br /&gt;
* groupe 2&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et VZ pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Tout votre projet doit être suivi grâce à gitLab.&lt;br /&gt;
&lt;br /&gt;
A tout moment, les enseignants doivent donc pouvoir &lt;br /&gt;
* avoir la dernière version du code (dernière version du logiciel en production et ce qui est en cours de développement dans des branches dédiées)&lt;br /&gt;
* voir les tâches prévues/en cours/réalisées&lt;br /&gt;
* savoir le travail de chaque membre (effectué et assigné)&lt;br /&gt;
* consulter les documents de conception (à jour) &lt;br /&gt;
* consulter les CR des daily meeting et autres réunions et les rétrospectives et vos présentations aux différents audits&lt;br /&gt;
* avoir connaissance des procédures de qualité que vous mettez en place au sein de votre projet&lt;br /&gt;
* consulter les résultats des différents tests pour chaque release&lt;br /&gt;
&lt;br /&gt;
Attention : nous insistons particulièrement sur le fait que toutes ces données doivent être maintenues en temps réel et accessibles sur le gitlab de votre projet.&lt;br /&gt;
&lt;br /&gt;
Attention : nous consulterons également les messages de commit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Vous trouverez ci-dessous une liste (non exhaustive) de certains livrables pouvant être produits au sein de votre projet&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;. (obligatoire)&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Le Dossier de Conception Système (DCS) a pour but de permettre à toute personne de connaitre les principaux composants Spring de votre application ECOM. Cette connaissance doit pouvoir être acquise rapidement, sans avoir à entrer dans les détails de l&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation Spring : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;environnement Spring. Un composant peut être implanté par un client généré à partir de l&#039;interface de/des micro-services, par un micro-service REST (Controller), par un Service, par un Entity ou par un client Feign vers un micro-service externe au systeme (par exemple, service de paiement Swipe.com, ...).&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (tableau de tâches de Gitlab)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation des performances du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Résultat d&#039;une injection de charge simpliste avec [[Gatling]]&lt;br /&gt;
* Résultat d&#039;une injection de charge suivant un scénario complet avec [[Gatling]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à utiliser un outil adapté cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
Vous devez utiliser GitLab comme support à votre projet (versioning, gestion des tâches...).&lt;br /&gt;
&lt;br /&gt;
Nous vous demandons également d&#039;utiliser les issues pour la communication avec les enseignants. En particulier, toute absence ou télétravail doit être signalé par ce média.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer un groupe GitLab. Y ajouter les membres du projet eCOM. Créer plusieurs projets pour les différents parties. Activer les notifications. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;est-à-dire le modèle de données (UML ou similaire [https://www.jhipster.tech/jdl/ JDL]) et la logique métier, puis à réaliser un premier prototype qui démontre une bonne maîtrise des Entity (annotations JAX-RS, annotations [[Swagger]]).&lt;br /&gt;
&lt;br /&gt;
L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl (généré avec le générateur [https://swagger.io/tools/swagger-codegen/ swagger-codegen]), [[Swagger]] UI, injecteur de charge [[Gatling]], ....) et le frontend AngularX que vous aurez généré avec [[JHipster]].&lt;br /&gt;
&lt;br /&gt;
Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et utilisateurs finaux) et exécuter certaines requêtes avec des garanties transactionnelles.&lt;br /&gt;
&lt;br /&gt;
TRES IMPORTANT : Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]]/IPtables pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, ...) pour la production (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] ou [[Nginx]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
# Génération et rafraichissement des certificats SSL avec [[Let&#039;s Encrypt]]&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec un FileStorageService ([https://www.callicoder.com/spring-boot-file-upload-download-rest-api-example/ lien]) &lt;br /&gt;
** Gestion adaptative des contenus multimedia (photos) avec un ThumbnailService (montrez l&#039;amélioration des performances avec Gatling)&lt;br /&gt;
** Gestion du cache client pour les photos et les thumbnails avec Cache-Control et ETag (montrez l&#039;amélioration des performances avec Gatling)&lt;br /&gt;
** Utilisation de mode Lazy pour les chargements (fetch) des collections et des médias (CLOB,BLOB).&lt;br /&gt;
** Génération d&#039;une application mobile [[Ionic]] avec [https://github.com/oktadeveloper/generator-jhipster-ionic generator-jhipster-ionic] (inclure les plugins [[Apache Cordova]] utiles à votre projet).&lt;br /&gt;
** Utilisation d&#039;un cache ([https://www.jhipster.tech/using-cache/ préconisé par JHipster])&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Génération de documents PDF à partir des valeurs de champs d&#039;une entité ou du collection d&#039;entités (exemple d&#039;applications : facture, dossard coureur, export RGPD, ...) [https://www.stackextend.com/java/generate-pdf-document-using-jasperreports-and-spring-boot/ lien]&lt;br /&gt;
** Import et export massifs de collections d&#039;entités en format CSV, JSON.&lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters/Aspects en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST avec [[Keycloak]] ou [[OKTA]].&lt;br /&gt;
** Utilisation du service de paiement Stripe.com en mode développeur&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Chatbot du helpdesk (comme [https://github.com/ovh-ux/ovh-chatbot ovh-chatbot])&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Minikube]], [[Kubernetes]], [[Rancher]] ou [[Docker Swarm]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers.&lt;br /&gt;
** Script périodique (crontab) de dump et de backup distant de la base MySQL.&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via le MailService, Thymeleaf et des taches @Scheduled&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS (si le destinataire a un compte gratuit pour l&#039;auto-réception de SMS)&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google, [https://www.jhipster.tech/heroku/ Heroku])&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]] ou [[Gatling]]) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le rolling update des composants répliqués (application, base de données, serveurs de mail, load balancer). Remarque: [[Kubernetes]] gère les rolling updates ([https://kubernetes.io/docs/tasks/run-application/rolling-update-replication-controller/ lien]).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom. JHipster génère le dockerfile de l&#039;application et quelques descripteurs docker-compose.&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]], [[Hawkular]], [[Telegraf]] + [[InfluxDB]] + [[Grafana]] ...* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des mécanismes pour intégrer les besoins des utilisateurs&lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
===Evaluation des IHMs===&lt;br /&gt;
Une IHM doit être évaluée par au moins deux types d&#039;évaluation (en plus de l&#039;évaluation fonctionnelle) :&lt;br /&gt;
* évaluation experte pour vérifier que les principes fondamentaux d&#039;utilisabilité sont respectés&lt;br /&gt;
* tests utilisateur pour étudier comment vos utilisateurs utilise dans leurs contextes d&#039;utilisation votre interface&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2018-2019.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur ces technologies se périment très vite.&lt;br /&gt;
&lt;br /&gt;
====[[Spring]]====&lt;br /&gt;
* Bons tutoriels sur https://www.baeldung.com/rest-with-spring-series/&lt;br /&gt;
* Les manuels de références de Spring https://spring.io/projects/spring-boot#overview&lt;br /&gt;
&lt;br /&gt;
====[[JHipster]]====&lt;br /&gt;
* Matt Raible, The JHipster Mini-Book 4.5 (GRATUIT) https://www.infoq.com/minibooks/jhipster-4x-mini-book&lt;br /&gt;
* Deepu K Sasidharan, Sendil Kumar N, Full Stack Development with JHipster, (10 $ en promotion) March 2018, https://www.packtpub.com/application-development/full-stack-development-jhipster &lt;br /&gt;
&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42265</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42265"/>
		<updated>2018-10-03T11:01:16Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Audit 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* VZ : Vincent Zurczak (vzurczak@linagora.com)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&#039;&#039;&#039;Autres :&#039;&#039;&#039;&lt;br /&gt;
* ADE : Emploi du temps en ligne&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-RICM 2018-2019===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 18/09 à 8h.&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2017-2018]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et VZ).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 18/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2018.pdf|transparents]]), CM [[Media:RestfulServices.pdf|REST]], [[MicroServices]], [[Spring]], [[JHipster]] (DD) (P005)&lt;br /&gt;
* 18/09 15h45-18h30 : (DD) Installation [[JHipster]] et [[Docker]]. Génération de l&#039;application MVP de eCOM, lancement du profile dev, lancement du profil prod (avec Docker), analyse de qualité du code (généré) avec le container SonarQube et déploiement sur Heroku de 2 applications (stage, production) (F214, F215).&lt;br /&gt;
&lt;br /&gt;
* 25/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P257)&lt;br /&gt;
* 25/09 15h45-18h30 :  Séance en autonomie (F114, F214)&lt;br /&gt;
&lt;br /&gt;
* 02/10 8h00-12h15 : Test utilisateur (SC) puis Séance en autonomie (P039)&lt;br /&gt;
* 02/10 15h45-18h30 : Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 09/10 8h00-12h15 : Audit 1 (P013) et Séance en autonomie (P105, P133)&lt;br /&gt;
* 09/10 15h45-18h30 :  Tests de robustesse (charges) (VZ)  (F114, F214)&lt;br /&gt;
&lt;br /&gt;
* 16/10 8h00-12h15 : Séance en autonomie (P257)&lt;br /&gt;
* 16/10 15h45-18h30 :  Séance encadrée (SC) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 23/10 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 23/10 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 06/11 8h00-12h15 : Audit 2 (F114) et Séance en autonomie (F202)&lt;br /&gt;
* 06/11 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 20/11 8h00-12h15 : Séance en autonomie + Séance encadrée (SC) (P257)&lt;br /&gt;
* 20/11 15h45-18h30 :  Séance encadrée (VZ) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 27/11 8h00-12h15 : Séance en autonomie (P257)&lt;br /&gt;
* 27/11 15h45-18h30 :  Séance encadrée (VZ) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 04/12 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 04/12 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 11/12 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 11/12 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 18/12 8h00-12h15 : Soutenances (F114) et rendus finaux&lt;br /&gt;
* 18/12 15h45-18h30 :  Soutenances (F114) et rendus finaux&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie [[Spring Boot]] / [[JHipster]].&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]] sur plusieurs VM dans un cloud public (AWS, GAE, Heroku, Azure, ...), le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 09 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 06 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 18 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
Attention : les concepts que vous avez vus en cours d&#039;architecture doivent être mis en application pour l&#039;architecture de votre projet. Une attention particulière sur ce point doit être portée lors de vos présentations à l&#039;audit 2 et à la soutenance. Le travail que vous présenterez fournira de support à l&#039;évaluation du module de GL.&lt;br /&gt;
&lt;br /&gt;
===Audit 1 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- 8h35 : Restaurant &lt;br /&gt;
&lt;br /&gt;
- 9h10 : Spectacle&lt;br /&gt;
&lt;br /&gt;
- 9h45 : Camping&lt;br /&gt;
&lt;br /&gt;
- 10h20 : Transport&lt;br /&gt;
&lt;br /&gt;
- 10h55 : Sport &lt;br /&gt;
&lt;br /&gt;
- 11h30 : Brule ta bûche&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques et état de prise en main&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
* Modèle de tâches et IHMA pour les premières tâches&lt;br /&gt;
&lt;br /&gt;
===Audit 2 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet : &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Architecture complète&lt;br /&gt;
* Procédure de tests&lt;br /&gt;
* Procédure d&#039;intégration du code &lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Entity, Ressources REST (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- groupe 6 : &lt;br /&gt;
&lt;br /&gt;
- groupe 1 :&lt;br /&gt;
&lt;br /&gt;
- groupe 5 : &lt;br /&gt;
&lt;br /&gt;
- groupe 2 : &lt;br /&gt;
&lt;br /&gt;
- groupe 4 : &lt;br /&gt;
&lt;br /&gt;
- groupe 3 : &lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : P&lt;br /&gt;
* Durée totale : 30 min&lt;br /&gt;
* Utilisez des transparents pour présenter votre projet. Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
* une présentation globale du projet&lt;br /&gt;
* le processus de conception (illustré avec vos différentes productions)&lt;br /&gt;
* la démonstration de votre application&lt;br /&gt;
* des évaluations&lt;br /&gt;
* le bilan (pédagogique ET du projet/individuel ET groupe)&lt;br /&gt;
* le temps consacré à la conception &lt;br /&gt;
* le temps consacré au développement &lt;br /&gt;
* les principales difficultés rencontrées&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* groupe 1&lt;br /&gt;
* groupe 3&lt;br /&gt;
* groupe 5&lt;br /&gt;
* groupe 4&lt;br /&gt;
* groupe 6&lt;br /&gt;
* groupe 2&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et VZ pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Tout votre projet doit être suivi grâce à gitLab.&lt;br /&gt;
&lt;br /&gt;
A tout moment, les enseignants doivent donc pouvoir &lt;br /&gt;
* avoir la dernière version du code (dernière version du logiciel en production et ce qui est en cours de développement dans des branches dédiées)&lt;br /&gt;
* voir les tâches prévues/en cours/réalisées&lt;br /&gt;
* savoir le travail de chaque membre (effectué et assigné)&lt;br /&gt;
* consulter les documents de conception (à jour) &lt;br /&gt;
* consulter les CR des daily meeting et autres réunions et les rétrospectives et vos présentations aux différents audits&lt;br /&gt;
* avoir connaissance des procédures de qualité que vous mettez en place au sein de votre projet&lt;br /&gt;
* consulter les résultats des différents tests pour chaque release&lt;br /&gt;
&lt;br /&gt;
Attention : nous insistons particulièrement sur le fait que toutes ces données doivent être maintenues en temps réel et accessibles sur le gitlab de votre projet.&lt;br /&gt;
&lt;br /&gt;
Attention : nous consulterons également les messages de commit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Vous trouverez ci-dessous une liste (non exhaustive) de certains livrables pouvant être produits au sein de votre projet&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;. (obligatoire)&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Le Dossier de Conception Système (DCS) a pour but de permettre à toute personne de connaitre les principaux composants Spring de votre application ECOM. Cette connaissance doit pouvoir être acquise rapidement, sans avoir à entrer dans les détails de l&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation Spring : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;environnement Spring. Un composant peut être implanté par un client généré à partir de l&#039;interface de/des micro-services, par un micro-service REST (Controller), par un Service, par un Entity ou par un client Feign vers un micro-service externe au systeme (par exemple, service de paiement Swipe.com, ...).&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (tableau de tâches de Gitlab)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation des performances du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Résultat d&#039;une injection de charge simpliste avec [[Gatling]]&lt;br /&gt;
* Résultat d&#039;une injection de charge suivant un scénario complet avec [[Gatling]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à utiliser un outil adapté cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
Vous devez utiliser GitLab comme support à votre projet (versioning, gestion des tâches...).&lt;br /&gt;
&lt;br /&gt;
Nous vous demandons également d&#039;utiliser les issues pour la communication avec les enseignants. En particulier, toute absence ou télétravail doit être signalé par ce média.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer un groupe GitLab. Y ajouter les membres du projet eCOM. Créer plusieurs projets pour les différents parties. Activer les notifications. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;est-à-dire le modèle de données (UML ou similaire [https://www.jhipster.tech/jdl/ JDL]) et la logique métier, puis à réaliser un premier prototype qui démontre une bonne maîtrise des Entity (annotations JAX-RS, annotations [[Swagger]]).&lt;br /&gt;
&lt;br /&gt;
L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl (généré avec le générateur [https://swagger.io/tools/swagger-codegen/ swagger-codegen]), [[Swagger]] UI, injecteur de charge [[Gatling]], ....) et le frontend AngularX que vous aurez généré avec [[JHipster]].&lt;br /&gt;
&lt;br /&gt;
Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et utilisateurs finaux) et exécuter certaines requêtes avec des garanties transactionnelles.&lt;br /&gt;
&lt;br /&gt;
TRES IMPORTANT : Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]]/IPtables pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, ...) pour la production (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] ou [[Nginx]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
# Génération et rafraichissement des certificats SSL avec [[Let&#039;s Encrypt]]&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec un FileStorageService ([https://www.callicoder.com/spring-boot-file-upload-download-rest-api-example/ lien]) &lt;br /&gt;
** Gestion adaptative des contenus multimedia (photos) avec un ThumbnailService (montrez l&#039;amélioration des performances avec Gatling)&lt;br /&gt;
** Gestion du cache client pour les photos et les thumbnails avec Cache-Control et ETag (montrez l&#039;amélioration des performances avec Gatling)&lt;br /&gt;
** Utilisation de mode Lazy pour les chargements (fetch) des collections et des médias (CLOB,BLOB).&lt;br /&gt;
** Génération d&#039;une application mobile [[Ionic]] avec [https://github.com/oktadeveloper/generator-jhipster-ionic generator-jhipster-ionic] (inclure les plugins [[Apache Cordova]] utiles à votre projet).&lt;br /&gt;
** Utilisation d&#039;un cache ([https://www.jhipster.tech/using-cache/ préconisé par JHipster])&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Génération de documents PDF à partir des valeurs de champs d&#039;une entité ou du collection d&#039;entités (exemple d&#039;applications : facture, dossard coureur, export RGPD, ...) [https://www.stackextend.com/java/generate-pdf-document-using-jasperreports-and-spring-boot/ lien]&lt;br /&gt;
** Import et export massifs de collections d&#039;entités en format CSV, JSON.&lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters/Aspects en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST avec [[Keycloak]] ou [[OKTA]].&lt;br /&gt;
** Utilisation du service de paiement Stripe.com en mode développeur&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Chatbot du helpdesk (comme [https://github.com/ovh-ux/ovh-chatbot ovh-chatbot])&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Minikube]], [[Kubernetes]], [[Rancher]] ou [[Docker Swarm]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers.&lt;br /&gt;
** Script périodique (crontab) de dump et de backup distant de la base MySQL.&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via le MailService, Thymeleaf et des taches @Scheduled&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS (si le destinataire a un compte gratuit pour l&#039;auto-réception de SMS)&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google, [https://www.jhipster.tech/heroku/ Heroku])&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]] ou [[Gatling]]) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le rolling update des composants répliqués (application, base de données, serveurs de mail, load balancer). Remarque: [[Kubernetes]] gère les rolling updates ([https://kubernetes.io/docs/tasks/run-application/rolling-update-replication-controller/ lien]).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom. JHipster génère le dockerfile de l&#039;application et quelques descripteurs docker-compose.&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]], [[Hawkular]], [[Telegraf]] + [[InfluxDB]] + [[Grafana]] ...* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des mécanismes pour intégrer les besoins des utilisateurs&lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
===Evaluation des IHMs===&lt;br /&gt;
Une IHM doit être évaluée par au moins deux types d&#039;évaluation (en plus de l&#039;évaluation fonctionnelle) :&lt;br /&gt;
* évaluation experte pour vérifier que les principes fondamentaux d&#039;utilisabilité sont respectés&lt;br /&gt;
* tests utilisateur pour étudier comment vos utilisateurs utilise dans leurs contextes d&#039;utilisation votre interface&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2018-2019.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur ces technologies se périment très vite.&lt;br /&gt;
&lt;br /&gt;
====[[Spring]]====&lt;br /&gt;
* Bons tutoriels sur https://www.baeldung.com/rest-with-spring-series/&lt;br /&gt;
* Les manuels de références de Spring https://spring.io/projects/spring-boot#overview&lt;br /&gt;
&lt;br /&gt;
====[[JHipster]]====&lt;br /&gt;
* Matt Raible, The JHipster Mini-Book 4.5 (GRATUIT) https://www.infoq.com/minibooks/jhipster-4x-mini-book&lt;br /&gt;
* Deepu K Sasidharan, Sendil Kumar N, Full Stack Development with JHipster, (10 $ en promotion) March 2018, https://www.packtpub.com/application-development/full-stack-development-jhipster &lt;br /&gt;
&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42227</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42227"/>
		<updated>2018-10-01T16:11:01Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Audit 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* VZ : Vincent Zurczak (vzurczak@linagora.com)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&#039;&#039;&#039;Autres :&#039;&#039;&#039;&lt;br /&gt;
* ADE : Emploi du temps en ligne&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-RICM 2018-2019===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 18/09 à 8h.&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2017-2018]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et VZ).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 18/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2018.pdf|transparents]]), CM [[Media:RestfulServices.pdf|REST]], [[MicroServices]], [[Spring]], [[JHipster]] (DD) (P005)&lt;br /&gt;
* 18/09 15h45-18h30 : (DD) Installation [[JHipster]] et [[Docker]]. Génération de l&#039;application MVP de eCOM, lancement du profile dev, lancement du profil prod (avec Docker), analyse de qualité du code (généré) avec le container SonarQube et déploiement sur Heroku de 2 applications (stage, production) (F214, F215).&lt;br /&gt;
&lt;br /&gt;
* 25/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P257)&lt;br /&gt;
* 25/09 15h45-18h30 :  Séance en autonomie (F114, F214)&lt;br /&gt;
&lt;br /&gt;
* 02/10 8h00-12h15 : Test utilisateur (SC) puis Séance en autonomie (P039)&lt;br /&gt;
* 02/10 15h45-18h30 : Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 09/10 8h00-12h15 : Audit 1 (P013) et Séance en autonomie (P105, P133)&lt;br /&gt;
* 09/10 15h45-18h30 :  Tests de robustesse (charges) (VZ)  (F114, F214)&lt;br /&gt;
&lt;br /&gt;
* 16/10 8h00-12h15 : Séance en autonomie (P257)&lt;br /&gt;
* 16/10 15h45-18h30 :  Séance encadrée (SC) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 23/10 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 23/10 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 06/11 8h00-12h15 : Audit 2 (F114) et Séance en autonomie (F202)&lt;br /&gt;
* 06/11 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 20/11 8h00-12h15 : Séance en autonomie + Séance encadrée (SC) (P257)&lt;br /&gt;
* 20/11 15h45-18h30 :  Séance encadrée (VZ) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 27/11 8h00-12h15 : Séance en autonomie (P257)&lt;br /&gt;
* 27/11 15h45-18h30 :  Séance encadrée (VZ) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 04/12 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 04/12 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 11/12 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 11/12 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 18/12 8h00-12h15 : Soutenances (F114) et rendus finaux&lt;br /&gt;
* 18/12 15h45-18h30 :  Soutenances (F114) et rendus finaux&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie [[Spring Boot]] / [[JHipster]].&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]] sur plusieurs VM dans un cloud public (AWS, GAE, Heroku, Azure, ...), le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 09 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 06 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 18 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
Attention : les concepts que vous avez vus en cours d&#039;architecture doivent être mis en application pour l&#039;architecture de votre projet. Une attention particulière sur ce point doit être portée lors de vos présentations à l&#039;audit 2 et à la soutenance. Le travail que vous présenterez fournira de support à l&#039;évaluation du module de GL.&lt;br /&gt;
&lt;br /&gt;
===Audit 1 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- 8h35 : Restaurant &lt;br /&gt;
&lt;br /&gt;
- 9h10 : Spectacle&lt;br /&gt;
&lt;br /&gt;
- 9h45 : Camping&lt;br /&gt;
&lt;br /&gt;
- 10h20 : Transport&lt;br /&gt;
&lt;br /&gt;
- 10h55 : Sport &lt;br /&gt;
&lt;br /&gt;
- 11h30 : Brule ta bûche&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
&lt;br /&gt;
===Audit 2 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet : &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Architecture complète&lt;br /&gt;
* Procédure de tests&lt;br /&gt;
* Procédure d&#039;intégration du code &lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Entity, Ressources REST (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- groupe 6 : &lt;br /&gt;
&lt;br /&gt;
- groupe 1 :&lt;br /&gt;
&lt;br /&gt;
- groupe 5 : &lt;br /&gt;
&lt;br /&gt;
- groupe 2 : &lt;br /&gt;
&lt;br /&gt;
- groupe 4 : &lt;br /&gt;
&lt;br /&gt;
- groupe 3 : &lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : P&lt;br /&gt;
* Durée totale : 30 min&lt;br /&gt;
* Utilisez des transparents pour présenter votre projet. Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
* une présentation globale du projet&lt;br /&gt;
* le processus de conception (illustré avec vos différentes productions)&lt;br /&gt;
* la démonstration de votre application&lt;br /&gt;
* des évaluations&lt;br /&gt;
* le bilan (pédagogique ET du projet/individuel ET groupe)&lt;br /&gt;
* le temps consacré à la conception &lt;br /&gt;
* le temps consacré au développement &lt;br /&gt;
* les principales difficultés rencontrées&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* groupe 1&lt;br /&gt;
* groupe 3&lt;br /&gt;
* groupe 5&lt;br /&gt;
* groupe 4&lt;br /&gt;
* groupe 6&lt;br /&gt;
* groupe 2&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et VZ pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Tout votre projet doit être suivi grâce à gitLab.&lt;br /&gt;
&lt;br /&gt;
A tout moment, les enseignants doivent donc pouvoir &lt;br /&gt;
* avoir la dernière version du code (dernière version du logiciel en production et ce qui est en cours de développement dans des branches dédiées)&lt;br /&gt;
* voir les tâches prévues/en cours/réalisées&lt;br /&gt;
* savoir le travail de chaque membre (effectué et assigné)&lt;br /&gt;
* consulter les documents de conception (à jour) &lt;br /&gt;
* consulter les CR des daily meeting et autres réunions et les rétrospectives et vos présentations aux différents audits&lt;br /&gt;
* avoir connaissance des procédures de qualité que vous mettez en place au sein de votre projet&lt;br /&gt;
* consulter les résultats des différents tests pour chaque release&lt;br /&gt;
&lt;br /&gt;
Attention : nous insistons particulièrement sur le fait que toutes ces données doivent être maintenues en temps réel et accessibles sur le gitlab de votre projet.&lt;br /&gt;
&lt;br /&gt;
Attention : nous consulterons également les messages de commit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Vous trouverez ci-dessous une liste (non exhaustive) de certains livrables pouvant être produits au sein de votre projet&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;. (obligatoire)&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Le Dossier de Conception Système (DCS) a pour but de permettre à toute personne de connaitre les principaux composants Spring de votre application ECOM. Cette connaissance doit pouvoir être acquise rapidement, sans avoir à entrer dans les détails de l&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation Spring : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;environnement Spring. Un composant peut être implanté par un client généré à partir de l&#039;interface de/des micro-services, par un micro-service REST (Controller), par un Service, par un Entity ou par un client Feign vers un micro-service externe au systeme (par exemple, service de paiement Swipe.com, ...).&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (tableau de tâches de Gitlab)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation des performances du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Résultat d&#039;une injection de charge simpliste avec [[Gatling]]&lt;br /&gt;
* Résultat d&#039;une injection de charge suivant un scénario complet avec [[Gatling]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à utiliser un outil adapté cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
Vous devez utiliser GitLab comme support à votre projet (versioning, gestion des tâches...).&lt;br /&gt;
&lt;br /&gt;
Nous vous demandons également d&#039;utiliser les issues pour la communication avec les enseignants. En particulier, toute absence ou télétravail doit être signalé par ce média.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer un groupe GitLab. Y ajouter les membres du projet eCOM. Créer plusieurs projets pour les différents parties. Activer les notifications. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;est-à-dire le modèle de données (UML ou similaire [https://www.jhipster.tech/jdl/ JDL]) et la logique métier, puis à réaliser un premier prototype qui démontre une bonne maîtrise des Entity (annotations JAX-RS, annotations [[Swagger]]).&lt;br /&gt;
&lt;br /&gt;
L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl (généré avec le générateur [https://swagger.io/tools/swagger-codegen/ swagger-codegen]), [[Swagger]] UI, injecteur de charge [[Gatling]], ....) et le frontend AngularX que vous aurez généré avec [[JHipster]].&lt;br /&gt;
&lt;br /&gt;
Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et utilisateurs finaux) et exécuter certaines requêtes avec des garanties transactionnelles.&lt;br /&gt;
&lt;br /&gt;
TRES IMPORTANT : Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]]/IPtables pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, ...) pour la production (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] ou [[Nginx]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
# Génération et rafraichissement des certificats SSL avec [[Let&#039;s Encrypt]]&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec un FileStorageService ([https://www.callicoder.com/spring-boot-file-upload-download-rest-api-example/ lien]) &lt;br /&gt;
** Gestion adaptative des contenus multimedia (photos) avec un ThumbnailService (montrez l&#039;amélioration des performances avec Gatling)&lt;br /&gt;
** Gestion du cache client pour les photos et les thumbnails avec Cache-Control et ETag (montrez l&#039;amélioration des performances avec Gatling)&lt;br /&gt;
** Utilisation de mode Lazy pour les chargements (fetch) des collections et des médias (CLOB,BLOB).&lt;br /&gt;
** Génération d&#039;une application mobile [[Ionic]] avec [https://github.com/oktadeveloper/generator-jhipster-ionic generator-jhipster-ionic] (inclure les plugins [[Apache Cordova]] utiles à votre projet).&lt;br /&gt;
** Utilisation d&#039;un cache ([https://www.jhipster.tech/using-cache/ préconisé par JHipster])&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Génération de documents PDF à partir des valeurs de champs d&#039;une entité ou du collection d&#039;entités (exemple d&#039;applications : facture, dossard coureur, export RGPD, ...) [https://www.stackextend.com/java/generate-pdf-document-using-jasperreports-and-spring-boot/ lien]&lt;br /&gt;
** Import et export massifs de collections d&#039;entités en format CSV, JSON.&lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters/Aspects en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST avec [[Keycloak]] ou [[OKTA]].&lt;br /&gt;
** Utilisation du service de paiement Stripe.com en mode développeur&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Chatbot du helpdesk (comme [https://github.com/ovh-ux/ovh-chatbot ovh-chatbot])&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Minikube]], [[Kubernetes]], [[Rancher]] ou [[Docker Swarm]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers.&lt;br /&gt;
** Script périodique (crontab) de dump et de backup distant de la base MySQL.&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via le MailService, Thymeleaf et des taches @Scheduled&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS (si le destinataire a un compte gratuit pour l&#039;auto-réception de SMS)&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google, [https://www.jhipster.tech/heroku/ Heroku])&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]] ou [[Gatling]]) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le rolling update des composants répliqués (application, base de données, serveurs de mail, load balancer). Remarque: [[Kubernetes]] gère les rolling updates ([https://kubernetes.io/docs/tasks/run-application/rolling-update-replication-controller/ lien]).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom. JHipster génère le dockerfile de l&#039;application et quelques descripteurs docker-compose.&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]], [[Hawkular]], [[Telegraf]] + [[InfluxDB]] + [[Grafana]] ...* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des mécanismes pour intégrer les besoins des utilisateurs&lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
===Evaluation des IHMs===&lt;br /&gt;
Une IHM doit être évaluée par au moins deux types d&#039;évaluation (en plus de l&#039;évaluation fonctionnelle) :&lt;br /&gt;
* évaluation experte pour vérifier que les principes fondamentaux d&#039;utilisabilité sont respectés&lt;br /&gt;
* tests utilisateur pour étudier comment vos utilisateurs utilise dans leurs contextes d&#039;utilisation votre interface&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2018-2019.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur ces technologies se périment très vite.&lt;br /&gt;
&lt;br /&gt;
====[[Spring]]====&lt;br /&gt;
* Bons tutoriels sur https://www.baeldung.com/rest-with-spring-series/&lt;br /&gt;
* Les manuels de références de Spring https://spring.io/projects/spring-boot#overview&lt;br /&gt;
&lt;br /&gt;
====[[JHipster]]====&lt;br /&gt;
* Matt Raible, The JHipster Mini-Book 4.5 (GRATUIT) https://www.infoq.com/minibooks/jhipster-4x-mini-book&lt;br /&gt;
* Deepu K Sasidharan, Sendil Kumar N, Full Stack Development with JHipster, (10 $ en promotion) March 2018, https://www.packtpub.com/application-development/full-stack-development-jhipster &lt;br /&gt;
&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42189</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42189"/>
		<updated>2018-09-21T07:53:47Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Transparents de cours */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* VZ : Vincent Zurczak (vzurczak@linagora.com)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&#039;&#039;&#039;Autres :&#039;&#039;&#039;&lt;br /&gt;
* ADE : Emploi du temps en ligne&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-RICM 2018-2019===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 18/09 à 8h.&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2017-2018]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et VZ).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 18/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2018.pdf|transparents]]), CM [[Media:RestfulServices.pdf|REST]], [[MicroServices]], [[Spring]], [[JHipster]] (DD) (P005)&lt;br /&gt;
* 18/09 15h45-18h30 : (DD) Installation [[JHipster]] et [[Docker]]. Génération de l&#039;application MVP de eCOM, lancement du profile dev, lancement du profil prod (avec Docker), analyse de qualité du code (généré) avec le container SonarQube et déploiement sur Heroku de 2 applications (stage, production) (F214, F215).&lt;br /&gt;
&lt;br /&gt;
* 25/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P257)&lt;br /&gt;
* 25/09 15h45-18h30 :  Séance en autonomie (F114, F214)&lt;br /&gt;
&lt;br /&gt;
* 02/10 8h00-12h15 : Test utilisateur (SC) puis Séance en autonomie (P039)&lt;br /&gt;
* 02/10 15h45-18h30 : Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 09/10 8h00-12h15 : Audit 1 (P013) et Séance en autonomie (P105, P133)&lt;br /&gt;
* 09/10 15h45-18h30 :  Tests de robustesse (charges) (VZ)  (F114, F214)&lt;br /&gt;
&lt;br /&gt;
* 16/10 8h00-12h15 : Séance en autonomie (P257)&lt;br /&gt;
* 16/10 15h45-18h30 :  Séance encadrée (SC) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 23/10 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 23/10 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 06/11 8h00-12h15 : Audit 2 (F114) et Séance en autonomie (F202)&lt;br /&gt;
* 06/11 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 20/11 8h00-12h15 : Séance en autonomie + Séance encadrée (SC) (P257)&lt;br /&gt;
* 20/11 15h45-18h30 :  Séance encadrée (VZ) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 27/11 8h00-12h15 : Séance en autonomie (P257)&lt;br /&gt;
* 27/11 15h45-18h30 :  Séance encadrée (VZ) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 04/12 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 04/12 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 11/12 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 11/12 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 18/12 8h00-12h15 : Soutenances (F114) et rendus finaux&lt;br /&gt;
* 18/12 15h45-18h30 :  Soutenances (F114) et rendus finaux&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie [[Spring Boot]] / [[JHipster]].&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]] sur plusieurs VM dans un cloud public (AWS, GAE, Heroku, Azure, ...), le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 09 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 06 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 18 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
Attention : les concepts que vous avez vus en cours d&#039;architecture doivent être mis en application pour l&#039;architecture de votre projet. Une attention particulière sur ce point doit être portée lors de vos présentations à l&#039;audit 2 et à la soutenance. Le travail que vous présenterez fournira de support à l&#039;évaluation du module de GL.&lt;br /&gt;
&lt;br /&gt;
===Audit 1 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- groupe 6&lt;br /&gt;
&lt;br /&gt;
- groupe 3&lt;br /&gt;
&lt;br /&gt;
- groupe 1&lt;br /&gt;
&lt;br /&gt;
- groupe 2&lt;br /&gt;
&lt;br /&gt;
- groupe 4&lt;br /&gt;
&lt;br /&gt;
- groupe 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
&lt;br /&gt;
===Audit 2 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet : &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Architecture complète&lt;br /&gt;
* Procédure de tests&lt;br /&gt;
* Procédure d&#039;intégration du code &lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Entity, Ressources REST (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- groupe 6 : &lt;br /&gt;
&lt;br /&gt;
- groupe 1 :&lt;br /&gt;
&lt;br /&gt;
- groupe 5 : &lt;br /&gt;
&lt;br /&gt;
- groupe 2 : &lt;br /&gt;
&lt;br /&gt;
- groupe 4 : &lt;br /&gt;
&lt;br /&gt;
- groupe 3 : &lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : P&lt;br /&gt;
* Durée totale : 30 min&lt;br /&gt;
* Utilisez des transparents pour présenter votre projet. Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
* une présentation globale du projet&lt;br /&gt;
* le processus de conception (illustré avec vos différentes productions)&lt;br /&gt;
* la démonstration de votre application&lt;br /&gt;
* des évaluations&lt;br /&gt;
* le bilan (pédagogique ET du projet/individuel ET groupe)&lt;br /&gt;
* le temps consacré à la conception &lt;br /&gt;
* le temps consacré au développement &lt;br /&gt;
* les principales difficultés rencontrées&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* groupe 1&lt;br /&gt;
* groupe 3&lt;br /&gt;
* groupe 5&lt;br /&gt;
* groupe 4&lt;br /&gt;
* groupe 6&lt;br /&gt;
* groupe 2&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et VZ pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Tout votre projet doit être suivi grâce à gitLab.&lt;br /&gt;
&lt;br /&gt;
A tout moment, les enseignants doivent donc pouvoir &lt;br /&gt;
* avoir la dernière version du code (dernière version du logiciel en production et ce qui est en cours de développement dans des branches dédiées)&lt;br /&gt;
* voir les tâches prévues/en cours/réalisées&lt;br /&gt;
* savoir le travail de chaque membre (effectué et assigné)&lt;br /&gt;
* consulter les documents de conception (à jour) &lt;br /&gt;
* consulter les CR des daily meeting et autres réunions et les rétrospectives et vos présentations aux différents audits&lt;br /&gt;
* avoir connaissance des procédures de qualité que vous mettez en place au sein de votre projet&lt;br /&gt;
* consulter les résultats des différents tests pour chaque release&lt;br /&gt;
&lt;br /&gt;
Attention : nous insistons particulièrement sur le fait que toutes ces données doivent être maintenues en temps réel et accessibles sur le gitlab de votre projet.&lt;br /&gt;
&lt;br /&gt;
Attention : nous consulterons également les messages de commit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Vous trouverez ci-dessous une liste (non exhaustive) de certains livrables pouvant être produits au sein de votre projet&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;. (obligatoire)&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Le Dossier de Conception Système (DCS) a pour but de permettre à toute personne de connaitre les principaux composants Spring de votre application ECOM. Cette connaissance doit pouvoir être acquise rapidement, sans avoir à entrer dans les détails de l&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation Spring : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;environnement Spring. Un composant peut être implanté par un client généré à partir de l&#039;interface de/des micro-services, par un micro-service REST (Controller), par un Service, par un Entity ou par un client Feign vers un micro-service externe au systeme (par exemple, service de paiement Swipe.com, ...).&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (tableau de tâches de Gitlab)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation des performances du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Résultat d&#039;une injection de charge simpliste avec [[Gatling]]&lt;br /&gt;
* Résultat d&#039;une injection de charge suivant un scénario complet avec [[Gatling]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à utiliser un outil adapté cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
Vous devez utiliser GitLab comme support à votre projet (versioning, gestion des tâches...).&lt;br /&gt;
&lt;br /&gt;
Nous vous demandons également d&#039;utiliser les issues pour la communication avec les enseignants. En particulier, toute absence ou télétravail doit être signalé par ce média.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer un groupe GitLab. Y ajouter les membres du projet eCOM. Créer plusieurs projets pour les différents parties. Activer les notifications. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;est-à-dire le modèle de données (UML ou similaire [https://www.jhipster.tech/jdl/ JDL]) et la logique métier, puis à réaliser un premier prototype qui démontre une bonne maîtrise des Entity (annotations JAX-RS, annotations [[Swagger]]).&lt;br /&gt;
&lt;br /&gt;
L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl (généré avec le générateur [https://swagger.io/tools/swagger-codegen/ swagger-codegen]), [[Swagger]] UI, injecteur de charge [[Gatling]], ....) et le frontend AngularX que vous aurez généré avec [[JHipster]].&lt;br /&gt;
&lt;br /&gt;
Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et utilisateurs finaux) et exécuter certaines requêtes avec des garanties transactionnelles.&lt;br /&gt;
&lt;br /&gt;
TRES IMPORTANT : Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]]/IPtables pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, ...) pour la production (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] ou [[Nginx]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
# Génération et rafraichissement des certificats SSL avec [[Let&#039;s Encrypt]]&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec un FileStorageService ([https://www.callicoder.com/spring-boot-file-upload-download-rest-api-example/ lien]) &lt;br /&gt;
** Gestion adaptative des contenus multimedia (photos) avec un ThumbnailService (montrez l&#039;amélioration des performances avec Gatling)&lt;br /&gt;
** Gestion du cache client pour les photos et les thumbnails avec Cache-Control et ETag (montrez l&#039;amélioration des performances avec Gatling)&lt;br /&gt;
** Utilisation de mode Lazy pour les chargements (fetch) des collections et des médias (CLOB,BLOB).&lt;br /&gt;
** Génération d&#039;une application mobile [[Ionic]] avec [https://github.com/oktadeveloper/generator-jhipster-ionic generator-jhipster-ionic] (inclure les plugins [[Apache Cordova]] utiles à votre projet).&lt;br /&gt;
** Utilisation d&#039;un cache ([https://www.jhipster.tech/using-cache/ préconisé par JHipster])&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Génération de documents PDF à partir des valeurs de champs d&#039;une entité ou du collection d&#039;entités (exemple d&#039;applications : facture, dossard coureur, export RGPD, ...)&lt;br /&gt;
** Import et export massifs de collections d&#039;entités en format CSV, JSON, PDF.&lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters/Aspects en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST avec [[Keycloak]] ou [[OKTA]].&lt;br /&gt;
** Utilisation du service de paiement Stripe.com en mode développeur&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Chatbot du helpdesk (comme [https://github.com/ovh-ux/ovh-chatbot ovh-chatbot])&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Minikube]], [[Kubernetes]], [[Rancher]] ou [[Docker Swarm]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers.&lt;br /&gt;
** Script périodique (crontab) de dump et de backup distant de la base MySQL.&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via le MailService, Thymeleaf et des taches @Scheduled&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS (si le destinataire a un compte gratuit pour l&#039;auto-réception de SMS)&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google, [https://www.jhipster.tech/heroku/ Heroku])&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]] ou [[Gatling]]) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le rolling update des composants répliqués (application, base de données, serveurs de mail, load balancer). Remarque: [[Kubernetes]] gère les rolling updates ([https://kubernetes.io/docs/tasks/run-application/rolling-update-replication-controller/ lien]).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom. JHipster génère le dockerfile de l&#039;application et quelques descripteurs docker-compose.&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]], [[Hawkular]], [[Telegraf]] + [[InfluxDB]] + [[Grafana]] ...* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des mécanismes pour intégrer les besoins des utilisateurs&lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
===Evaluation des IHMs===&lt;br /&gt;
Une IHM doit être évaluée par au moins deux types d&#039;évaluation (en plus de l&#039;évaluation fonctionnelle) :&lt;br /&gt;
* évaluation experte pour vérifier que les principes fondamentaux d&#039;utilisabilité sont respectés&lt;br /&gt;
* tests utilisateur pour étudier comment vos utilisateurs utilise dans leurs contextes d&#039;utilisation votre interface&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2018-2019.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur ces technologies se périment très vite.&lt;br /&gt;
&lt;br /&gt;
====[[Spring]]====&lt;br /&gt;
* Bons tutoriels sur https://www.baeldung.com/rest-with-spring-series/&lt;br /&gt;
* Les manuels de références de Spring https://spring.io/projects/spring-boot#overview&lt;br /&gt;
&lt;br /&gt;
====[[JHipster]]====&lt;br /&gt;
* Matt Raible, The JHipster Mini-Book 4.5 (GRATUIT) https://www.infoq.com/minibooks/jhipster-4x-mini-book&lt;br /&gt;
* Deepu K Sasidharan, Sendil Kumar N, Full Stack Development with JHipster, (10 $ en promotion) March 2018, https://www.packtpub.com/application-development/full-stack-development-jhipster &lt;br /&gt;
&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:ECOMCours2018-2019.pdf&amp;diff=42188</id>
		<title>File:ECOMCours2018-2019.pdf</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:ECOMCours2018-2019.pdf&amp;diff=42188"/>
		<updated>2018-09-21T07:50:50Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42187</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42187"/>
		<updated>2018-09-20T14:23:13Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Planning des séances */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* VZ : Vincent Zurczak (vzurczak@linagora.com)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&#039;&#039;&#039;Autres :&#039;&#039;&#039;&lt;br /&gt;
* ADE : Emploi du temps en ligne&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-RICM 2018-2019===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 18/09 à 8h.&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2017-2018]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et VZ).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 18/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2018.pdf|transparents]]), CM [[Media:RestfulServices.pdf|REST]], [[MicroServices]], [[Spring]], [[JHipster]] (DD) (P005)&lt;br /&gt;
* 18/09 15h45-18h30 : (DD) Installation [[JHipster]] et [[Docker]]. Génération de l&#039;application MVP de eCOM, lancement du profile dev, lancement du profil prod (avec Docker), analyse de qualité du code (généré) avec le container SonarQube et déploiement sur Heroku de 2 applications (stage, production) (F214, F215).&lt;br /&gt;
&lt;br /&gt;
* 25/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P257)&lt;br /&gt;
* 25/09 15h45-18h30 :  Séance en autonomie (F114, F214)&lt;br /&gt;
&lt;br /&gt;
* 02/10 8h00-12h15 : Test utilisateur (SC) puis Séance en autonomie (P039)&lt;br /&gt;
* 02/10 15h45-18h30 : Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 09/10 8h00-12h15 : Audit 1 (P013) et Séance en autonomie (P105, P133)&lt;br /&gt;
* 09/10 15h45-18h30 :  Tests de robustesse (charges) (VZ)  (F114, F214)&lt;br /&gt;
&lt;br /&gt;
* 16/10 8h00-12h15 : Séance en autonomie (P257)&lt;br /&gt;
* 16/10 15h45-18h30 :  Séance encadrée (SC) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 23/10 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 23/10 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 06/11 8h00-12h15 : Audit 2 (F114) et Séance en autonomie (F202)&lt;br /&gt;
* 06/11 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 20/11 8h00-12h15 : Séance en autonomie + Séance encadrée (SC) (P257)&lt;br /&gt;
* 20/11 15h45-18h30 :  Séance encadrée (VZ) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 27/11 8h00-12h15 : Séance en autonomie (P257)&lt;br /&gt;
* 27/11 15h45-18h30 :  Séance encadrée (VZ) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 04/12 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 04/12 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 11/12 8h00-12h15 : Séance encadrée (VZ) (P257)&lt;br /&gt;
* 11/12 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 18/12 8h00-12h15 : Soutenances (F114) et rendus finaux&lt;br /&gt;
* 18/12 15h45-18h30 :  Soutenances (F114) et rendus finaux&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie [[Spring Boot]] / [[JHipster]].&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]] sur plusieurs VM dans un cloud public (AWS, GAE, Heroku, Azure, ...), le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 09 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 06 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 18 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
Attention : les concepts que vous avez vus en cours d&#039;architecture doivent être mis en application pour l&#039;architecture de votre projet. Une attention particulière sur ce point doit être portée lors de vos présentations à l&#039;audit 2 et à la soutenance. Le travail que vous présenterez fournira de support à l&#039;évaluation du module de GL.&lt;br /&gt;
&lt;br /&gt;
===Audit 1 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- groupe 6&lt;br /&gt;
&lt;br /&gt;
- groupe 3&lt;br /&gt;
&lt;br /&gt;
- groupe 1&lt;br /&gt;
&lt;br /&gt;
- groupe 2&lt;br /&gt;
&lt;br /&gt;
- groupe 4&lt;br /&gt;
&lt;br /&gt;
- groupe 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
&lt;br /&gt;
===Audit 2 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet : &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Architecture complète&lt;br /&gt;
* Procédure de tests&lt;br /&gt;
* Procédure d&#039;intégration du code &lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Entity, Ressources REST (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- groupe 6 : &lt;br /&gt;
&lt;br /&gt;
- groupe 1 :&lt;br /&gt;
&lt;br /&gt;
- groupe 5 : &lt;br /&gt;
&lt;br /&gt;
- groupe 2 : &lt;br /&gt;
&lt;br /&gt;
- groupe 4 : &lt;br /&gt;
&lt;br /&gt;
- groupe 3 : &lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : P&lt;br /&gt;
* Durée totale : 30 min&lt;br /&gt;
* Utilisez des transparents pour présenter votre projet. Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
* une présentation globale du projet&lt;br /&gt;
* le processus de conception (illustré avec vos différentes productions)&lt;br /&gt;
* la démonstration de votre application&lt;br /&gt;
* des évaluations&lt;br /&gt;
* le bilan (pédagogique ET du projet/individuel ET groupe)&lt;br /&gt;
* le temps consacré à la conception &lt;br /&gt;
* le temps consacré au développement &lt;br /&gt;
* les principales difficultés rencontrées&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* groupe 1&lt;br /&gt;
* groupe 3&lt;br /&gt;
* groupe 5&lt;br /&gt;
* groupe 4&lt;br /&gt;
* groupe 6&lt;br /&gt;
* groupe 2&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et VZ pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Tout votre projet doit être suivi grâce à gitLab.&lt;br /&gt;
&lt;br /&gt;
A tout moment, les enseignants doivent donc pouvoir &lt;br /&gt;
* avoir la dernière version du code (dernière version du logiciel en production et ce qui est en cours de développement dans des branches dédiées)&lt;br /&gt;
* voir les tâches prévues/en cours/réalisées&lt;br /&gt;
* savoir le travail de chaque membre (effectué et assigné)&lt;br /&gt;
* consulter les documents de conception (à jour) &lt;br /&gt;
* consulter les CR des daily meeting et autres réunions et les rétrospectives et vos présentations aux différents audits&lt;br /&gt;
* avoir connaissance des procédures de qualité que vous mettez en place au sein de votre projet&lt;br /&gt;
* consulter les résultats des différents tests pour chaque release&lt;br /&gt;
&lt;br /&gt;
Attention : nous insistons particulièrement sur le fait que toutes ces données doivent être maintenues en temps réel et accessibles sur le gitlab de votre projet.&lt;br /&gt;
&lt;br /&gt;
Attention : nous consulterons également les messages de commit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Vous trouverez ci-dessous une liste (non exhaustive) de certains livrables pouvant être produits au sein de votre projet&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;. (obligatoire)&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Le Dossier de Conception Système (DCS) a pour but de permettre à toute personne de connaitre les principaux composants Spring de votre application ECOM. Cette connaissance doit pouvoir être acquise rapidement, sans avoir à entrer dans les détails de l&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation Spring : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;environnement Spring. Un composant peut être implanté par un client généré à partir de l&#039;interface de/des micro-services, par un micro-service REST (Controller), par un Service, par un Entity ou par un client Feign vers un micro-service externe au systeme (par exemple, service de paiement Swipe.com, ...).&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (tableau de tâches de Gitlab)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation des performances du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Résultat d&#039;une injection de charge simpliste avec [[Gatling]]&lt;br /&gt;
* Résultat d&#039;une injection de charge suivant un scénario complet avec [[Gatling]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à utiliser un outil adapté cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
Vous devez utiliser GitLab comme support à votre projet (versioning, gestion des tâches...).&lt;br /&gt;
&lt;br /&gt;
Nous vous demandons également d&#039;utiliser les issues pour la communication avec les enseignants. En particulier, toute absence ou télétravail doit être signalé par ce média.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer un groupe GitLab. Y ajouter les membres du projet eCOM. Créer plusieurs projets pour les différents parties. Activer les notifications. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;est-à-dire le modèle de données (UML ou similaire [https://www.jhipster.tech/jdl/ JDL]) et la logique métier, puis à réaliser un premier prototype qui démontre une bonne maîtrise des Entity (annotations JAX-RS, annotations [[Swagger]]).&lt;br /&gt;
&lt;br /&gt;
L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl (généré avec le générateur [https://swagger.io/tools/swagger-codegen/ swagger-codegen]), [[Swagger]] UI, injecteur de charge [[Gatling]], ....) et le frontend AngularX que vous aurez généré avec [[JHipster]].&lt;br /&gt;
&lt;br /&gt;
Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et utilisateurs finaux) et exécuter certaines requêtes avec des garanties transactionnelles.&lt;br /&gt;
&lt;br /&gt;
TRES IMPORTANT : Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]]/IPtables pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, ...) pour la production (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] ou [[Nginx]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
# Génération et rafraichissement des certificats SSL avec [[Let&#039;s Encrypt]]&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec un FileStorageService ([https://www.callicoder.com/spring-boot-file-upload-download-rest-api-example/ lien]) &lt;br /&gt;
** Gestion adaptative des contenus multimedia (photos) avec un ThumbnailService (montrez l&#039;amélioration des performances avec Gatling)&lt;br /&gt;
** Gestion du cache client pour les photos et les thumbnails avec Cache-Control et ETag (montrez l&#039;amélioration des performances avec Gatling)&lt;br /&gt;
** Utilisation de mode Lazy pour les chargements (fetch) des collections et des médias (CLOB,BLOB).&lt;br /&gt;
** Génération d&#039;une application mobile [[Ionic]] avec [https://github.com/oktadeveloper/generator-jhipster-ionic generator-jhipster-ionic] (inclure les plugins [[Apache Cordova]] utiles à votre projet).&lt;br /&gt;
** Utilisation d&#039;un cache ([https://www.jhipster.tech/using-cache/ préconisé par JHipster])&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Génération de documents PDF à partir des valeurs de champs d&#039;une entité ou du collection d&#039;entités (exemple d&#039;applications : facture, dossard coureur, export RGPD, ...)&lt;br /&gt;
** Import et export massifs de collections d&#039;entités en format CSV, JSON, PDF.&lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters/Aspects en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST avec [[Keycloak]] ou [[OKTA]].&lt;br /&gt;
** Utilisation du service de paiement Stripe.com en mode développeur&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Chatbot du helpdesk (comme [https://github.com/ovh-ux/ovh-chatbot ovh-chatbot])&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Minikube]], [[Kubernetes]], [[Rancher]] ou [[Docker Swarm]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers.&lt;br /&gt;
** Script périodique (crontab) de dump et de backup distant de la base MySQL.&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via le MailService, Thymeleaf et des taches @Scheduled&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS (si le destinataire a un compte gratuit pour l&#039;auto-réception de SMS)&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google, [https://www.jhipster.tech/heroku/ Heroku])&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]] ou [[Gatling]]) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le rolling update des composants répliqués (application, base de données, serveurs de mail, load balancer). Remarque: [[Kubernetes]] gère les rolling updates ([https://kubernetes.io/docs/tasks/run-application/rolling-update-replication-controller/ lien]).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom. JHipster génère le dockerfile de l&#039;application et quelques descripteurs docker-compose.&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]], [[Hawkular]], [[Telegraf]] + [[InfluxDB]] + [[Grafana]] ...* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des mécanismes pour intégrer les besoins des utilisateurs&lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
===Evaluation des IHMs===&lt;br /&gt;
Une IHM doit être évaluée par au moins deux types d&#039;évaluation (en plus de l&#039;évaluation fonctionnelle) :&lt;br /&gt;
* évaluation experte pour vérifier que les principes fondamentaux d&#039;utilisabilité sont respectés&lt;br /&gt;
* tests utilisateur pour étudier comment vos utilisateurs utilise dans leurs contextes d&#039;utilisation votre interface&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2017-2018.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur ces technologies se périment très vite.&lt;br /&gt;
&lt;br /&gt;
====[[Spring]]====&lt;br /&gt;
* Bons tutoriels sur https://www.baeldung.com/rest-with-spring-series/&lt;br /&gt;
* Les manuels de références de Spring https://spring.io/projects/spring-boot#overview&lt;br /&gt;
&lt;br /&gt;
====[[JHipster]]====&lt;br /&gt;
* Matt Raible, The JHipster Mini-Book 4.5 (GRATUIT) https://www.infoq.com/minibooks/jhipster-4x-mini-book&lt;br /&gt;
* Deepu K Sasidharan, Sendil Kumar N, Full Stack Development with JHipster, (10 $ en promotion) March 2018, https://www.packtpub.com/application-development/full-stack-development-jhipster &lt;br /&gt;
&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-M2PGI&amp;diff=42180</id>
		<title>ECOM-M2PGI</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-M2PGI&amp;diff=42180"/>
		<updated>2018-09-17T10:50:03Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Consignes spécifiques pour les soutenances IHM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application de commerce électronique. [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Étapes du projet=&lt;br /&gt;
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). &lt;br /&gt;
&lt;br /&gt;
==Conduite de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Il est préconisé d&#039;utiliser la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe.&lt;br /&gt;
&lt;br /&gt;
===Critères d&#039;évaluation===&lt;br /&gt;
La conduite du projet sera principalement évaluée en fonction des critères suivants :&lt;br /&gt;
* vous devez choisir un Scrum Master (unique ou tournant) : vous devez justifier votre choix&lt;br /&gt;
* durée du sprint (idem : vous devez justifier votre choix)&lt;br /&gt;
Sur ces 2 premiers critères, vous n&#039;en changez pas !!!&lt;br /&gt;
&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à créer un wiki qui regroupera l&#039;ensemble de vos documentations. Cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
Un point de bonus pour ceux qui réussiront à mettre en place des &amp;quot;poker planning&amp;quot;.&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
==Partie IHM==&lt;br /&gt;
&lt;br /&gt;
===Etapes et documents demandés===&lt;br /&gt;
Le détail sur l&#039;organisation et l&#039;évaluation du travail concernant les spécifications du site sera communiqué lors des premières séances de cours. Liste des Livrables et date de rendu pour les M2PGI Alternants :&lt;br /&gt;
&lt;br /&gt;
* Livrable 1 : par email, membres du groupe et brève description du sujet (un seul groupe OK)&lt;br /&gt;
&lt;br /&gt;
====[[Audit 1 :]]====&lt;br /&gt;
* L2.1 : Description des profils&lt;br /&gt;
* L2.2 : Questionnaire profils (OPT-ALT)&lt;br /&gt;
* L3.1 : Scénarios&lt;br /&gt;
* L3.2 : Analyse de la concurrence (OPT-ALT)&lt;br /&gt;
* L3.3 : Questionnaire sur l&#039;utilisation (OPT-ALT)&lt;br /&gt;
* L4 : Modèles de tâches (Audit 2 pour ALT)&lt;br /&gt;
* L5 : Fonctionnalités&lt;br /&gt;
* L6.1 : Objectifs pour chaque version (priorités de développement)&lt;br /&gt;
&lt;br /&gt;
====[[Audit 2 :]]====&lt;br /&gt;
* Mise à jour de L2 à L6.1&lt;br /&gt;
* L7.1 : Architecture (OPT-ALT)&lt;br /&gt;
* L7.2 : Base de données (OPT-ALT)&lt;br /&gt;
* L7.3 : IHM Abstraite&lt;br /&gt;
* L7.4 : Maquettes&lt;br /&gt;
* L6.2 : Objectifs pour les versions suivantes&lt;br /&gt;
* L8 : Démo de V0&lt;br /&gt;
&lt;br /&gt;
====[[Audit 3 (Soutenances) :]]====&lt;br /&gt;
* Mise à jour de L7.3 (correction des erreurs)&lt;br /&gt;
* L9 : Rapport d&#039;évaluation experte (imprimé pour la soutenance)&lt;br /&gt;
* L10 : Démonstration finale&lt;br /&gt;
* L11 : Diapos de votre présentation (version numérique à laquelle l&#039;enseignant a accès au moment de votre passage)&lt;br /&gt;
&lt;br /&gt;
OPT signifie que le livrable est optionnel soit parce qu&#039;il ne s&#039;applique pas à tous les groupes, soit parce qu&#039;il ne peut qu&#039;apporter une plus value à votre projet (points en plus mais pas en moins au moment de l&#039;attribution de la note).&lt;br /&gt;
Lorsque ce n&#039;est pas précisé, c&#039;est à vous de choisir le mode présentation (écrit, schéma...) des informations du livrable&lt;br /&gt;
&lt;br /&gt;
===Critères d&#039;évaluation===&lt;br /&gt;
La partie IHM du projet sera principalement évaluée en fonction des critères suivants : &lt;br /&gt;
* Conformité de l&#039;IHM concrète et abstraite avec le modèle de tâches &lt;br /&gt;
* Couverture fonctionnelle de l&#039;application et robustesse au regard des priorités que vous avez retenues &lt;br /&gt;
* Qualité ergonomique au regard des principes vus en cours &lt;br /&gt;
* Rigueur de la démarche&lt;br /&gt;
&lt;br /&gt;
La note est obtenue par l&#039;évaluation tout au long du projet elle est composée de :&lt;br /&gt;
* Les besoins (3 pts) : informations sur  les besoins que vous allez prendre en compte (livrables et audit 1)&lt;br /&gt;
* La conception (5 pts) : proposition de solution pour répondre aux besoins (livrables et audit 2)&lt;br /&gt;
* L&#039;évaluation (3 pts) : évaluation de votre (ou vos) solution(s) (livrable et soutenance finale)&lt;br /&gt;
* Présentations (3 pts) : qualité des présentations (documents, email et slides de soutenance finale)&lt;br /&gt;
* Développement (6 pts) : qualité et quantité du code (démo et code)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les notes des membres du groupe peuvent être différentes en fonction du travail fourni et constaté par l&#039;enseignant.&lt;br /&gt;
&lt;br /&gt;
==Partie Système==&lt;br /&gt;
&lt;br /&gt;
Remarque : Aucune des phases du projet ne nécessite le développement d&#039;un client lourd en mode graphique (SWT ...). &lt;br /&gt;
===Documents demandés===&lt;br /&gt;
Deux rapports doivent être rédigés pour la partie Système : un document de conception système et un document d&#039;évaluation système.&lt;br /&gt;
&lt;br /&gt;
====Document de conception système====&lt;br /&gt;
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&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Document d&#039;évaluation système====&lt;br /&gt;
&lt;br /&gt;
Le rapport final système du projet ECOM a pour but de préciser l’état d’avancement de votre application ECOM.&lt;br /&gt;
&lt;br /&gt;
Le rapport final système doit préciser : &lt;br /&gt;
* L’état de chaque composant : non réalisé, réalisé, réalisé et validé &lt;br /&gt;
* Les fonctions réalisées, réalisées et testées, et celles restant à réaliser &lt;br /&gt;
* Les propriétés non fonctionnelles garanties par votre réalisation, et celles restant à considérer pour finaliser votre application &lt;br /&gt;
* Le temps consacré à la conception système &lt;br /&gt;
* Le temps consacré au développement système &lt;br /&gt;
* Les principales difficultés rencontrées &lt;br /&gt;
===Critères d&#039;évaluation===&lt;br /&gt;
La partie système du projet sera principalement évaluée en fonction des critères suivants : &lt;br /&gt;
* Conformité aux spécifications de l&#039;application et aux consignes données dans le cadre du projet &lt;br /&gt;
* Respect des échéances pour les différentes étapes du projet (y compris pour les prototypes intermédiaires et les documents) &lt;br /&gt;
* Qualité de l&#039;architecture de l&#039;application &lt;br /&gt;
* Qualité et robustesse du code applicatif &lt;br /&gt;
* Compréhension des principaux concepts de la technologie Web &lt;br /&gt;
* Rigueur de la démarche de conception &lt;br /&gt;
* Qualité des présentations/soutenances &lt;br /&gt;
En complément, les aspects suivants seront également considérés : &lt;br /&gt;
* Méthodologie de test &lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud &lt;br /&gt;
* Préparation d&#039;images de VMs avec [[Kameleon]]&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]] ou OW2 CLIF) &lt;br /&gt;
* Supervision du système déployé avec des sondes [[Nagios]] ou [[Shinken]] conditionnées dans les VMs à déployer.&lt;br /&gt;
* Utilisation (optionnelle) de technologies/APIs/frameworks avancés&lt;br /&gt;
&lt;br /&gt;
==Consignes pour la soutenance==&lt;br /&gt;
===Consignes spécifiques pour les soutenances IHM===&lt;br /&gt;
Salle : F113&lt;br /&gt;
&lt;br /&gt;
Durée totale : 45 minutes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le 23/09 minuit au plus tard :&lt;br /&gt;
* les documents de conception (hors évaluation), gestion de projet et le code doivent être accessibles à l&#039;enseignant : envoyer un email avec l&#039;ensemble des liens permettant d&#039;y accéder&lt;br /&gt;
&lt;br /&gt;
Le jour de la soutenance :&lt;br /&gt;
* envoyé avant votre passage les liens vers les derniers documents (évaluations + diapositives de soutenance)&lt;br /&gt;
* 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 &lt;br /&gt;
* présentez individuellement un bilan de ce que vous retenez (positif, améliorations personnelles, négatif)&lt;br /&gt;
* arrivez avec l&#039;application démarée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* prévoyez 15 minutes de questions lors de votre passage&lt;br /&gt;
&lt;br /&gt;
===Consignes spécifiques pour les soutenances Système===&lt;br /&gt;
* Apportez un exemplaire du dossier d&#039;évaluation système (déposé la veille sur Moodle) lors de la soutenance. Il n&#039;est pas nécessaire d&#039;apporter un exemplaire du dossier de conception système.&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances avec le service développé.&lt;br /&gt;
* Prévovez environ 30 minutes pour la présentation/démo/questions. Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de VM.&lt;br /&gt;
* 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.&lt;br /&gt;
* Déposez immédiatement après la soutenance (et en aucun cas après le 20 décembre) l&#039;archive sur Moodle.&lt;br /&gt;
* le rapport de charge (benchmark) doit être (MUST) fourni dans la documentation.&lt;br /&gt;
* le rapport sur les métriques logicielles doit être (MUST) fourni dans la documentation.&lt;br /&gt;
&lt;br /&gt;
=Organisation 2018-2019=&lt;br /&gt;
&lt;br /&gt;
==Planning==&lt;br /&gt;
===M2PGI (Alternant)===&lt;br /&gt;
&#039;&#039;&#039;Equipe pédagogique:&#039;&#039;&#039; VL = Vincent Lesne, NDP= Noel De Palma, SC = Sybille Caffiaux, SCB = Sebastien Chassande, UD=Ugo Decharriere	 &lt;br /&gt;
&lt;br /&gt;
*03 sept 09h-12h    	F022, Boot Projet (NDP)&lt;br /&gt;
*03 sept 14h-17h		TD F118 / TP F217, Cours Spring (SCB/NDP)&lt;br /&gt;
*04 sept 09h-12h   	TD F218 / TP F217, Cours Angular (SCB/NDP) &lt;br /&gt;
*04 sept 14h-17h		TD F218 / TP F217, Cours Angular (SCB/NDP) &lt;br /&gt;
*05 sept 09h-12h   	TD F218 / TP F217, Libre service  &lt;br /&gt;
*05 sept 14h-17h   	TD F218 / TP F217, Libre service  &lt;br /&gt;
*06 sept 09h-12h 		TD F118,                  Cours IHM (SC)&lt;br /&gt;
*06 sept 14h-17h		TD F118 / TP F217, Cours Cloud (UD) &lt;br /&gt;
*07 sept 09h-12h		TD F114 / TP F211, Cours Agile (VL)  &lt;br /&gt;
*07 sept 14h-17h		TD F114 / TP F211, Cours Agile (VL) &lt;br /&gt;
*10 sept 09h-12h		TD F218 / TP F217, Audit Syst. (SCB/NDP)  &lt;br /&gt;
*10 sept 14h-17h		TD F218 / TP F217, Audit Agile (VL)&lt;br /&gt;
*11 sept 09h-12h		TD F118 / TP F217, Libre service&lt;br /&gt;
*11 sept 14h-17h		TD F118 / TP F217, Libre service&lt;br /&gt;
*12 sept 09h-12h		TD F218 / TP F217, Libre Service&lt;br /&gt;
*12 sept 14h-17h		TD F218 / TP F217, Libre Service&lt;br /&gt;
*13 sept 09h-12h		TD F118 / TP F217, Audit Syst. (SCB, NDP) &lt;br /&gt;
*13 sept 14h-17h		TD F118 / TP F217, Audit Agile (VL)&lt;br /&gt;
*14 sept 09h-12h		TD F114 / TP F214, Point Infra. (UD)&lt;br /&gt;
*14 sept 14h-17h		TD F114 / TP F214, Libre Service&lt;br /&gt;
*17 sept 09h-12h		TD F109 / TP F216, Audit Syst.  (SCB/NDP) &lt;br /&gt;
*17 sept 14h-17h		TD F109 / TP F216, Audit Agile (VL)&lt;br /&gt;
*18 sept 09h-12h 		TD F118 / TP F217, Libre Service&lt;br /&gt;
*18 sept 14h-17h		TD F118 / TP F217, Point Infra. (UD)&lt;br /&gt;
*19 sept 09h-12h		TD F218 / TP F217, Libre Service&lt;br /&gt;
*19 sept 14h-17h		TD F218 / TP F217, Libre Service		&lt;br /&gt;
*20 sept 09h-12h		TD F118 / TP F217, Point Infra. (UD) &lt;br /&gt;
*20 sept 14h-17h		TD F118 / TP F217, Libre Service&lt;br /&gt;
*21 sept 09h-12h		TD F109 / TD F114 / TP F211, Soutenance&lt;br /&gt;
*21 sept 14h-17h		TD F109 / TD F114 / TP F211, Soutenance&lt;br /&gt;
&lt;br /&gt;
===M2PGI (Classique)===&lt;br /&gt;
&#039;&#039;&#039;Equipe pédagogique:&#039;&#039;&#039; Noël de Palma (NdP), Vincent Lesne (VL), Sybille Caffiau (SC), Sebastien Chassand-Barrioz (SCB), Ibrahim Safiedinne (FR)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dates Importantes:&#039;&#039;&#039;&lt;br /&gt;
en cours.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Groupes==&lt;br /&gt;
===M2PGI Apprenti===&lt;br /&gt;
&lt;br /&gt;
===M2PGI Classique===&lt;br /&gt;
Consigne pour la constitution des groupes : Les étudiants ayant choisis l&#039;option multimobile doivent se mettre ensemble. Ils doivent constituer des groupes de 4/5 afin d&#039;avoir en tout 4 groupes (de M2 PGI classiques)&lt;br /&gt;
&lt;br /&gt;
==Soutenance==&lt;br /&gt;
===M2PGI Apprenti===&lt;br /&gt;
&lt;br /&gt;
===M2PGI Classique===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
IMPERATIF&lt;br /&gt;
* le projet doit être (MUST) géré selon la méthode Scrum : le Scrum Master devra présenter le déroulement du projet.&lt;br /&gt;
* le serveur JavaEE doit être (MUST) hébergé sur une instance de VM.&lt;br /&gt;
* un rapport de charge (benchmark) doit être (MUST) fourni : les outils JMeter ou Clif peuvent être utilisés.&lt;br /&gt;
* un rapport sur les métriques logicielles doit être (MUST) fourni : l&#039;outil Sonar peut être utilisé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&lt;br /&gt;
* Respectez l&#039;ordre établi&lt;br /&gt;
* Faites attention au temps. Vous disposez de 45 minutes par soutenance pour : votre présentation, la démo et les questions&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2017-2018.pdf]]&lt;br /&gt;
* Annexe cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Squelette du projet==&lt;br /&gt;
[http://dl.dropbox.com/u/66952950/ecom-maven.zip ecom-maven.zip] Inaccessible&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://wiki.easybeans.org/xwiki/bin/view/Main/Documentation Documentation Easybeans (conteneur EJB3 utilis&amp;amp;eacute; par Jonas)]&lt;br /&gt;
* [http://docs.oracle.com/javaee/6/tutorial/doc/ Tutorial JavaEE 6 ]&lt;br /&gt;
* [http://netbeans.org/kb/67/javaee/ejb30.html Tutorial NetBean et JEE ]&lt;br /&gt;
* [http://docs.oracle.com/javaee/6/api/ API JavaEE 6]&lt;br /&gt;
* [https://java.net/projects/javaee-spec/pages/Home Sp&amp;amp;eacute;cifications JavaEE 6]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* [http://jonas.ow2.org/JONAS_5_1_2/doc/doc-en/html/getting_started_guide.html#id1316973 Glossaire]&lt;br /&gt;
* [http://www.easybeans.net/xwiki/bin/download/Main/Documentation/ejb3-annotations.pdf Aide m&amp;amp;eacute;moire pour les annotations EJB3 ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
* Documentation et Training Kit sur Windows Azure : http://www.microsoft.com/en-us/download/details.aspx?id=8396&lt;br /&gt;
* Documentation de [http://roboconf.net/en Roboconf]&lt;br /&gt;
** Exemple avec LAMP http://roboconf.net/en/user-guide/lamp-example-part-1.html&lt;br /&gt;
http://proton.inrialpes.fr/~depalma/ecom/liens/liens.html&lt;br /&gt;
* Questionnaire pour site web : [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
* Questionnaire SUS (évaluation satisfaction) : [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Quelques livres===&lt;br /&gt;
REMARQUE: les livres sur JavaEE se periment très vite avec l&#039;évolution de la spécification&lt;br /&gt;
* Java EE6 Cookbook for securing, tuning, and extending enterprise applications: http://www.packtpub.com/java-ee6-securing-tuning-extending-enterprise-applications-cookbook/book&lt;br /&gt;
* Holly Cummins and Timothy Ward, Enterprise OSGi in Action, March, 2013, 400 pages, ISBN: 9781617290138, http://www.manning.com/cummins/ ([http://www.manning.com/cummins/EOSGI_sample_ch02.pdf chapitre 2], [http://www.manning.com/cummins/EOSGI_sample_ch10.pdf chapitre 10])&lt;br /&gt;
* Debu Panda, Reza Rahman, Derek Lane, EJB 3 in Action, Pub Mannings, 2007, http://www.manning.com/panda/&lt;br /&gt;
* Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan, EJB 3 in Action, Second Edition, Pub Mannings, 2011, http://www.manning.com/panda2/&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42179</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42179"/>
		<updated>2018-09-17T10:21:26Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Planning des séances */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* VZ : Vincent Zurczak (vzurczak@linagora.com)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&#039;&#039;&#039;Autres :&#039;&#039;&#039;&lt;br /&gt;
* ADE : Emploi du temps en ligne&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-RICM 2018-2019===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 18/09 à 8h.&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2017-2018]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et VZ).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 18/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2017.pdf|transparents]]), CM [[Media:RestfulServices.pdf|REST]], [[MicroServices]], [[Spring]], [[JHipster]] (DD) (P005)&lt;br /&gt;
* 18/09 15h45-18h30 : (DD) Installation [[JHipster]] et [[Docker]]. Génération de l&#039;application MVP de eCOM, lancement du profile dev, lancement du profil prod (avec Docker), analyse de qualité du code (généré) avec le container SonarQube et déploiement sur Heroku de 2 applications (stage, production) (F214, F215).&lt;br /&gt;
&lt;br /&gt;
* 25/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P257)&lt;br /&gt;
* 25/09 15h45-18h30 :  Séance en autonomie (F114, F214)&lt;br /&gt;
&lt;br /&gt;
* 02/10 8h00-12h15 : Test utilisateur (SC) puis Séance en autonomie (P039)&lt;br /&gt;
* 02/10 15h45-18h30 : Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 09/10 8h00-12h15 : Audit 1 (P013) et Séance en autonomie (P105, P133)&lt;br /&gt;
* 09/10 15h45-18h30 :  Tests de robustesse (charges) (VZ)  (F114, F214)&lt;br /&gt;
&lt;br /&gt;
* 16/10 8h00-12h15 : Séance en autonomie (F201, F202)&lt;br /&gt;
* 16/10 15h45-18h30 :  Séance encadrée (SC) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 23/10 8h00-12h15 : Séance encadrée (VZ) (F201, F202)&lt;br /&gt;
* 23/10 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 06/11 8h00-12h15 : Audit 2 (F114) et Séance en autonomie (F202)&lt;br /&gt;
* 06/11 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 20/11 8h00-12h15 : Séance en autonomie + Séance encadrée (SC) (F201, F202)&lt;br /&gt;
* 20/11 15h45-18h30 :  Séance encadrée (VZ) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 27/11 8h00-12h15 : Séance en autonomie (F201, F202)&lt;br /&gt;
* 27/11 15h45-18h30 :  Séance encadrée (VZ) (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 04/12 8h00-12h15 : Séance encadrée (VZ) (F201, F202)&lt;br /&gt;
* 04/12 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 11/12 8h00-12h15 : Séance encadrée (VZ) (F201, F202)&lt;br /&gt;
* 11/12 15h45-18h30 :  Séance en autonomie (F214, F215)&lt;br /&gt;
&lt;br /&gt;
* 18/12 8h00-12h15 : Soutenances (F114) et rendus finaux&lt;br /&gt;
* 18/12 15h45-18h30 :  Soutenances (F114) et rendus finaux&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie [[Spring Boot]] / [[JHipster]].&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]] sur plusieurs VM dans un cloud public (AWS, GAE, Heroku, Azure, ...), le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 09 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 06 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 18 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
Attention : les concepts que vous avez vus en cours d&#039;architecture doivent être mis en application pour l&#039;architecture de votre projet. Une attention particulière sur ce point doit être portée lors de vos présentations à l&#039;audit 2 et à la soutenance. Le travail que vous présenterez fournira de support à l&#039;évaluation du module de GL.&lt;br /&gt;
&lt;br /&gt;
===Audit 1 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- groupe 6&lt;br /&gt;
&lt;br /&gt;
- groupe 3&lt;br /&gt;
&lt;br /&gt;
- groupe 1&lt;br /&gt;
&lt;br /&gt;
- groupe 2&lt;br /&gt;
&lt;br /&gt;
- groupe 4&lt;br /&gt;
&lt;br /&gt;
- groupe 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
&lt;br /&gt;
===Audit 2 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet : &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Architecture complète&lt;br /&gt;
* Procédure de tests&lt;br /&gt;
* Procédure d&#039;intégration du code &lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Entity, Ressources REST (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- groupe 6 : &lt;br /&gt;
&lt;br /&gt;
- groupe 1 :&lt;br /&gt;
&lt;br /&gt;
- groupe 5 : &lt;br /&gt;
&lt;br /&gt;
- groupe 2 : &lt;br /&gt;
&lt;br /&gt;
- groupe 4 : &lt;br /&gt;
&lt;br /&gt;
- groupe 3 : &lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : P&lt;br /&gt;
* Durée totale : 30 min&lt;br /&gt;
* Utilisez des transparents pour présenter votre projet. Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
* une présentation globale du projet&lt;br /&gt;
* le processus de conception (illustré avec vos différentes productions)&lt;br /&gt;
* la démonstration de votre application&lt;br /&gt;
* des évaluations&lt;br /&gt;
* le bilan (pédagogique ET du projet/individuel ET groupe)&lt;br /&gt;
* le temps consacré à la conception &lt;br /&gt;
* le temps consacré au développement &lt;br /&gt;
* les principales difficultés rencontrées&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* groupe 1&lt;br /&gt;
* groupe 3&lt;br /&gt;
* groupe 5&lt;br /&gt;
* groupe 4&lt;br /&gt;
* groupe 6&lt;br /&gt;
* groupe 2&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et VZ pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Tout votre projet doit être suivi grâce à gitLab.&lt;br /&gt;
&lt;br /&gt;
A tout moment, les enseignants doivent donc pouvoir &lt;br /&gt;
* avoir la dernière version du code (dernière version du logiciel en production et ce qui est en cours de développement dans des branches dédiées)&lt;br /&gt;
* voir les tâches prévues/en cours/réalisées&lt;br /&gt;
* savoir le travail de chaque membre (effectué et assigné)&lt;br /&gt;
* consulter les documents de conception (à jour) &lt;br /&gt;
* consulter les CR des daily meeting et autres réunions et les rétrospectives et vos présentations aux différents audits&lt;br /&gt;
* avoir connaissance des procédures de qualité que vous mettez en place au sein de votre projet&lt;br /&gt;
* consulter les résultats des différents tests pour chaque release&lt;br /&gt;
&lt;br /&gt;
Attention : nous insistons particulièrement sur le fait que toutes ces données doivent être maintenues en temps réel et accessibles sur le gitlab de votre projet.&lt;br /&gt;
&lt;br /&gt;
Attention : nous consulterons également les messages de commit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Vous trouverez ci-dessous une liste (non exhaustive) de certains livrables pouvant être produits au sein de votre projet&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;. (obligatoire)&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Le Dossier de Conception Système (DCS) a pour but de permettre à toute personne de connaitre les principaux composants Spring de votre application ECOM. Cette connaissance doit pouvoir être acquise rapidement, sans avoir à entrer dans les détails de l&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation Spring : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;environnement Spring. Un composant peut être implanté par un client généré à partir de l&#039;interface de/des micro-services, par un micro-service REST (Controller), par un Service, par un Entity ou par un client Feign vers un micro-service externe au systeme (par exemple, service de paiement Swipe.com, ...).&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (tableau de tâches de Gitlab)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation des performances du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Résultat d&#039;une injection de charge simpliste avec [[Gatling]]&lt;br /&gt;
* Résultat d&#039;une injection de charge suivant un scénario complet avec [[Gatling]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à utiliser un outil adapté cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
Vous devez utiliser GitLab comme support à votre projet (versioning, gestion des tâches...).&lt;br /&gt;
&lt;br /&gt;
Nous vous demandons également d&#039;utiliser les issues pour la communication avec les enseignants. En particulier, toute absence ou télétravail doit être signalé par ce média.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer un groupe GitLab. Y ajouter les membres du projet eCOM. Créer plusieurs projets pour les différents parties. Activer les notifications. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;est-à-dire le modèle de données (UML ou similaire [https://www.jhipster.tech/jdl/ JDL]) et la logique métier, puis à réaliser un premier prototype qui démontre une bonne maîtrise des Entity (annotations JAX-RS, annotations [[Swagger]]).&lt;br /&gt;
&lt;br /&gt;
L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl (généré avec le générateur [https://swagger.io/tools/swagger-codegen/ swagger-codegen]), [[Swagger]] UI, injecteur de charge [[Gatling]], ....) et le frontend AngularX que vous aurez généré avec [[JHipster]].&lt;br /&gt;
&lt;br /&gt;
Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et utilisateurs finaux) et exécuter certaines requêtes avec des garanties transactionnelles.&lt;br /&gt;
&lt;br /&gt;
TRES IMPORTANT : Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]]/IPtables pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, ...) pour la production (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] ou [[Nginx]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
# Génération et rafraichissement des certificats SSL avec [[Let&#039;s Encrypt]]&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec un FileStorageService ([https://www.callicoder.com/spring-boot-file-upload-download-rest-api-example/ lien]) &lt;br /&gt;
** Gestion adaptative des contenus multimedia (photos) avec un ThumbnailService (montrez l&#039;amélioration des performances avec Gatling)&lt;br /&gt;
** Gestion du cache client pour les photos et les thumbnails avec Cache-Control et ETag (montrez l&#039;amélioration des performances avec Gatling)&lt;br /&gt;
** Utilisation de mode Lazy pour les chargements (fetch) des collections et des médias (CLOB,BLOB).&lt;br /&gt;
** Génération d&#039;une application mobile [[Ionic]] avec [https://github.com/oktadeveloper/generator-jhipster-ionic generator-jhipster-ionic] (inclure les plugins [[Apache Cordova]] utiles à votre projet).&lt;br /&gt;
** Utilisation d&#039;un cache ([https://www.jhipster.tech/using-cache/ préconisé par JHipster])&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Génération de documents PDF à partir des valeurs de champs d&#039;une entité ou du collection d&#039;entités (exemple d&#039;applications : facture, dossard coureur, export RGPD, ...)&lt;br /&gt;
** Import et export massifs de collections d&#039;entités en format CSV, JSON, PDF.&lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters/Aspects en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST avec [[Keycloak]] ou [[OKTA]].&lt;br /&gt;
** Utilisation du service de paiement Stripe.com en mode développeur&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Chatbot du helpdesk (comme [https://github.com/ovh-ux/ovh-chatbot ovh-chatbot])&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Minikube]], [[Kubernetes]], [[Rancher]] ou [[Docker Swarm]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers.&lt;br /&gt;
** Script périodique (crontab) de dump et de backup distant de la base MySQL.&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via le MailService, Thymeleaf et des taches @Scheduled&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS (si le destinataire a un compte gratuit pour l&#039;auto-réception de SMS)&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google, [https://www.jhipster.tech/heroku/ Heroku])&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]] ou [[Gatling]]) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le rolling update des composants répliqués (application, base de données, serveurs de mail, load balancer). Remarque: [[Kubernetes]] gère les rolling updates ([https://kubernetes.io/docs/tasks/run-application/rolling-update-replication-controller/ lien]).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom. JHipster génère le dockerfile de l&#039;application et quelques descripteurs docker-compose.&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]], [[Hawkular]], [[Telegraf]] + [[InfluxDB]] + [[Grafana]] ...* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des mécanismes pour intégrer les besoins des utilisateurs&lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
===Evaluation des IHMs===&lt;br /&gt;
Une IHM doit être évaluée par au moins deux types d&#039;évaluation (en plus de l&#039;évaluation fonctionnelle) :&lt;br /&gt;
* évaluation experte pour vérifier que les principes fondamentaux d&#039;utilisabilité sont respectés&lt;br /&gt;
* tests utilisateur pour étudier comment vos utilisateurs utilise dans leurs contextes d&#039;utilisation votre interface&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2017-2018.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur ces technologies se périment très vite.&lt;br /&gt;
&lt;br /&gt;
====[[Spring]]====&lt;br /&gt;
* Bons tutoriels sur https://www.baeldung.com/rest-with-spring-series/&lt;br /&gt;
* Les manuels de références de Spring https://spring.io/projects/spring-boot#overview&lt;br /&gt;
&lt;br /&gt;
====[[JHipster]]====&lt;br /&gt;
* Matt Raible, The JHipster Mini-Book 4.5 (GRATUIT) https://www.infoq.com/minibooks/jhipster-4x-mini-book&lt;br /&gt;
* Deepu K Sasidharan, Sendil Kumar N, Full Stack Development with JHipster, (10 $ en promotion) March 2018, https://www.packtpub.com/application-development/full-stack-development-jhipster &lt;br /&gt;
&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42156</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42156"/>
		<updated>2018-09-14T08:58:24Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Soutenance de fin de projet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* VZ : Vincent Zurczak (vzurczak@linagora.com)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&#039;&#039;&#039;Autres :&#039;&#039;&#039;&lt;br /&gt;
* ADE : Emploi du temps en ligne&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-RICM 2018-2019===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 18/09 à 8h.&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2017-2018]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et VZ).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 18/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2017.pdf|transparents]]), CM [[Media:RestfulServices.pdf|REST]], [[MicroServices]], [[Spring]], [[JHipster]] (DD) (P)&lt;br /&gt;
* 18/09 15h45-18h30 : (DD) Installation [[JHipster]] et [[Docker]]. Génération de l&#039;application MVP de eCOM, lancement du profile dev, lancement du profil prod (avec Docker), analyse de qualité du code (généré) avec le container SonarQube et déploiement sur Heroku de 2 applications (stage, production).&lt;br /&gt;
&lt;br /&gt;
* 25/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P)&lt;br /&gt;
* 25/09 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 02/10 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 02/10 15h45-18h30 :  Test utilisateur (SC) (P)&lt;br /&gt;
&lt;br /&gt;
* 09/10 8h00-12h15 : Audit 1 (P) et Séance en autonomie (P)&lt;br /&gt;
* 09/10 15h45-18h30 :  Tests de robustesse (charges) (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 16/10 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 16/10 15h45-18h30 :  Séance encadrée (SC) (P)&lt;br /&gt;
&lt;br /&gt;
* 23/10 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 23/10 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 06/11 8h00-12h15 : Audit 2 (P) et Séance en autonomie (P)&lt;br /&gt;
* 06/11 15h45-18h30 :  Séance en autonomie (P) &lt;br /&gt;
&lt;br /&gt;
* 20/11 8h00-12h15 : Séance en autonomie (P) + Séance encadrée (SC) (P)&lt;br /&gt;
* 20/11 15h45-18h30 :  Séance encadrée (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 27/11 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 27/11 15h45-18h30 :  Séance encadrée (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 04/12 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 04/12 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 11/12 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 11/12 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 18/12 8h00-12h15 : Soutenances (P) et rendus finaux&lt;br /&gt;
* 18/12 15h45-18h30 :  Soutenances (P) et rendus finaux&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie JEE.&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]], le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 09 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 06 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 18 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
Attention : les concepts que vous avez vus en cours d&#039;architecture doivent être mis en application pour l&#039;architecture de votre projet. Une attention particulière sur ce point doit être portée lors de vos présentations à l&#039;audit 2 et à la soutenance. Le travail que vous présenterez fournira de support à l&#039;évaluation du module de GL.&lt;br /&gt;
&lt;br /&gt;
===Audit 1 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- groupe 6&lt;br /&gt;
&lt;br /&gt;
- groupe 3&lt;br /&gt;
&lt;br /&gt;
- groupe 1&lt;br /&gt;
&lt;br /&gt;
- groupe 2&lt;br /&gt;
&lt;br /&gt;
- groupe 4&lt;br /&gt;
&lt;br /&gt;
- groupe 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
&lt;br /&gt;
===Audit 2 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet : &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Architecture complète&lt;br /&gt;
* Procédure de tests&lt;br /&gt;
* Procédure d&#039;intégration du code &lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Entity, Ressources REST (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- groupe 6 : &lt;br /&gt;
&lt;br /&gt;
- groupe 1 :&lt;br /&gt;
&lt;br /&gt;
- groupe 5 : &lt;br /&gt;
&lt;br /&gt;
- groupe 2 : &lt;br /&gt;
&lt;br /&gt;
- groupe 4 : &lt;br /&gt;
&lt;br /&gt;
- groupe 3 : &lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : P&lt;br /&gt;
* Durée totale : 30 min&lt;br /&gt;
* Utilisez des transparents pour présenter votre projet. Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
* une présentation globale du projet&lt;br /&gt;
* le processus de conception (illustré avec vos différentes productions)&lt;br /&gt;
* la démonstration de votre application&lt;br /&gt;
* des évaluations&lt;br /&gt;
* le bilan (pédagogique ET du projet/individuel ET groupe)&lt;br /&gt;
* le temps consacré à la conception &lt;br /&gt;
* le temps consacré au développement &lt;br /&gt;
* les principales difficultés rencontrées&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* groupe 1&lt;br /&gt;
* groupe 3&lt;br /&gt;
* groupe 5&lt;br /&gt;
* groupe 4&lt;br /&gt;
* groupe 6&lt;br /&gt;
* groupe 2&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et VZ pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Tout votre projet doit être suivi grâce à gitLab.&lt;br /&gt;
&lt;br /&gt;
A tout moment, les enseignants doivent donc pouvoir &lt;br /&gt;
* avoir la dernière version du code (dernière version du logiciel en production et ce qui est en cours de développement dans des branches dédiées)&lt;br /&gt;
* voir les tâches prévues/en cours/réalisées&lt;br /&gt;
* savoir le travail de chaque membre (effectué et assigné)&lt;br /&gt;
* consulter les documents de conception (à jour) &lt;br /&gt;
* consulter les CR des daily meeting et autres réunions et les rétrospectives et vos présentations aux différents audits&lt;br /&gt;
* avoir connaissance des procédures de qualité que vous mettez en place au sein de votre projet&lt;br /&gt;
* consulter les résultats des différents tests pour chaque release&lt;br /&gt;
&lt;br /&gt;
Attention : nous insistons particulièrement sur le fait que toutes ces données doivent être maintenues en temps réel et accessibles sur le gitlab de votre projet.&lt;br /&gt;
&lt;br /&gt;
Attention : nous consulterons également les messages de commit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Vous trouverez ci-dessous une liste (non exhaustive) de certains livrables pouvant être produits au sein de votre projet&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;. (obligatoire)&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
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&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation JEE : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;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.&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (waffle ou autre)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à utiliser un outil adapté cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
Vous devez utiliser GitLab comme support à votre projet (versioning, gestion des tâches...).&lt;br /&gt;
&lt;br /&gt;
Nous vous demandons également d&#039;utiliser les issues pour la communication avec les enseignants. En particulier, toute absence ou télétravail doit être signalé par ce média.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer un groupe GitLab. Y ajouter les membres du projet eCOM. Créer plusieurs projets pour les différents parties. Activer les notifications. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;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, annotations JAX-RS, [[Swagger]]). L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl, [[Swagger]] UI, jmeter, .... Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et consommateur) et exécuter certaines requêtes avec des garanties transactionnelles. Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]] pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, Oracle, HSQL ...) (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL, Oracle, HSQL ...) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via [[JMS]] et des EJBTimer (voir http://ecom.ow2.org/xwiki/bin/view/Main/fremail)&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS via [[JMS]] et des EJBTimer ([[ECOM/SMSProviders|fournisseurs SMS]])&lt;br /&gt;
&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec [[Apache Jackrabbit]] &lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Intégration de [[Memcached]]&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST.&lt;br /&gt;
** Utilisation de services tiers via leurs APIs (voir le catalogue de [[Mashape]])&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Gestion d&#039;un &#039;&#039;cloud&#039;&#039; privé avec [[OpenStack]] avec [[Fuel]]&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Kubernete]] ou [[Docker Swarm]]&lt;br /&gt;
** Conditionnement de l&#039;application mobile avec [[Apache Cordova]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers ([[AxiMAG]] par exemple).&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google)&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]], [[Gatling]], OW2 CLIF, BlazeMeter.com) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Telegraf]] + [[InfluxDB]] + [[Grafana]].&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Rolling update (Blue-Green Deployment) des composants (applications et intergiciels).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom (utiliser [https://hub.docker.com/_/glassfish/ Glassfish]).&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[CoreOS]] ou [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]],  [[Hawkular]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des mécanismes pour intégrer les besoins des utilisateurs&lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
===Evaluation des IHMs===&lt;br /&gt;
Une IHM doit être évaluée par au moins deux types d&#039;évaluation (en plus de l&#039;évaluation fonctionnelle) :&lt;br /&gt;
* évaluation experte pour vérifier que les principes fondamentaux d&#039;utilisabilité sont respectés&lt;br /&gt;
* tests utilisateur pour étudier comment vos utilisateurs utilise dans leurs contextes d&#039;utilisation votre interface&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2017-2018.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [https://glassfish.java.net/docs/4.0/administration-guide.pdf Guide d&#039;administration de Glassfish 4]&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/tutorial/doc/ Tutorial JavaEE 7 ] ([https://svn.java.net/svn/javaeetutorial~svn/ sources des exemples])&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/api/ API JavaEE 7]&lt;br /&gt;
* [https://java.net/projects/javaee-spec/pages/Home  Java EE Platform Specification]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
* Documentation et Training Kit sur Windows Azure : http://www.microsoft.com/en-us/download/details.aspx?id=8396&lt;br /&gt;
* Documentation de [http://roboconf.net/en Roboconf]&lt;br /&gt;
** Exemple avec LAMP http://roboconf.net/en/user-guide/lamp-example-part-1.html&lt;br /&gt;
http://proton.inrialpes.fr/~depalma/ecom/liens/liens.html&lt;br /&gt;
* [[Bootstrap]]&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur JavaEE se periment très vite avec l&#039;évolution de la spécification&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* [http://www.apress.com/9781430246268 Antonio Goncalves, Beginning JavaEE 7, APress, 2013], ([https://github.com/agoncal/agoncal-book-javaee7 examples]  pour [[Glassfish]] 4)&lt;br /&gt;
* [https://www.packtpub.com/application-development/java-ee-7-developer-handbook Peter A. Pilgrim, Java EE 7 Developer Handbook, Packt, 2013, ISBN 139781849687942 ]&lt;br /&gt;
* [http://www.packtpub.com/java-ee6-securing-tuning-extending-enterprise-applications-cookbook/book Mick Knutson, Java EE6 Cookbook for securing, tuning, and extending enterprise applications, Packt Publishing, June 2012]&lt;br /&gt;
* Holly Cummins and Timothy Ward, Enterprise OSGi in Action, March, 2013, 400 pages, ISBN: 9781617290138, http://www.manning.com/cummins/ ([http://www.manning.com/cummins/EOSGI_sample_ch02.pdf chapitre 2], [http://www.manning.com/cummins/EOSGI_sample_ch10.pdf chapitre 10])&lt;br /&gt;
* [http://www.manning.com/panda2/ Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan, EJB 3 in Action, Second Edition, March 2014, ISBN: 9781935182993], ([http://www.manning.com/panda2/EJB3iA_2E_SourceCode.zip source code of examples])&lt;br /&gt;
* [http://shop.oreilly.com/product/9780596158033.do  Andrew Lee Rubinger, Bill Burke, Enterprise JavaBeans 3.1, 6th Edition, O&#039;Reilly Media, Final Release Date: September 2010, Pages]&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[AngularJS]]====&lt;br /&gt;
* Brad Green, Shyam Seshadri, AngularJS, Pub OReilly http://shop.oreilly.com/product/0636920028055.do ([https://github.com/shyamseshadri/angularjs-book source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42155</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42155"/>
		<updated>2018-09-14T08:57:44Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Planning des séances */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* VZ : Vincent Zurczak (vzurczak@linagora.com)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&#039;&#039;&#039;Autres :&#039;&#039;&#039;&lt;br /&gt;
* ADE : Emploi du temps en ligne&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-RICM 2018-2019===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 18/09 à 8h.&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2017-2018]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et VZ).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 18/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2017.pdf|transparents]]), CM [[Media:RestfulServices.pdf|REST]], [[MicroServices]], [[Spring]], [[JHipster]] (DD) (P)&lt;br /&gt;
* 18/09 15h45-18h30 : (DD) Installation [[JHipster]] et [[Docker]]. Génération de l&#039;application MVP de eCOM, lancement du profile dev, lancement du profil prod (avec Docker), analyse de qualité du code (généré) avec le container SonarQube et déploiement sur Heroku de 2 applications (stage, production).&lt;br /&gt;
&lt;br /&gt;
* 25/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P)&lt;br /&gt;
* 25/09 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 02/10 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 02/10 15h45-18h30 :  Test utilisateur (SC) (P)&lt;br /&gt;
&lt;br /&gt;
* 09/10 8h00-12h15 : Audit 1 (P) et Séance en autonomie (P)&lt;br /&gt;
* 09/10 15h45-18h30 :  Tests de robustesse (charges) (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 16/10 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 16/10 15h45-18h30 :  Séance encadrée (SC) (P)&lt;br /&gt;
&lt;br /&gt;
* 23/10 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 23/10 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 06/11 8h00-12h15 : Audit 2 (P) et Séance en autonomie (P)&lt;br /&gt;
* 06/11 15h45-18h30 :  Séance en autonomie (P) &lt;br /&gt;
&lt;br /&gt;
* 20/11 8h00-12h15 : Séance en autonomie (P) + Séance encadrée (SC) (P)&lt;br /&gt;
* 20/11 15h45-18h30 :  Séance encadrée (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 27/11 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 27/11 15h45-18h30 :  Séance encadrée (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 04/12 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 04/12 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 11/12 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 11/12 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 18/12 8h00-12h15 : Soutenances (P) et rendus finaux&lt;br /&gt;
* 18/12 15h45-18h30 :  Soutenances (P) et rendus finaux&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie JEE.&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]], le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 09 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 06 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 18 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
Attention : les concepts que vous avez vus en cours d&#039;architecture doivent être mis en application pour l&#039;architecture de votre projet. Une attention particulière sur ce point doit être portée lors de vos présentations à l&#039;audit 2 et à la soutenance. Le travail que vous présenterez fournira de support à l&#039;évaluation du module de GL.&lt;br /&gt;
&lt;br /&gt;
===Audit 1 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- groupe 6&lt;br /&gt;
&lt;br /&gt;
- groupe 3&lt;br /&gt;
&lt;br /&gt;
- groupe 1&lt;br /&gt;
&lt;br /&gt;
- groupe 2&lt;br /&gt;
&lt;br /&gt;
- groupe 4&lt;br /&gt;
&lt;br /&gt;
- groupe 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
&lt;br /&gt;
===Audit 2 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet : &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Architecture complète&lt;br /&gt;
* Procédure de tests&lt;br /&gt;
* Procédure d&#039;intégration du code &lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Entity, Ressources REST (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- groupe 6 : &lt;br /&gt;
&lt;br /&gt;
- groupe 1 :&lt;br /&gt;
&lt;br /&gt;
- groupe 5 : &lt;br /&gt;
&lt;br /&gt;
- groupe 2 : &lt;br /&gt;
&lt;br /&gt;
- groupe 4 : &lt;br /&gt;
&lt;br /&gt;
- groupe 3 : &lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : P&lt;br /&gt;
* Durée totale : 30 min&lt;br /&gt;
* Utilisez des transparents pour présenter votre projet. Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
* une présentation globale du projet&lt;br /&gt;
* le processus de conception (illustré avec vos différentes productions)&lt;br /&gt;
* la démonstration de votre application&lt;br /&gt;
* des évaluations&lt;br /&gt;
* le bilan (pédagogique ET du projet/individuel ET groupe)&lt;br /&gt;
* le temps consacré à la conception &lt;br /&gt;
* le temps consacré au développement &lt;br /&gt;
* les principales difficultés rencontrées&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* groupe 1&lt;br /&gt;
* groupe 3&lt;br /&gt;
* groupe 5&lt;br /&gt;
* groupe 4&lt;br /&gt;
* groupe 6&lt;br /&gt;
* groupe 2&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et TR pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Tout votre projet doit être suivi grâce à gitLab.&lt;br /&gt;
&lt;br /&gt;
A tout moment, les enseignants doivent donc pouvoir &lt;br /&gt;
* avoir la dernière version du code (dernière version du logiciel en production et ce qui est en cours de développement dans des branches dédiées)&lt;br /&gt;
* voir les tâches prévues/en cours/réalisées&lt;br /&gt;
* savoir le travail de chaque membre (effectué et assigné)&lt;br /&gt;
* consulter les documents de conception (à jour) &lt;br /&gt;
* consulter les CR des daily meeting et autres réunions et les rétrospectives et vos présentations aux différents audits&lt;br /&gt;
* avoir connaissance des procédures de qualité que vous mettez en place au sein de votre projet&lt;br /&gt;
* consulter les résultats des différents tests pour chaque release&lt;br /&gt;
&lt;br /&gt;
Attention : nous insistons particulièrement sur le fait que toutes ces données doivent être maintenues en temps réel et accessibles sur le gitlab de votre projet.&lt;br /&gt;
&lt;br /&gt;
Attention : nous consulterons également les messages de commit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Vous trouverez ci-dessous une liste (non exhaustive) de certains livrables pouvant être produits au sein de votre projet&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;. (obligatoire)&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
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&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation JEE : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;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.&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (waffle ou autre)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à utiliser un outil adapté cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
Vous devez utiliser GitLab comme support à votre projet (versioning, gestion des tâches...).&lt;br /&gt;
&lt;br /&gt;
Nous vous demandons également d&#039;utiliser les issues pour la communication avec les enseignants. En particulier, toute absence ou télétravail doit être signalé par ce média.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer un groupe GitLab. Y ajouter les membres du projet eCOM. Créer plusieurs projets pour les différents parties. Activer les notifications. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;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, annotations JAX-RS, [[Swagger]]). L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl, [[Swagger]] UI, jmeter, .... Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et consommateur) et exécuter certaines requêtes avec des garanties transactionnelles. Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]] pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, Oracle, HSQL ...) (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL, Oracle, HSQL ...) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via [[JMS]] et des EJBTimer (voir http://ecom.ow2.org/xwiki/bin/view/Main/fremail)&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS via [[JMS]] et des EJBTimer ([[ECOM/SMSProviders|fournisseurs SMS]])&lt;br /&gt;
&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec [[Apache Jackrabbit]] &lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Intégration de [[Memcached]]&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST.&lt;br /&gt;
** Utilisation de services tiers via leurs APIs (voir le catalogue de [[Mashape]])&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Gestion d&#039;un &#039;&#039;cloud&#039;&#039; privé avec [[OpenStack]] avec [[Fuel]]&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Kubernete]] ou [[Docker Swarm]]&lt;br /&gt;
** Conditionnement de l&#039;application mobile avec [[Apache Cordova]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers ([[AxiMAG]] par exemple).&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google)&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]], [[Gatling]], OW2 CLIF, BlazeMeter.com) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Telegraf]] + [[InfluxDB]] + [[Grafana]].&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Rolling update (Blue-Green Deployment) des composants (applications et intergiciels).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom (utiliser [https://hub.docker.com/_/glassfish/ Glassfish]).&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[CoreOS]] ou [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]],  [[Hawkular]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des mécanismes pour intégrer les besoins des utilisateurs&lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
===Evaluation des IHMs===&lt;br /&gt;
Une IHM doit être évaluée par au moins deux types d&#039;évaluation (en plus de l&#039;évaluation fonctionnelle) :&lt;br /&gt;
* évaluation experte pour vérifier que les principes fondamentaux d&#039;utilisabilité sont respectés&lt;br /&gt;
* tests utilisateur pour étudier comment vos utilisateurs utilise dans leurs contextes d&#039;utilisation votre interface&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2017-2018.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [https://glassfish.java.net/docs/4.0/administration-guide.pdf Guide d&#039;administration de Glassfish 4]&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/tutorial/doc/ Tutorial JavaEE 7 ] ([https://svn.java.net/svn/javaeetutorial~svn/ sources des exemples])&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/api/ API JavaEE 7]&lt;br /&gt;
* [https://java.net/projects/javaee-spec/pages/Home  Java EE Platform Specification]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
* Documentation et Training Kit sur Windows Azure : http://www.microsoft.com/en-us/download/details.aspx?id=8396&lt;br /&gt;
* Documentation de [http://roboconf.net/en Roboconf]&lt;br /&gt;
** Exemple avec LAMP http://roboconf.net/en/user-guide/lamp-example-part-1.html&lt;br /&gt;
http://proton.inrialpes.fr/~depalma/ecom/liens/liens.html&lt;br /&gt;
* [[Bootstrap]]&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur JavaEE se periment très vite avec l&#039;évolution de la spécification&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* [http://www.apress.com/9781430246268 Antonio Goncalves, Beginning JavaEE 7, APress, 2013], ([https://github.com/agoncal/agoncal-book-javaee7 examples]  pour [[Glassfish]] 4)&lt;br /&gt;
* [https://www.packtpub.com/application-development/java-ee-7-developer-handbook Peter A. Pilgrim, Java EE 7 Developer Handbook, Packt, 2013, ISBN 139781849687942 ]&lt;br /&gt;
* [http://www.packtpub.com/java-ee6-securing-tuning-extending-enterprise-applications-cookbook/book Mick Knutson, Java EE6 Cookbook for securing, tuning, and extending enterprise applications, Packt Publishing, June 2012]&lt;br /&gt;
* Holly Cummins and Timothy Ward, Enterprise OSGi in Action, March, 2013, 400 pages, ISBN: 9781617290138, http://www.manning.com/cummins/ ([http://www.manning.com/cummins/EOSGI_sample_ch02.pdf chapitre 2], [http://www.manning.com/cummins/EOSGI_sample_ch10.pdf chapitre 10])&lt;br /&gt;
* [http://www.manning.com/panda2/ Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan, EJB 3 in Action, Second Edition, March 2014, ISBN: 9781935182993], ([http://www.manning.com/panda2/EJB3iA_2E_SourceCode.zip source code of examples])&lt;br /&gt;
* [http://shop.oreilly.com/product/9780596158033.do  Andrew Lee Rubinger, Bill Burke, Enterprise JavaBeans 3.1, 6th Edition, O&#039;Reilly Media, Final Release Date: September 2010, Pages]&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[AngularJS]]====&lt;br /&gt;
* Brad Green, Shyam Seshadri, AngularJS, Pub OReilly http://shop.oreilly.com/product/0636920028055.do ([https://github.com/shyamseshadri/angularjs-book source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42154</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42154"/>
		<updated>2018-09-14T08:56:46Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Acronymes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* VZ : Vincent Zurczak (vzurczak@linagora.com)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&#039;&#039;&#039;Autres :&#039;&#039;&#039;&lt;br /&gt;
* ADE : Emploi du temps en ligne&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-RICM 2018-2019===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 18/09 à 8h.&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2017-2018]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et TR).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 18/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2017.pdf|transparents]]), CM [[Media:RestfulServices.pdf|REST]], [[MicroServices]], [[Spring]], [[JHipster]] (DD) (P)&lt;br /&gt;
* 18/09 15h45-18h30 : (DD) Installation [[JHipster]] et [[Docker]]. Génération de l&#039;application MVP de eCOM, lancement du profile dev, lancement du profil prod (avec Docker), analyse de qualité du code (généré) avec le container SonarQube et déploiement sur Heroku de 2 applications (stage, production).&lt;br /&gt;
&lt;br /&gt;
* 25/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P)&lt;br /&gt;
* 25/09 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 02/10 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 02/10 15h45-18h30 :  Test utilisateur (SC) (P)&lt;br /&gt;
&lt;br /&gt;
* 09/10 8h00-12h15 : Audit 1 (P) et Séance en autonomie (P)&lt;br /&gt;
* 09/10 15h45-18h30 :  Tests de robustesse (charges) (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 16/10 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 16/10 15h45-18h30 :  Séance encadrée (SC) (P)&lt;br /&gt;
&lt;br /&gt;
* 23/10 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 23/10 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 06/11 8h00-12h15 : Audit 2 (P) et Séance en autonomie (P)&lt;br /&gt;
* 06/11 15h45-18h30 :  Séance en autonomie (P) &lt;br /&gt;
&lt;br /&gt;
* 20/11 8h00-12h15 : Séance en autonomie (P) + Séance encadrée (SC) (P)&lt;br /&gt;
* 20/11 15h45-18h30 :  Séance encadrée (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 27/11 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 27/11 15h45-18h30 :  Séance encadrée (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 04/12 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 04/12 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 11/12 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 11/12 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 18/12 8h00-12h15 : Soutenances (P) et rendus finaux&lt;br /&gt;
* 18/12 15h45-18h30 :  Soutenances (P) et rendus finaux&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie JEE.&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]], le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 09 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 06 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 18 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
Attention : les concepts que vous avez vus en cours d&#039;architecture doivent être mis en application pour l&#039;architecture de votre projet. Une attention particulière sur ce point doit être portée lors de vos présentations à l&#039;audit 2 et à la soutenance. Le travail que vous présenterez fournira de support à l&#039;évaluation du module de GL.&lt;br /&gt;
&lt;br /&gt;
===Audit 1 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- groupe 6&lt;br /&gt;
&lt;br /&gt;
- groupe 3&lt;br /&gt;
&lt;br /&gt;
- groupe 1&lt;br /&gt;
&lt;br /&gt;
- groupe 2&lt;br /&gt;
&lt;br /&gt;
- groupe 4&lt;br /&gt;
&lt;br /&gt;
- groupe 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
&lt;br /&gt;
===Audit 2 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet : &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Architecture complète&lt;br /&gt;
* Procédure de tests&lt;br /&gt;
* Procédure d&#039;intégration du code &lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Entity, Ressources REST (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- groupe 6 : &lt;br /&gt;
&lt;br /&gt;
- groupe 1 :&lt;br /&gt;
&lt;br /&gt;
- groupe 5 : &lt;br /&gt;
&lt;br /&gt;
- groupe 2 : &lt;br /&gt;
&lt;br /&gt;
- groupe 4 : &lt;br /&gt;
&lt;br /&gt;
- groupe 3 : &lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : P&lt;br /&gt;
* Durée totale : 30 min&lt;br /&gt;
* Utilisez des transparents pour présenter votre projet. Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
* une présentation globale du projet&lt;br /&gt;
* le processus de conception (illustré avec vos différentes productions)&lt;br /&gt;
* la démonstration de votre application&lt;br /&gt;
* des évaluations&lt;br /&gt;
* le bilan (pédagogique ET du projet/individuel ET groupe)&lt;br /&gt;
* le temps consacré à la conception &lt;br /&gt;
* le temps consacré au développement &lt;br /&gt;
* les principales difficultés rencontrées&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* groupe 1&lt;br /&gt;
* groupe 3&lt;br /&gt;
* groupe 5&lt;br /&gt;
* groupe 4&lt;br /&gt;
* groupe 6&lt;br /&gt;
* groupe 2&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et TR pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Tout votre projet doit être suivi grâce à gitLab.&lt;br /&gt;
&lt;br /&gt;
A tout moment, les enseignants doivent donc pouvoir &lt;br /&gt;
* avoir la dernière version du code (dernière version du logiciel en production et ce qui est en cours de développement dans des branches dédiées)&lt;br /&gt;
* voir les tâches prévues/en cours/réalisées&lt;br /&gt;
* savoir le travail de chaque membre (effectué et assigné)&lt;br /&gt;
* consulter les documents de conception (à jour) &lt;br /&gt;
* consulter les CR des daily meeting et autres réunions et les rétrospectives et vos présentations aux différents audits&lt;br /&gt;
* avoir connaissance des procédures de qualité que vous mettez en place au sein de votre projet&lt;br /&gt;
* consulter les résultats des différents tests pour chaque release&lt;br /&gt;
&lt;br /&gt;
Attention : nous insistons particulièrement sur le fait que toutes ces données doivent être maintenues en temps réel et accessibles sur le gitlab de votre projet.&lt;br /&gt;
&lt;br /&gt;
Attention : nous consulterons également les messages de commit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Vous trouverez ci-dessous une liste (non exhaustive) de certains livrables pouvant être produits au sein de votre projet&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;. (obligatoire)&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
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&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation JEE : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;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.&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (waffle ou autre)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à utiliser un outil adapté cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
Vous devez utiliser GitLab comme support à votre projet (versioning, gestion des tâches...).&lt;br /&gt;
&lt;br /&gt;
Nous vous demandons également d&#039;utiliser les issues pour la communication avec les enseignants. En particulier, toute absence ou télétravail doit être signalé par ce média.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer un groupe GitLab. Y ajouter les membres du projet eCOM. Créer plusieurs projets pour les différents parties. Activer les notifications. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;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, annotations JAX-RS, [[Swagger]]). L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl, [[Swagger]] UI, jmeter, .... Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et consommateur) et exécuter certaines requêtes avec des garanties transactionnelles. Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]] pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, Oracle, HSQL ...) (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL, Oracle, HSQL ...) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via [[JMS]] et des EJBTimer (voir http://ecom.ow2.org/xwiki/bin/view/Main/fremail)&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS via [[JMS]] et des EJBTimer ([[ECOM/SMSProviders|fournisseurs SMS]])&lt;br /&gt;
&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec [[Apache Jackrabbit]] &lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Intégration de [[Memcached]]&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST.&lt;br /&gt;
** Utilisation de services tiers via leurs APIs (voir le catalogue de [[Mashape]])&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Gestion d&#039;un &#039;&#039;cloud&#039;&#039; privé avec [[OpenStack]] avec [[Fuel]]&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Kubernete]] ou [[Docker Swarm]]&lt;br /&gt;
** Conditionnement de l&#039;application mobile avec [[Apache Cordova]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers ([[AxiMAG]] par exemple).&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google)&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]], [[Gatling]], OW2 CLIF, BlazeMeter.com) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Telegraf]] + [[InfluxDB]] + [[Grafana]].&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Rolling update (Blue-Green Deployment) des composants (applications et intergiciels).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom (utiliser [https://hub.docker.com/_/glassfish/ Glassfish]).&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[CoreOS]] ou [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]],  [[Hawkular]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des mécanismes pour intégrer les besoins des utilisateurs&lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
===Evaluation des IHMs===&lt;br /&gt;
Une IHM doit être évaluée par au moins deux types d&#039;évaluation (en plus de l&#039;évaluation fonctionnelle) :&lt;br /&gt;
* évaluation experte pour vérifier que les principes fondamentaux d&#039;utilisabilité sont respectés&lt;br /&gt;
* tests utilisateur pour étudier comment vos utilisateurs utilise dans leurs contextes d&#039;utilisation votre interface&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2017-2018.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [https://glassfish.java.net/docs/4.0/administration-guide.pdf Guide d&#039;administration de Glassfish 4]&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/tutorial/doc/ Tutorial JavaEE 7 ] ([https://svn.java.net/svn/javaeetutorial~svn/ sources des exemples])&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/api/ API JavaEE 7]&lt;br /&gt;
* [https://java.net/projects/javaee-spec/pages/Home  Java EE Platform Specification]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
* Documentation et Training Kit sur Windows Azure : http://www.microsoft.com/en-us/download/details.aspx?id=8396&lt;br /&gt;
* Documentation de [http://roboconf.net/en Roboconf]&lt;br /&gt;
** Exemple avec LAMP http://roboconf.net/en/user-guide/lamp-example-part-1.html&lt;br /&gt;
http://proton.inrialpes.fr/~depalma/ecom/liens/liens.html&lt;br /&gt;
* [[Bootstrap]]&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur JavaEE se periment très vite avec l&#039;évolution de la spécification&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* [http://www.apress.com/9781430246268 Antonio Goncalves, Beginning JavaEE 7, APress, 2013], ([https://github.com/agoncal/agoncal-book-javaee7 examples]  pour [[Glassfish]] 4)&lt;br /&gt;
* [https://www.packtpub.com/application-development/java-ee-7-developer-handbook Peter A. Pilgrim, Java EE 7 Developer Handbook, Packt, 2013, ISBN 139781849687942 ]&lt;br /&gt;
* [http://www.packtpub.com/java-ee6-securing-tuning-extending-enterprise-applications-cookbook/book Mick Knutson, Java EE6 Cookbook for securing, tuning, and extending enterprise applications, Packt Publishing, June 2012]&lt;br /&gt;
* Holly Cummins and Timothy Ward, Enterprise OSGi in Action, March, 2013, 400 pages, ISBN: 9781617290138, http://www.manning.com/cummins/ ([http://www.manning.com/cummins/EOSGI_sample_ch02.pdf chapitre 2], [http://www.manning.com/cummins/EOSGI_sample_ch10.pdf chapitre 10])&lt;br /&gt;
* [http://www.manning.com/panda2/ Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan, EJB 3 in Action, Second Edition, March 2014, ISBN: 9781935182993], ([http://www.manning.com/panda2/EJB3iA_2E_SourceCode.zip source code of examples])&lt;br /&gt;
* [http://shop.oreilly.com/product/9780596158033.do  Andrew Lee Rubinger, Bill Burke, Enterprise JavaBeans 3.1, 6th Edition, O&#039;Reilly Media, Final Release Date: September 2010, Pages]&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[AngularJS]]====&lt;br /&gt;
* Brad Green, Shyam Seshadri, AngularJS, Pub OReilly http://shop.oreilly.com/product/0636920028055.do ([https://github.com/shyamseshadri/angularjs-book source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42132</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42132"/>
		<updated>2018-09-04T14:19:36Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Réalisations IHM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* VZ : Vincent Zurczak (vzurczak@linagora.com)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-RICM 2018-2019===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 18/09 à 8h.&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2017-2018]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et TR).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 18/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2017.pdf|transparents]]), CM [[Media:RestfulServices.pdf|REST]], [[MicroServices]], [[Spring]], [[JHipster]] (DD) (P)&lt;br /&gt;
* 18/09 15h45-18h30 : (DD) Installation [[JHipster]] et [[Docker]]. Génération de l&#039;application MVP de eCOM, lancement du profile dev, lancement du profil prod (avec Docker), analyse de qualité du code (généré) avec le container SonarQube et déploiement sur Heroku de 2 applications (stage, production).&lt;br /&gt;
&lt;br /&gt;
* 25/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P)&lt;br /&gt;
* 25/09 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 02/10 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 02/10 15h45-18h30 :  Test utilisateur (SC) (P)&lt;br /&gt;
&lt;br /&gt;
* 09/10 8h00-12h15 : Audit 1 (P) et Séance en autonomie (P)&lt;br /&gt;
* 09/10 15h45-18h30 :  Tests de robustesse (charges) (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 16/10 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 16/10 15h45-18h30 :  Séance encadrée (SC) (P)&lt;br /&gt;
&lt;br /&gt;
* 23/10 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 23/10 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 06/11 8h00-12h15 : Audit 2 (P) et Séance en autonomie (P)&lt;br /&gt;
* 06/11 15h45-18h30 :  Séance en autonomie (P) &lt;br /&gt;
&lt;br /&gt;
* 20/11 8h00-12h15 : Séance en autonomie (P) + Séance encadrée (SC) (P)&lt;br /&gt;
* 20/11 15h45-18h30 :  Séance encadrée (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 27/11 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 27/11 15h45-18h30 :  Séance encadrée (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 04/12 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 04/12 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 11/12 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 11/12 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 18/12 8h00-12h15 : Soutenances (P) et rendus finaux&lt;br /&gt;
* 18/12 15h45-18h30 :  Soutenances (P) et rendus finaux&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie JEE.&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]], le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 09 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 06 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 18 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
Attention : les concepts que vous avez vus en cours d&#039;architecture doivent être mis en application pour l&#039;architecture de votre projet. Une attention particulière sur ce point doit être portée lors de vos présentations à l&#039;audit 2 et à la soutenance. Le travail que vous présenterez fournira de support à l&#039;évaluation du module de GL.&lt;br /&gt;
&lt;br /&gt;
===Audit 1 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- groupe 6&lt;br /&gt;
&lt;br /&gt;
- groupe 3&lt;br /&gt;
&lt;br /&gt;
- groupe 1&lt;br /&gt;
&lt;br /&gt;
- groupe 2&lt;br /&gt;
&lt;br /&gt;
- groupe 4&lt;br /&gt;
&lt;br /&gt;
- groupe 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
&lt;br /&gt;
===Audit 2 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet : &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Architecture complète&lt;br /&gt;
* Procédure de tests&lt;br /&gt;
* Procédure d&#039;intégration du code &lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Entity, Ressources REST (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- groupe 6 : &lt;br /&gt;
&lt;br /&gt;
- groupe 1 :&lt;br /&gt;
&lt;br /&gt;
- groupe 5 : &lt;br /&gt;
&lt;br /&gt;
- groupe 2 : &lt;br /&gt;
&lt;br /&gt;
- groupe 4 : &lt;br /&gt;
&lt;br /&gt;
- groupe 3 : &lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : P&lt;br /&gt;
* Durée totale : 30 min&lt;br /&gt;
* Utilisez des transparents pour présenter votre projet. Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
* une présentation globale du projet&lt;br /&gt;
* le processus de conception (illustré avec vos différentes productions)&lt;br /&gt;
* la démonstration de votre application&lt;br /&gt;
* des évaluations&lt;br /&gt;
* le bilan (pédagogique ET du projet/individuel ET groupe)&lt;br /&gt;
* le temps consacré à la conception &lt;br /&gt;
* le temps consacré au développement &lt;br /&gt;
* les principales difficultés rencontrées&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* groupe 1&lt;br /&gt;
* groupe 3&lt;br /&gt;
* groupe 5&lt;br /&gt;
* groupe 4&lt;br /&gt;
* groupe 6&lt;br /&gt;
* groupe 2&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et TR pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Tout votre projet doit être suivi grâce à gitLab.&lt;br /&gt;
&lt;br /&gt;
A tout moment, les enseignants doivent donc pouvoir &lt;br /&gt;
* avoir la dernière version du code (dernière version du logiciel en production et ce qui est en cours de développement dans des branches dédiées)&lt;br /&gt;
* voir les tâches prévues/en cours/réalisées&lt;br /&gt;
* savoir le travail de chaque membre (effectué et assigné)&lt;br /&gt;
* consulter les documents de conception (à jour) &lt;br /&gt;
* consulter les CR des daily meeting et autres réunions et les rétrospectives et vos présentations aux différents audits&lt;br /&gt;
* avoir connaissance des procédures de qualité que vous mettez en place au sein de votre projet&lt;br /&gt;
* consulter les résultats des différents tests pour chaque release&lt;br /&gt;
&lt;br /&gt;
Attention : nous assistons particulièrement sur le fait que toutes ces données doivent être maintenues en temps réel et accessibles sur le gitlab de votre projet.&lt;br /&gt;
&lt;br /&gt;
Attention : nous consulterons également les messages de commit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Vous trouverez ci-dessous une liste (non exhaustive) de certains livrables pouvant être produits au sein de votre projet&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;. (obligatoire)&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
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&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation JEE : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;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.&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (waffle ou autre)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à utiliser un outil adapté cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
Vous devez utiliser GitLab comme support à votre projet (versioning, gestion des tâches...).&lt;br /&gt;
&lt;br /&gt;
Nous vous demandons également d&#039;utiliser les issues pour la communication avec les enseignants. En particulier, toute absence ou télétravail doit être signalé par ce média.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer une organisation github ou bitbucket. Ajouter les membres du projet eCOM à l&#039;organisation. Créer plusieurs projets pour les différents parties. Activer les watchs. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;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, annotations JAX-RS, [[Swagger]]). L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl, [[Swagger]] UI, jmeter, .... Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et consommateur) et exécuter certaines requêtes avec des garanties transactionnelles. Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]] pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, Oracle, HSQL ...) (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL, Oracle, HSQL ...) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via [[JMS]] et des EJBTimer (voir http://ecom.ow2.org/xwiki/bin/view/Main/fremail)&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS via [[JMS]] et des EJBTimer ([[ECOM/SMSProviders|fournisseurs SMS]])&lt;br /&gt;
&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec [[Apache Jackrabbit]] &lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Intégration de [[Memcached]]&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST.&lt;br /&gt;
** Utilisation de services tiers via leurs APIs (voir le catalogue de [[Mashape]])&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Gestion d&#039;un &#039;&#039;cloud&#039;&#039; privé avec [[OpenStack]] avec [[Fuel]]&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Kubernete]] ou [[Docker Swarm]]&lt;br /&gt;
** Conditionnement de l&#039;application mobile avec [[Apache Cordova]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers ([[AxiMAG]] par exemple).&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google)&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]], [[Gatling]], OW2 CLIF, BlazeMeter.com) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Telegraf]] + [[InfluxDB]] + [[Grafana]].&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Rolling update (Blue-Green Deployment) des composants (applications et intergiciels).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom (utiliser [https://hub.docker.com/_/glassfish/ Glassfish]).&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[CoreOS]] ou [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]],  [[Hawkular]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des mécanismes pour intégrer les besoins des utilisateurs&lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
===Evaluation des IHMs===&lt;br /&gt;
Une IHM doit être évaluée par au moins deux types d&#039;évaluation (en plus de l&#039;évaluation fonctionnelle) :&lt;br /&gt;
* évaluation experte pour vérifier que les principes fondamentaux d&#039;utilisabilité sont respectés&lt;br /&gt;
* tests utilisateur pour étudier comment vos utilisateurs utilise dans leurs contextes d&#039;utilisation votre interface&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2017-2018.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [https://glassfish.java.net/docs/4.0/administration-guide.pdf Guide d&#039;administration de Glassfish 4]&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/tutorial/doc/ Tutorial JavaEE 7 ] ([https://svn.java.net/svn/javaeetutorial~svn/ sources des exemples])&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/api/ API JavaEE 7]&lt;br /&gt;
* [https://java.net/projects/javaee-spec/pages/Home  Java EE Platform Specification]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
* Documentation et Training Kit sur Windows Azure : http://www.microsoft.com/en-us/download/details.aspx?id=8396&lt;br /&gt;
* Documentation de [http://roboconf.net/en Roboconf]&lt;br /&gt;
** Exemple avec LAMP http://roboconf.net/en/user-guide/lamp-example-part-1.html&lt;br /&gt;
http://proton.inrialpes.fr/~depalma/ecom/liens/liens.html&lt;br /&gt;
* [[Bootstrap]]&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur JavaEE se periment très vite avec l&#039;évolution de la spécification&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* [http://www.apress.com/9781430246268 Antonio Goncalves, Beginning JavaEE 7, APress, 2013], ([https://github.com/agoncal/agoncal-book-javaee7 examples]  pour [[Glassfish]] 4)&lt;br /&gt;
* [https://www.packtpub.com/application-development/java-ee-7-developer-handbook Peter A. Pilgrim, Java EE 7 Developer Handbook, Packt, 2013, ISBN 139781849687942 ]&lt;br /&gt;
* [http://www.packtpub.com/java-ee6-securing-tuning-extending-enterprise-applications-cookbook/book Mick Knutson, Java EE6 Cookbook for securing, tuning, and extending enterprise applications, Packt Publishing, June 2012]&lt;br /&gt;
* Holly Cummins and Timothy Ward, Enterprise OSGi in Action, March, 2013, 400 pages, ISBN: 9781617290138, http://www.manning.com/cummins/ ([http://www.manning.com/cummins/EOSGI_sample_ch02.pdf chapitre 2], [http://www.manning.com/cummins/EOSGI_sample_ch10.pdf chapitre 10])&lt;br /&gt;
* [http://www.manning.com/panda2/ Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan, EJB 3 in Action, Second Edition, March 2014, ISBN: 9781935182993], ([http://www.manning.com/panda2/EJB3iA_2E_SourceCode.zip source code of examples])&lt;br /&gt;
* [http://shop.oreilly.com/product/9780596158033.do  Andrew Lee Rubinger, Bill Burke, Enterprise JavaBeans 3.1, 6th Edition, O&#039;Reilly Media, Final Release Date: September 2010, Pages]&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[AngularJS]]====&lt;br /&gt;
* Brad Green, Shyam Seshadri, AngularJS, Pub OReilly http://shop.oreilly.com/product/0636920028055.do ([https://github.com/shyamseshadri/angularjs-book source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42131</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42131"/>
		<updated>2018-09-04T14:17:23Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Conception */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* VZ : Vincent Zurczak (vzurczak@linagora.com)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-RICM 2018-2019===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 18/09 à 8h.&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2017-2018]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et TR).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 18/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2017.pdf|transparents]]), CM [[Media:RestfulServices.pdf|REST]], [[MicroServices]], [[Spring]], [[JHipster]] (DD) (P)&lt;br /&gt;
* 18/09 15h45-18h30 : (DD) Installation [[JHipster]] et [[Docker]]. Génération de l&#039;application MVP de eCOM, lancement du profile dev, lancement du profil prod (avec Docker), analyse de qualité du code (généré) avec le container SonarQube et déploiement sur Heroku de 2 applications (stage, production).&lt;br /&gt;
&lt;br /&gt;
* 25/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P)&lt;br /&gt;
* 25/09 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 02/10 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 02/10 15h45-18h30 :  Test utilisateur (SC) (P)&lt;br /&gt;
&lt;br /&gt;
* 09/10 8h00-12h15 : Audit 1 (P) et Séance en autonomie (P)&lt;br /&gt;
* 09/10 15h45-18h30 :  Tests de robustesse (charges) (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 16/10 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 16/10 15h45-18h30 :  Séance encadrée (SC) (P)&lt;br /&gt;
&lt;br /&gt;
* 23/10 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 23/10 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 06/11 8h00-12h15 : Audit 2 (P) et Séance en autonomie (P)&lt;br /&gt;
* 06/11 15h45-18h30 :  Séance en autonomie (P) &lt;br /&gt;
&lt;br /&gt;
* 20/11 8h00-12h15 : Séance en autonomie (P) + Séance encadrée (SC) (P)&lt;br /&gt;
* 20/11 15h45-18h30 :  Séance encadrée (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 27/11 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 27/11 15h45-18h30 :  Séance encadrée (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 04/12 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 04/12 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 11/12 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 11/12 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 18/12 8h00-12h15 : Soutenances (P) et rendus finaux&lt;br /&gt;
* 18/12 15h45-18h30 :  Soutenances (P) et rendus finaux&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie JEE.&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]], le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 09 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 06 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 18 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
Attention : les concepts que vous avez vus en cours d&#039;architecture doivent être mis en application pour l&#039;architecture de votre projet. Une attention particulière sur ce point doit être portée lors de vos présentations à l&#039;audit 2 et à la soutenance. Le travail que vous présenterez fournira de support à l&#039;évaluation du module de GL.&lt;br /&gt;
&lt;br /&gt;
===Audit 1 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- groupe 6&lt;br /&gt;
&lt;br /&gt;
- groupe 3&lt;br /&gt;
&lt;br /&gt;
- groupe 1&lt;br /&gt;
&lt;br /&gt;
- groupe 2&lt;br /&gt;
&lt;br /&gt;
- groupe 4&lt;br /&gt;
&lt;br /&gt;
- groupe 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
&lt;br /&gt;
===Audit 2 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet : &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Architecture complète&lt;br /&gt;
* Procédure de tests&lt;br /&gt;
* Procédure d&#039;intégration du code &lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Entity, Ressources REST (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- groupe 6 : &lt;br /&gt;
&lt;br /&gt;
- groupe 1 :&lt;br /&gt;
&lt;br /&gt;
- groupe 5 : &lt;br /&gt;
&lt;br /&gt;
- groupe 2 : &lt;br /&gt;
&lt;br /&gt;
- groupe 4 : &lt;br /&gt;
&lt;br /&gt;
- groupe 3 : &lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : P&lt;br /&gt;
* Durée totale : 30 min&lt;br /&gt;
* Utilisez des transparents pour présenter votre projet. Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
* une présentation globale du projet&lt;br /&gt;
* le processus de conception (illustré avec vos différentes productions)&lt;br /&gt;
* la démonstration de votre application&lt;br /&gt;
* des évaluations&lt;br /&gt;
* le bilan (pédagogique ET du projet/individuel ET groupe)&lt;br /&gt;
* le temps consacré à la conception &lt;br /&gt;
* le temps consacré au développement &lt;br /&gt;
* les principales difficultés rencontrées&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* groupe 1&lt;br /&gt;
* groupe 3&lt;br /&gt;
* groupe 5&lt;br /&gt;
* groupe 4&lt;br /&gt;
* groupe 6&lt;br /&gt;
* groupe 2&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et TR pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Tout votre projet doit être suivi grâce à gitLab.&lt;br /&gt;
&lt;br /&gt;
A tout moment, les enseignants doivent donc pouvoir &lt;br /&gt;
* avoir la dernière version du code (dernière version du logiciel en production et ce qui est en cours de développement dans des branches dédiées)&lt;br /&gt;
* voir les tâches prévues/en cours/réalisées&lt;br /&gt;
* savoir le travail de chaque membre (effectué et assigné)&lt;br /&gt;
* consulter les documents de conception (à jour) &lt;br /&gt;
* consulter les CR des daily meeting et autres réunions et les rétrospectives et vos présentations aux différents audits&lt;br /&gt;
* avoir connaissance des procédures de qualité que vous mettez en place au sein de votre projet&lt;br /&gt;
* consulter les résultats des différents tests pour chaque release&lt;br /&gt;
&lt;br /&gt;
Attention : nous assistons particulièrement sur le fait que toutes ces données doivent être maintenues en temps réel et accessibles sur le gitlab de votre projet.&lt;br /&gt;
&lt;br /&gt;
Attention : nous consulterons également les messages de commit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Vous trouverez ci-dessous une liste (non exhaustive) de certains livrables pouvant être produits au sein de votre projet&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;. (obligatoire)&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
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&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation JEE : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;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.&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (waffle ou autre)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à utiliser un outil adapté cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
Vous devez utiliser GitLab comme support à votre projet (versioning, gestion des tâches...).&lt;br /&gt;
&lt;br /&gt;
Nous vous demandons également d&#039;utiliser les issues pour la communication avec les enseignants. En particulier, toute absence ou télétravail doit être signalé par ce média.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer une organisation github ou bitbucket. Ajouter les membres du projet eCOM à l&#039;organisation. Créer plusieurs projets pour les différents parties. Activer les watchs. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;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, annotations JAX-RS, [[Swagger]]). L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl, [[Swagger]] UI, jmeter, .... Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et consommateur) et exécuter certaines requêtes avec des garanties transactionnelles. Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]] pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, Oracle, HSQL ...) (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL, Oracle, HSQL ...) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via [[JMS]] et des EJBTimer (voir http://ecom.ow2.org/xwiki/bin/view/Main/fremail)&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS via [[JMS]] et des EJBTimer ([[ECOM/SMSProviders|fournisseurs SMS]])&lt;br /&gt;
&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec [[Apache Jackrabbit]] &lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Intégration de [[Memcached]]&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST.&lt;br /&gt;
** Utilisation de services tiers via leurs APIs (voir le catalogue de [[Mashape]])&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Gestion d&#039;un &#039;&#039;cloud&#039;&#039; privé avec [[OpenStack]] avec [[Fuel]]&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Kubernete]] ou [[Docker Swarm]]&lt;br /&gt;
** Conditionnement de l&#039;application mobile avec [[Apache Cordova]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers ([[AxiMAG]] par exemple).&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google)&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]], [[Gatling]], OW2 CLIF, BlazeMeter.com) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Telegraf]] + [[InfluxDB]] + [[Grafana]].&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Rolling update (Blue-Green Deployment) des composants (applications et intergiciels).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom (utiliser [https://hub.docker.com/_/glassfish/ Glassfish]).&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[CoreOS]] ou [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]],  [[Hawkular]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des mécanismes pour intégrer les besoins des utilisateurs&lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2017-2018.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [https://glassfish.java.net/docs/4.0/administration-guide.pdf Guide d&#039;administration de Glassfish 4]&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/tutorial/doc/ Tutorial JavaEE 7 ] ([https://svn.java.net/svn/javaeetutorial~svn/ sources des exemples])&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/api/ API JavaEE 7]&lt;br /&gt;
* [https://java.net/projects/javaee-spec/pages/Home  Java EE Platform Specification]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
* Documentation et Training Kit sur Windows Azure : http://www.microsoft.com/en-us/download/details.aspx?id=8396&lt;br /&gt;
* Documentation de [http://roboconf.net/en Roboconf]&lt;br /&gt;
** Exemple avec LAMP http://roboconf.net/en/user-guide/lamp-example-part-1.html&lt;br /&gt;
http://proton.inrialpes.fr/~depalma/ecom/liens/liens.html&lt;br /&gt;
* [[Bootstrap]]&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur JavaEE se periment très vite avec l&#039;évolution de la spécification&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* [http://www.apress.com/9781430246268 Antonio Goncalves, Beginning JavaEE 7, APress, 2013], ([https://github.com/agoncal/agoncal-book-javaee7 examples]  pour [[Glassfish]] 4)&lt;br /&gt;
* [https://www.packtpub.com/application-development/java-ee-7-developer-handbook Peter A. Pilgrim, Java EE 7 Developer Handbook, Packt, 2013, ISBN 139781849687942 ]&lt;br /&gt;
* [http://www.packtpub.com/java-ee6-securing-tuning-extending-enterprise-applications-cookbook/book Mick Knutson, Java EE6 Cookbook for securing, tuning, and extending enterprise applications, Packt Publishing, June 2012]&lt;br /&gt;
* Holly Cummins and Timothy Ward, Enterprise OSGi in Action, March, 2013, 400 pages, ISBN: 9781617290138, http://www.manning.com/cummins/ ([http://www.manning.com/cummins/EOSGI_sample_ch02.pdf chapitre 2], [http://www.manning.com/cummins/EOSGI_sample_ch10.pdf chapitre 10])&lt;br /&gt;
* [http://www.manning.com/panda2/ Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan, EJB 3 in Action, Second Edition, March 2014, ISBN: 9781935182993], ([http://www.manning.com/panda2/EJB3iA_2E_SourceCode.zip source code of examples])&lt;br /&gt;
* [http://shop.oreilly.com/product/9780596158033.do  Andrew Lee Rubinger, Bill Burke, Enterprise JavaBeans 3.1, 6th Edition, O&#039;Reilly Media, Final Release Date: September 2010, Pages]&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[AngularJS]]====&lt;br /&gt;
* Brad Green, Shyam Seshadri, AngularJS, Pub OReilly http://shop.oreilly.com/product/0636920028055.do ([https://github.com/shyamseshadri/angularjs-book source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42130</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42130"/>
		<updated>2018-09-04T14:15:36Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Conduite et suivi de projet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* VZ : Vincent Zurczak (vzurczak@linagora.com)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-RICM 2018-2019===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 18/09 à 8h.&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2017-2018]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et TR).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 18/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2017.pdf|transparents]]), CM [[Media:RestfulServices.pdf|REST]], [[MicroServices]], [[Spring]], [[JHipster]] (DD) (P)&lt;br /&gt;
* 18/09 15h45-18h30 : (DD) Installation [[JHipster]] et [[Docker]]. Génération de l&#039;application MVP de eCOM, lancement du profile dev, lancement du profil prod (avec Docker), analyse de qualité du code (généré) avec le container SonarQube et déploiement sur Heroku de 2 applications (stage, production).&lt;br /&gt;
&lt;br /&gt;
* 25/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P)&lt;br /&gt;
* 25/09 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 02/10 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 02/10 15h45-18h30 :  Test utilisateur (SC) (P)&lt;br /&gt;
&lt;br /&gt;
* 09/10 8h00-12h15 : Audit 1 (P) et Séance en autonomie (P)&lt;br /&gt;
* 09/10 15h45-18h30 :  Tests de robustesse (charges) (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 16/10 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 16/10 15h45-18h30 :  Séance encadrée (SC) (P)&lt;br /&gt;
&lt;br /&gt;
* 23/10 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 23/10 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 06/11 8h00-12h15 : Audit 2 (P) et Séance en autonomie (P)&lt;br /&gt;
* 06/11 15h45-18h30 :  Séance en autonomie (P) &lt;br /&gt;
&lt;br /&gt;
* 20/11 8h00-12h15 : Séance en autonomie (P) + Séance encadrée (SC) (P)&lt;br /&gt;
* 20/11 15h45-18h30 :  Séance encadrée (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 27/11 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 27/11 15h45-18h30 :  Séance encadrée (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 04/12 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 04/12 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 11/12 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 11/12 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 18/12 8h00-12h15 : Soutenances (P) et rendus finaux&lt;br /&gt;
* 18/12 15h45-18h30 :  Soutenances (P) et rendus finaux&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie JEE.&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]], le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 09 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 06 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 18 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
Attention : les concepts que vous avez vus en cours d&#039;architecture doivent être mis en application pour l&#039;architecture de votre projet. Une attention particulière sur ce point doit être portée lors de vos présentations à l&#039;audit 2 et à la soutenance. Le travail que vous présenterez fournira de support à l&#039;évaluation du module de GL.&lt;br /&gt;
&lt;br /&gt;
===Audit 1 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- groupe 6&lt;br /&gt;
&lt;br /&gt;
- groupe 3&lt;br /&gt;
&lt;br /&gt;
- groupe 1&lt;br /&gt;
&lt;br /&gt;
- groupe 2&lt;br /&gt;
&lt;br /&gt;
- groupe 4&lt;br /&gt;
&lt;br /&gt;
- groupe 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
&lt;br /&gt;
===Audit 2 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet : &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Architecture complète&lt;br /&gt;
* Procédure de tests&lt;br /&gt;
* Procédure d&#039;intégration du code &lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Entity, Ressources REST (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- groupe 6 : &lt;br /&gt;
&lt;br /&gt;
- groupe 1 :&lt;br /&gt;
&lt;br /&gt;
- groupe 5 : &lt;br /&gt;
&lt;br /&gt;
- groupe 2 : &lt;br /&gt;
&lt;br /&gt;
- groupe 4 : &lt;br /&gt;
&lt;br /&gt;
- groupe 3 : &lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : P&lt;br /&gt;
* Durée totale : 30 min&lt;br /&gt;
* Utilisez des transparents pour présenter votre projet. Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
* une présentation globale du projet&lt;br /&gt;
* le processus de conception (illustré avec vos différentes productions)&lt;br /&gt;
* la démonstration de votre application&lt;br /&gt;
* des évaluations&lt;br /&gt;
* le bilan (pédagogique ET du projet/individuel ET groupe)&lt;br /&gt;
* le temps consacré à la conception &lt;br /&gt;
* le temps consacré au développement &lt;br /&gt;
* les principales difficultés rencontrées&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* groupe 1&lt;br /&gt;
* groupe 3&lt;br /&gt;
* groupe 5&lt;br /&gt;
* groupe 4&lt;br /&gt;
* groupe 6&lt;br /&gt;
* groupe 2&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et TR pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Tout votre projet doit être suivi grâce à gitLab.&lt;br /&gt;
&lt;br /&gt;
A tout moment, les enseignants doivent donc pouvoir &lt;br /&gt;
* avoir la dernière version du code (dernière version du logiciel en production et ce qui est en cours de développement dans des branches dédiées)&lt;br /&gt;
* voir les tâches prévues/en cours/réalisées&lt;br /&gt;
* savoir le travail de chaque membre (effectué et assigné)&lt;br /&gt;
* consulter les documents de conception (à jour) &lt;br /&gt;
* consulter les CR des daily meeting et autres réunions et les rétrospectives et vos présentations aux différents audits&lt;br /&gt;
* avoir connaissance des procédures de qualité que vous mettez en place au sein de votre projet&lt;br /&gt;
* consulter les résultats des différents tests pour chaque release&lt;br /&gt;
&lt;br /&gt;
Attention : nous assistons particulièrement sur le fait que toutes ces données doivent être maintenues en temps réel et accessibles sur le gitlab de votre projet.&lt;br /&gt;
&lt;br /&gt;
Attention : nous consulterons également les messages de commit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Vous trouverez ci-dessous une liste (non exhaustive) de certains livrables pouvant être produits au sein de votre projet&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;. (obligatoire)&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
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&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation JEE : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;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.&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (waffle ou autre)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à utiliser un outil adapté cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
Vous devez utiliser GitLab comme support à votre projet (versioning, gestion des tâches...).&lt;br /&gt;
&lt;br /&gt;
Nous vous demandons également d&#039;utiliser les issues pour la communication avec les enseignants. En particulier, toute absence ou télétravail doit être signalé par ce média.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer une organisation github ou bitbucket. Ajouter les membres du projet eCOM à l&#039;organisation. Créer plusieurs projets pour les différents parties. Activer les watchs. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;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, annotations JAX-RS, [[Swagger]]). L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl, [[Swagger]] UI, jmeter, .... Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et consommateur) et exécuter certaines requêtes avec des garanties transactionnelles. Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]] pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, Oracle, HSQL ...) (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL, Oracle, HSQL ...) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via [[JMS]] et des EJBTimer (voir http://ecom.ow2.org/xwiki/bin/view/Main/fremail)&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS via [[JMS]] et des EJBTimer ([[ECOM/SMSProviders|fournisseurs SMS]])&lt;br /&gt;
&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec [[Apache Jackrabbit]] &lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Intégration de [[Memcached]]&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST.&lt;br /&gt;
** Utilisation de services tiers via leurs APIs (voir le catalogue de [[Mashape]])&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Gestion d&#039;un &#039;&#039;cloud&#039;&#039; privé avec [[OpenStack]] avec [[Fuel]]&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Kubernete]] ou [[Docker Swarm]]&lt;br /&gt;
** Conditionnement de l&#039;application mobile avec [[Apache Cordova]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers ([[AxiMAG]] par exemple).&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google)&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]], [[Gatling]], OW2 CLIF, BlazeMeter.com) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Telegraf]] + [[InfluxDB]] + [[Grafana]].&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Rolling update (Blue-Green Deployment) des composants (applications et intergiciels).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom (utiliser [https://hub.docker.com/_/glassfish/ Glassfish]).&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[CoreOS]] ou [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]],  [[Hawkular]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2017-2018.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [https://glassfish.java.net/docs/4.0/administration-guide.pdf Guide d&#039;administration de Glassfish 4]&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/tutorial/doc/ Tutorial JavaEE 7 ] ([https://svn.java.net/svn/javaeetutorial~svn/ sources des exemples])&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/api/ API JavaEE 7]&lt;br /&gt;
* [https://java.net/projects/javaee-spec/pages/Home  Java EE Platform Specification]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
* Documentation et Training Kit sur Windows Azure : http://www.microsoft.com/en-us/download/details.aspx?id=8396&lt;br /&gt;
* Documentation de [http://roboconf.net/en Roboconf]&lt;br /&gt;
** Exemple avec LAMP http://roboconf.net/en/user-guide/lamp-example-part-1.html&lt;br /&gt;
http://proton.inrialpes.fr/~depalma/ecom/liens/liens.html&lt;br /&gt;
* [[Bootstrap]]&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur JavaEE se periment très vite avec l&#039;évolution de la spécification&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* [http://www.apress.com/9781430246268 Antonio Goncalves, Beginning JavaEE 7, APress, 2013], ([https://github.com/agoncal/agoncal-book-javaee7 examples]  pour [[Glassfish]] 4)&lt;br /&gt;
* [https://www.packtpub.com/application-development/java-ee-7-developer-handbook Peter A. Pilgrim, Java EE 7 Developer Handbook, Packt, 2013, ISBN 139781849687942 ]&lt;br /&gt;
* [http://www.packtpub.com/java-ee6-securing-tuning-extending-enterprise-applications-cookbook/book Mick Knutson, Java EE6 Cookbook for securing, tuning, and extending enterprise applications, Packt Publishing, June 2012]&lt;br /&gt;
* Holly Cummins and Timothy Ward, Enterprise OSGi in Action, March, 2013, 400 pages, ISBN: 9781617290138, http://www.manning.com/cummins/ ([http://www.manning.com/cummins/EOSGI_sample_ch02.pdf chapitre 2], [http://www.manning.com/cummins/EOSGI_sample_ch10.pdf chapitre 10])&lt;br /&gt;
* [http://www.manning.com/panda2/ Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan, EJB 3 in Action, Second Edition, March 2014, ISBN: 9781935182993], ([http://www.manning.com/panda2/EJB3iA_2E_SourceCode.zip source code of examples])&lt;br /&gt;
* [http://shop.oreilly.com/product/9780596158033.do  Andrew Lee Rubinger, Bill Burke, Enterprise JavaBeans 3.1, 6th Edition, O&#039;Reilly Media, Final Release Date: September 2010, Pages]&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[AngularJS]]====&lt;br /&gt;
* Brad Green, Shyam Seshadri, AngularJS, Pub OReilly http://shop.oreilly.com/product/0636920028055.do ([https://github.com/shyamseshadri/angularjs-book source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42129</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42129"/>
		<updated>2018-09-04T14:10:51Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Livrables */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* VZ : Vincent Zurczak (vzurczak@linagora.com)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-RICM 2018-2019===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 18/09 à 8h.&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2017-2018]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et TR).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 18/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2017.pdf|transparents]]), CM [[Media:RestfulServices.pdf|REST]], [[MicroServices]], [[Spring]], [[JHipster]] (DD) (P)&lt;br /&gt;
* 18/09 15h45-18h30 : (DD) Installation [[JHipster]] et [[Docker]]. Génération de l&#039;application MVP de eCOM, lancement du profile dev, lancement du profil prod (avec Docker), analyse de qualité du code (généré) avec le container SonarQube et déploiement sur Heroku de 2 applications (stage, production).&lt;br /&gt;
&lt;br /&gt;
* 25/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P)&lt;br /&gt;
* 25/09 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 02/10 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 02/10 15h45-18h30 :  Test utilisateur (SC) (P)&lt;br /&gt;
&lt;br /&gt;
* 09/10 8h00-12h15 : Audit 1 (P) et Séance en autonomie (P)&lt;br /&gt;
* 09/10 15h45-18h30 :  Tests de robustesse (charges) (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 16/10 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 16/10 15h45-18h30 :  Séance encadrée (SC) (P)&lt;br /&gt;
&lt;br /&gt;
* 23/10 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 23/10 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 06/11 8h00-12h15 : Audit 2 (P) et Séance en autonomie (P)&lt;br /&gt;
* 06/11 15h45-18h30 :  Séance en autonomie (P) &lt;br /&gt;
&lt;br /&gt;
* 20/11 8h00-12h15 : Séance en autonomie (P) + Séance encadrée (SC) (P)&lt;br /&gt;
* 20/11 15h45-18h30 :  Séance encadrée (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 27/11 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 27/11 15h45-18h30 :  Séance encadrée (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 04/12 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 04/12 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 11/12 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 11/12 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 18/12 8h00-12h15 : Soutenances (P) et rendus finaux&lt;br /&gt;
* 18/12 15h45-18h30 :  Soutenances (P) et rendus finaux&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie JEE.&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]], le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 09 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 06 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 18 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
Attention : les concepts que vous avez vus en cours d&#039;architecture doivent être mis en application pour l&#039;architecture de votre projet. Une attention particulière sur ce point doit être portée lors de vos présentations à l&#039;audit 2 et à la soutenance. Le travail que vous présenterez fournira de support à l&#039;évaluation du module de GL.&lt;br /&gt;
&lt;br /&gt;
===Audit 1 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- groupe 6&lt;br /&gt;
&lt;br /&gt;
- groupe 3&lt;br /&gt;
&lt;br /&gt;
- groupe 1&lt;br /&gt;
&lt;br /&gt;
- groupe 2&lt;br /&gt;
&lt;br /&gt;
- groupe 4&lt;br /&gt;
&lt;br /&gt;
- groupe 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
&lt;br /&gt;
===Audit 2 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet : &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Architecture complète&lt;br /&gt;
* Procédure de tests&lt;br /&gt;
* Procédure d&#039;intégration du code &lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Entity, Ressources REST (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- groupe 6 : &lt;br /&gt;
&lt;br /&gt;
- groupe 1 :&lt;br /&gt;
&lt;br /&gt;
- groupe 5 : &lt;br /&gt;
&lt;br /&gt;
- groupe 2 : &lt;br /&gt;
&lt;br /&gt;
- groupe 4 : &lt;br /&gt;
&lt;br /&gt;
- groupe 3 : &lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : P&lt;br /&gt;
* Durée totale : 30 min&lt;br /&gt;
* Utilisez des transparents pour présenter votre projet. Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
* une présentation globale du projet&lt;br /&gt;
* le processus de conception (illustré avec vos différentes productions)&lt;br /&gt;
* la démonstration de votre application&lt;br /&gt;
* des évaluations&lt;br /&gt;
* le bilan (pédagogique ET du projet/individuel ET groupe)&lt;br /&gt;
* le temps consacré à la conception &lt;br /&gt;
* le temps consacré au développement &lt;br /&gt;
* les principales difficultés rencontrées&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* groupe 1&lt;br /&gt;
* groupe 3&lt;br /&gt;
* groupe 5&lt;br /&gt;
* groupe 4&lt;br /&gt;
* groupe 6&lt;br /&gt;
* groupe 2&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et TR pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Tout votre projet doit être suivi grâce à gitLab.&lt;br /&gt;
&lt;br /&gt;
A tout moment, les enseignants doivent donc pouvoir &lt;br /&gt;
* avoir la dernière version du code (dernière version du logiciel en production et ce qui est en cours de développement dans des branches dédiées)&lt;br /&gt;
* voir les tâches prévues/en cours/réalisées&lt;br /&gt;
* savoir le travail de chaque membre (effectué et assigné)&lt;br /&gt;
* consulter les documents de conception (à jour) &lt;br /&gt;
* consulter les CR des daily meeting et autres réunions et les rétrospectives et vos présentations aux différents audits&lt;br /&gt;
* avoir connaissance des procédures de qualité que vous mettez en place au sein de votre projet&lt;br /&gt;
* consulter les résultats des différents tests pour chaque release&lt;br /&gt;
&lt;br /&gt;
Attention : nous assistons particulièrement sur le fait que toutes ces données doivent être maintenues en temps réel et accessibles sur le gitlab de votre projet.&lt;br /&gt;
&lt;br /&gt;
Attention : nous consulterons également les messages de commit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Vous trouverez ci-dessous une liste (non exhaustive) de certains livrables pouvant être produits au sein de votre projet&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;. (obligatoire)&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
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&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation JEE : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;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.&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (waffle ou autre)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à créer un wiki qui regroupera l&#039;ensemble de vos documentations. Cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer une organisation github ou bitbucket. Ajouter les membres du projet eCOM à l&#039;organisation. Créer plusieurs projets pour les différents parties. Activer les watchs. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;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, annotations JAX-RS, [[Swagger]]). L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl, [[Swagger]] UI, jmeter, .... Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et consommateur) et exécuter certaines requêtes avec des garanties transactionnelles. Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]] pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, Oracle, HSQL ...) (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL, Oracle, HSQL ...) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via [[JMS]] et des EJBTimer (voir http://ecom.ow2.org/xwiki/bin/view/Main/fremail)&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS via [[JMS]] et des EJBTimer ([[ECOM/SMSProviders|fournisseurs SMS]])&lt;br /&gt;
&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec [[Apache Jackrabbit]] &lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Intégration de [[Memcached]]&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST.&lt;br /&gt;
** Utilisation de services tiers via leurs APIs (voir le catalogue de [[Mashape]])&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Gestion d&#039;un &#039;&#039;cloud&#039;&#039; privé avec [[OpenStack]] avec [[Fuel]]&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Kubernete]] ou [[Docker Swarm]]&lt;br /&gt;
** Conditionnement de l&#039;application mobile avec [[Apache Cordova]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers ([[AxiMAG]] par exemple).&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google)&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]], [[Gatling]], OW2 CLIF, BlazeMeter.com) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Telegraf]] + [[InfluxDB]] + [[Grafana]].&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Rolling update (Blue-Green Deployment) des composants (applications et intergiciels).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom (utiliser [https://hub.docker.com/_/glassfish/ Glassfish]).&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[CoreOS]] ou [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]],  [[Hawkular]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2017-2018.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [https://glassfish.java.net/docs/4.0/administration-guide.pdf Guide d&#039;administration de Glassfish 4]&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/tutorial/doc/ Tutorial JavaEE 7 ] ([https://svn.java.net/svn/javaeetutorial~svn/ sources des exemples])&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/api/ API JavaEE 7]&lt;br /&gt;
* [https://java.net/projects/javaee-spec/pages/Home  Java EE Platform Specification]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
* Documentation et Training Kit sur Windows Azure : http://www.microsoft.com/en-us/download/details.aspx?id=8396&lt;br /&gt;
* Documentation de [http://roboconf.net/en Roboconf]&lt;br /&gt;
** Exemple avec LAMP http://roboconf.net/en/user-guide/lamp-example-part-1.html&lt;br /&gt;
http://proton.inrialpes.fr/~depalma/ecom/liens/liens.html&lt;br /&gt;
* [[Bootstrap]]&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur JavaEE se periment très vite avec l&#039;évolution de la spécification&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* [http://www.apress.com/9781430246268 Antonio Goncalves, Beginning JavaEE 7, APress, 2013], ([https://github.com/agoncal/agoncal-book-javaee7 examples]  pour [[Glassfish]] 4)&lt;br /&gt;
* [https://www.packtpub.com/application-development/java-ee-7-developer-handbook Peter A. Pilgrim, Java EE 7 Developer Handbook, Packt, 2013, ISBN 139781849687942 ]&lt;br /&gt;
* [http://www.packtpub.com/java-ee6-securing-tuning-extending-enterprise-applications-cookbook/book Mick Knutson, Java EE6 Cookbook for securing, tuning, and extending enterprise applications, Packt Publishing, June 2012]&lt;br /&gt;
* Holly Cummins and Timothy Ward, Enterprise OSGi in Action, March, 2013, 400 pages, ISBN: 9781617290138, http://www.manning.com/cummins/ ([http://www.manning.com/cummins/EOSGI_sample_ch02.pdf chapitre 2], [http://www.manning.com/cummins/EOSGI_sample_ch10.pdf chapitre 10])&lt;br /&gt;
* [http://www.manning.com/panda2/ Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan, EJB 3 in Action, Second Edition, March 2014, ISBN: 9781935182993], ([http://www.manning.com/panda2/EJB3iA_2E_SourceCode.zip source code of examples])&lt;br /&gt;
* [http://shop.oreilly.com/product/9780596158033.do  Andrew Lee Rubinger, Bill Burke, Enterprise JavaBeans 3.1, 6th Edition, O&#039;Reilly Media, Final Release Date: September 2010, Pages]&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[AngularJS]]====&lt;br /&gt;
* Brad Green, Shyam Seshadri, AngularJS, Pub OReilly http://shop.oreilly.com/product/0636920028055.do ([https://github.com/shyamseshadri/angularjs-book source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42126</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42126"/>
		<updated>2018-09-03T13:46:10Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Audit 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* VZ : Vincent Zurczak (vzurczak@linagora.com)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-RICM 2018-2019===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 18/09 à 8h.&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2017-2018]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et TR).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 18/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2017.pdf|transparents]]), CM [[Media:RestfulServices.pdf|REST]], [[MicroServices]], [[Spring]], [[JHipster]] (DD) (P)&lt;br /&gt;
* 18/09 15h45-18h30 : (DD) Installation [[JHipster]] et [[Docker]]. Génération de l&#039;application MVP de eCOM, lancement du profile dev, lancement du profil prod (avec Docker), analyse de qualité du code (généré) avec le container SonarQube et déploiement sur Heroku de 2 applications (stage, production).&lt;br /&gt;
&lt;br /&gt;
* 25/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P)&lt;br /&gt;
* 25/09 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 02/10 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 02/10 15h45-18h30 :  Test utilisateur (SC) (P)&lt;br /&gt;
&lt;br /&gt;
* 09/10 8h00-12h15 : Audit 1 (P) et Séance en autonomie (P)&lt;br /&gt;
* 09/10 15h45-18h30 :  Tests de robustesse (charges) (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 16/10 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 16/10 15h45-18h30 :  Séance encadrée (SC) (P)&lt;br /&gt;
&lt;br /&gt;
* 23/10 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 23/10 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 06/11 8h00-12h15 : Audit 2 (P) et Séance en autonomie (P)&lt;br /&gt;
* 06/11 15h45-18h30 :  Séance en autonomie (P) &lt;br /&gt;
&lt;br /&gt;
* 20/11 8h00-12h15 : Séance en autonomie (P) + Séance encadrée (SC) (P)&lt;br /&gt;
* 20/11 15h45-18h30 :  Séance encadrée (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 27/11 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 27/11 15h45-18h30 :  Séance encadrée (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 04/12 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 04/12 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 11/12 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 11/12 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 18/12 8h00-12h15 : Soutenances (P) et rendus finaux&lt;br /&gt;
* 18/12 15h45-18h30 :  Soutenances (P) et rendus finaux&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie JEE.&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]], le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 09 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 06 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 18 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
Attention : les concepts que vous avez vus en cours d&#039;architecture doivent être mis en application pour l&#039;architecture de votre projet. Une attention particulière sur ce point doit être portée lors de vos présentations à l&#039;audit 2 et à la soutenance. Le travail que vous présenterez fournira de support à l&#039;évaluation du module de GL.&lt;br /&gt;
&lt;br /&gt;
===Audit 1 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- groupe 6&lt;br /&gt;
&lt;br /&gt;
- groupe 3&lt;br /&gt;
&lt;br /&gt;
- groupe 1&lt;br /&gt;
&lt;br /&gt;
- groupe 2&lt;br /&gt;
&lt;br /&gt;
- groupe 4&lt;br /&gt;
&lt;br /&gt;
- groupe 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
&lt;br /&gt;
===Audit 2 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet : &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Architecture complète&lt;br /&gt;
* Procédure de tests&lt;br /&gt;
* Procédure d&#039;intégration du code &lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Entity, Ressources REST (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- groupe 6 : &lt;br /&gt;
&lt;br /&gt;
- groupe 1 :&lt;br /&gt;
&lt;br /&gt;
- groupe 5 : &lt;br /&gt;
&lt;br /&gt;
- groupe 2 : &lt;br /&gt;
&lt;br /&gt;
- groupe 4 : &lt;br /&gt;
&lt;br /&gt;
- groupe 3 : &lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : P&lt;br /&gt;
* Durée totale : 30 min&lt;br /&gt;
* Utilisez des transparents pour présenter votre projet. Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
* une présentation globale du projet&lt;br /&gt;
* le processus de conception (illustré avec vos différentes productions)&lt;br /&gt;
* la démonstration de votre application&lt;br /&gt;
* des évaluations&lt;br /&gt;
* le bilan (pédagogique ET du projet/individuel ET groupe)&lt;br /&gt;
* le temps consacré à la conception &lt;br /&gt;
* le temps consacré au développement &lt;br /&gt;
* les principales difficultés rencontrées&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* groupe 1&lt;br /&gt;
* groupe 3&lt;br /&gt;
* groupe 5&lt;br /&gt;
* groupe 4&lt;br /&gt;
* groupe 6&lt;br /&gt;
* groupe 2&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et TR pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Deux rapports doivent être rédigés pour la partie Système : un document de conception système et un document d&#039;évaluation système. Ces documents doivent être accessibles depuis le wiki (ils peuvent même être directement édités sur le wiki).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ajouter les livrables que vous jugez utiles pour présenter le travail que vous avez réalisé. Pour ces livrables : numérotez les &lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Chaque livrable est numéroté (détails du livrable ci-dessous) LX, sous une forme à respecter. Certains ont une date de rendu à respecter. Ci-dessous le résumé de ces contraintes :&lt;br /&gt;
*L2 : 09/10 minuit : Wiki&lt;br /&gt;
*L3 : 09/10 minuit : Wiki&lt;br /&gt;
*L4 : 06/11 minuit : Wiki&lt;br /&gt;
*L5 : ?&lt;br /&gt;
*L6 : 06/11 minuit : Wiki&lt;br /&gt;
*L7 : 09/10 minuit : Wiki&lt;br /&gt;
*L8 : en continu : Wiki&lt;br /&gt;
*L9 : en continu : Wiki&lt;br /&gt;
*L10 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L11 : 18/12 minuit : Lien sur Wiki&lt;br /&gt;
*L12 : 19/12 lors du passage&lt;br /&gt;
*L13 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L14 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L15 : 08/11 lors du passage &lt;br /&gt;
*L16 : 19/12 lors du passage &lt;br /&gt;
*L17 : 19/12 lors du passage : Tableaux complétés et imprimés&lt;br /&gt;
*L18 : 10/10 lors du passage&lt;br /&gt;
&lt;br /&gt;
===Contenu===&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
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&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation JEE : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;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.&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (waffle ou autre)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à créer un wiki qui regroupera l&#039;ensemble de vos documentations. Cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer une organisation github ou bitbucket. Ajouter les membres du projet eCOM à l&#039;organisation. Créer plusieurs projets pour les différents parties. Activer les watchs. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;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, annotations JAX-RS, [[Swagger]]). L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl, [[Swagger]] UI, jmeter, .... Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et consommateur) et exécuter certaines requêtes avec des garanties transactionnelles. Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]] pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, Oracle, HSQL ...) (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL, Oracle, HSQL ...) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via [[JMS]] et des EJBTimer (voir http://ecom.ow2.org/xwiki/bin/view/Main/fremail)&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS via [[JMS]] et des EJBTimer ([[ECOM/SMSProviders|fournisseurs SMS]])&lt;br /&gt;
&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec [[Apache Jackrabbit]] &lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Intégration de [[Memcached]]&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST.&lt;br /&gt;
** Utilisation de services tiers via leurs APIs (voir le catalogue de [[Mashape]])&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Gestion d&#039;un &#039;&#039;cloud&#039;&#039; privé avec [[OpenStack]] avec [[Fuel]]&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Kubernete]] ou [[Docker Swarm]]&lt;br /&gt;
** Conditionnement de l&#039;application mobile avec [[Apache Cordova]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers ([[AxiMAG]] par exemple).&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google)&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]], [[Gatling]], OW2 CLIF, BlazeMeter.com) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Telegraf]] + [[InfluxDB]] + [[Grafana]].&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Rolling update (Blue-Green Deployment) des composants (applications et intergiciels).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom (utiliser [https://hub.docker.com/_/glassfish/ Glassfish]).&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[CoreOS]] ou [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]],  [[Hawkular]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2017-2018.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [https://glassfish.java.net/docs/4.0/administration-guide.pdf Guide d&#039;administration de Glassfish 4]&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/tutorial/doc/ Tutorial JavaEE 7 ] ([https://svn.java.net/svn/javaeetutorial~svn/ sources des exemples])&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/api/ API JavaEE 7]&lt;br /&gt;
* [https://java.net/projects/javaee-spec/pages/Home  Java EE Platform Specification]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
* Documentation et Training Kit sur Windows Azure : http://www.microsoft.com/en-us/download/details.aspx?id=8396&lt;br /&gt;
* Documentation de [http://roboconf.net/en Roboconf]&lt;br /&gt;
** Exemple avec LAMP http://roboconf.net/en/user-guide/lamp-example-part-1.html&lt;br /&gt;
http://proton.inrialpes.fr/~depalma/ecom/liens/liens.html&lt;br /&gt;
* [[Bootstrap]]&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur JavaEE se periment très vite avec l&#039;évolution de la spécification&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* [http://www.apress.com/9781430246268 Antonio Goncalves, Beginning JavaEE 7, APress, 2013], ([https://github.com/agoncal/agoncal-book-javaee7 examples]  pour [[Glassfish]] 4)&lt;br /&gt;
* [https://www.packtpub.com/application-development/java-ee-7-developer-handbook Peter A. Pilgrim, Java EE 7 Developer Handbook, Packt, 2013, ISBN 139781849687942 ]&lt;br /&gt;
* [http://www.packtpub.com/java-ee6-securing-tuning-extending-enterprise-applications-cookbook/book Mick Knutson, Java EE6 Cookbook for securing, tuning, and extending enterprise applications, Packt Publishing, June 2012]&lt;br /&gt;
* Holly Cummins and Timothy Ward, Enterprise OSGi in Action, March, 2013, 400 pages, ISBN: 9781617290138, http://www.manning.com/cummins/ ([http://www.manning.com/cummins/EOSGI_sample_ch02.pdf chapitre 2], [http://www.manning.com/cummins/EOSGI_sample_ch10.pdf chapitre 10])&lt;br /&gt;
* [http://www.manning.com/panda2/ Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan, EJB 3 in Action, Second Edition, March 2014, ISBN: 9781935182993], ([http://www.manning.com/panda2/EJB3iA_2E_SourceCode.zip source code of examples])&lt;br /&gt;
* [http://shop.oreilly.com/product/9780596158033.do  Andrew Lee Rubinger, Bill Burke, Enterprise JavaBeans 3.1, 6th Edition, O&#039;Reilly Media, Final Release Date: September 2010, Pages]&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[AngularJS]]====&lt;br /&gt;
* Brad Green, Shyam Seshadri, AngularJS, Pub OReilly http://shop.oreilly.com/product/0636920028055.do ([https://github.com/shyamseshadri/angularjs-book source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42125</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42125"/>
		<updated>2018-09-03T13:45:43Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Audit 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* VZ : Vincent Zurczak (vzurczak@linagora.com)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-RICM 2018-2019===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 18/09 à 8h.&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2017-2018]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et TR).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 18/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2017.pdf|transparents]]), CM [[Media:RestfulServices.pdf|REST]], [[MicroServices]], [[Spring]], [[JHipster]] (DD) (P)&lt;br /&gt;
* 18/09 15h45-18h30 : (DD) Installation [[JHipster]] et [[Docker]]. Génération de l&#039;application MVP de eCOM, lancement du profile dev, lancement du profil prod (avec Docker), analyse de qualité du code (généré) avec le container SonarQube et déploiement sur Heroku de 2 applications (stage, production).&lt;br /&gt;
&lt;br /&gt;
* 25/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P)&lt;br /&gt;
* 25/09 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 02/10 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 02/10 15h45-18h30 :  Test utilisateur (SC) (P)&lt;br /&gt;
&lt;br /&gt;
* 09/10 8h00-12h15 : Audit 1 (P) et Séance en autonomie (P)&lt;br /&gt;
* 09/10 15h45-18h30 :  Tests de robustesse (charges) (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 16/10 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 16/10 15h45-18h30 :  Séance encadrée (SC) (P)&lt;br /&gt;
&lt;br /&gt;
* 23/10 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 23/10 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 06/11 8h00-12h15 : Audit 2 (P) et Séance en autonomie (P)&lt;br /&gt;
* 06/11 15h45-18h30 :  Séance en autonomie (P) &lt;br /&gt;
&lt;br /&gt;
* 20/11 8h00-12h15 : Séance en autonomie (P) + Séance encadrée (SC) (P)&lt;br /&gt;
* 20/11 15h45-18h30 :  Séance encadrée (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 27/11 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 27/11 15h45-18h30 :  Séance encadrée (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 04/12 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 04/12 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 11/12 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 11/12 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 18/12 8h00-12h15 : Soutenances (P) et rendus finaux&lt;br /&gt;
* 18/12 15h45-18h30 :  Soutenances (P) et rendus finaux&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie JEE.&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]], le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 09 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 06 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 18 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
Attention : les concepts que vous avez vus en cours d&#039;architecture doivent être mis en application pour l&#039;architecture de votre projet. Une attention particulière sur ce point doit être portée lors de vos présentations à l&#039;audit 2 et à la soutenance. Le travail que vous présenterez fournira de support à l&#039;évaluation du module de GL.&lt;br /&gt;
&lt;br /&gt;
===Audit 1 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- groupe 6&lt;br /&gt;
&lt;br /&gt;
- groupe 3&lt;br /&gt;
&lt;br /&gt;
- groupe 1&lt;br /&gt;
&lt;br /&gt;
- groupe 2&lt;br /&gt;
&lt;br /&gt;
- groupe 4&lt;br /&gt;
&lt;br /&gt;
- groupe 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
&lt;br /&gt;
===Audit 2 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL et gestion de projet : &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Architecture complète&lt;br /&gt;
* Procédure de tests&lt;br /&gt;
* Procédure d&#039;intégration du code &lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Entity, Ressources REST (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- groupe 6 : &lt;br /&gt;
&lt;br /&gt;
- groupe 1 :&lt;br /&gt;
&lt;br /&gt;
- groupe 5 : &lt;br /&gt;
&lt;br /&gt;
- groupe 2 : &lt;br /&gt;
&lt;br /&gt;
- groupe 4 : &lt;br /&gt;
&lt;br /&gt;
- groupe 3 : &lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : P&lt;br /&gt;
* Durée totale : 30 min&lt;br /&gt;
* Utilisez des transparents pour présenter votre projet. Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
* une présentation globale du projet&lt;br /&gt;
* le processus de conception (illustré avec vos différentes productions)&lt;br /&gt;
* la démonstration de votre application&lt;br /&gt;
* des évaluations&lt;br /&gt;
* le bilan (pédagogique ET du projet/individuel ET groupe)&lt;br /&gt;
* le temps consacré à la conception &lt;br /&gt;
* le temps consacré au développement &lt;br /&gt;
* les principales difficultés rencontrées&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* groupe 1&lt;br /&gt;
* groupe 3&lt;br /&gt;
* groupe 5&lt;br /&gt;
* groupe 4&lt;br /&gt;
* groupe 6&lt;br /&gt;
* groupe 2&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et TR pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Deux rapports doivent être rédigés pour la partie Système : un document de conception système et un document d&#039;évaluation système. Ces documents doivent être accessibles depuis le wiki (ils peuvent même être directement édités sur le wiki).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ajouter les livrables que vous jugez utiles pour présenter le travail que vous avez réalisé. Pour ces livrables : numérotez les &lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Chaque livrable est numéroté (détails du livrable ci-dessous) LX, sous une forme à respecter. Certains ont une date de rendu à respecter. Ci-dessous le résumé de ces contraintes :&lt;br /&gt;
*L2 : 09/10 minuit : Wiki&lt;br /&gt;
*L3 : 09/10 minuit : Wiki&lt;br /&gt;
*L4 : 06/11 minuit : Wiki&lt;br /&gt;
*L5 : ?&lt;br /&gt;
*L6 : 06/11 minuit : Wiki&lt;br /&gt;
*L7 : 09/10 minuit : Wiki&lt;br /&gt;
*L8 : en continu : Wiki&lt;br /&gt;
*L9 : en continu : Wiki&lt;br /&gt;
*L10 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L11 : 18/12 minuit : Lien sur Wiki&lt;br /&gt;
*L12 : 19/12 lors du passage&lt;br /&gt;
*L13 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L14 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L15 : 08/11 lors du passage &lt;br /&gt;
*L16 : 19/12 lors du passage &lt;br /&gt;
*L17 : 19/12 lors du passage : Tableaux complétés et imprimés&lt;br /&gt;
*L18 : 10/10 lors du passage&lt;br /&gt;
&lt;br /&gt;
===Contenu===&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
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&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation JEE : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;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.&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (waffle ou autre)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à créer un wiki qui regroupera l&#039;ensemble de vos documentations. Cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer une organisation github ou bitbucket. Ajouter les membres du projet eCOM à l&#039;organisation. Créer plusieurs projets pour les différents parties. Activer les watchs. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;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, annotations JAX-RS, [[Swagger]]). L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl, [[Swagger]] UI, jmeter, .... Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et consommateur) et exécuter certaines requêtes avec des garanties transactionnelles. Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]] pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, Oracle, HSQL ...) (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL, Oracle, HSQL ...) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via [[JMS]] et des EJBTimer (voir http://ecom.ow2.org/xwiki/bin/view/Main/fremail)&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS via [[JMS]] et des EJBTimer ([[ECOM/SMSProviders|fournisseurs SMS]])&lt;br /&gt;
&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec [[Apache Jackrabbit]] &lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Intégration de [[Memcached]]&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST.&lt;br /&gt;
** Utilisation de services tiers via leurs APIs (voir le catalogue de [[Mashape]])&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Gestion d&#039;un &#039;&#039;cloud&#039;&#039; privé avec [[OpenStack]] avec [[Fuel]]&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Kubernete]] ou [[Docker Swarm]]&lt;br /&gt;
** Conditionnement de l&#039;application mobile avec [[Apache Cordova]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers ([[AxiMAG]] par exemple).&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google)&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]], [[Gatling]], OW2 CLIF, BlazeMeter.com) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Telegraf]] + [[InfluxDB]] + [[Grafana]].&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Rolling update (Blue-Green Deployment) des composants (applications et intergiciels).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom (utiliser [https://hub.docker.com/_/glassfish/ Glassfish]).&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[CoreOS]] ou [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]],  [[Hawkular]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2017-2018.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [https://glassfish.java.net/docs/4.0/administration-guide.pdf Guide d&#039;administration de Glassfish 4]&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/tutorial/doc/ Tutorial JavaEE 7 ] ([https://svn.java.net/svn/javaeetutorial~svn/ sources des exemples])&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/api/ API JavaEE 7]&lt;br /&gt;
* [https://java.net/projects/javaee-spec/pages/Home  Java EE Platform Specification]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
* Documentation et Training Kit sur Windows Azure : http://www.microsoft.com/en-us/download/details.aspx?id=8396&lt;br /&gt;
* Documentation de [http://roboconf.net/en Roboconf]&lt;br /&gt;
** Exemple avec LAMP http://roboconf.net/en/user-guide/lamp-example-part-1.html&lt;br /&gt;
http://proton.inrialpes.fr/~depalma/ecom/liens/liens.html&lt;br /&gt;
* [[Bootstrap]]&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur JavaEE se periment très vite avec l&#039;évolution de la spécification&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* [http://www.apress.com/9781430246268 Antonio Goncalves, Beginning JavaEE 7, APress, 2013], ([https://github.com/agoncal/agoncal-book-javaee7 examples]  pour [[Glassfish]] 4)&lt;br /&gt;
* [https://www.packtpub.com/application-development/java-ee-7-developer-handbook Peter A. Pilgrim, Java EE 7 Developer Handbook, Packt, 2013, ISBN 139781849687942 ]&lt;br /&gt;
* [http://www.packtpub.com/java-ee6-securing-tuning-extending-enterprise-applications-cookbook/book Mick Knutson, Java EE6 Cookbook for securing, tuning, and extending enterprise applications, Packt Publishing, June 2012]&lt;br /&gt;
* Holly Cummins and Timothy Ward, Enterprise OSGi in Action, March, 2013, 400 pages, ISBN: 9781617290138, http://www.manning.com/cummins/ ([http://www.manning.com/cummins/EOSGI_sample_ch02.pdf chapitre 2], [http://www.manning.com/cummins/EOSGI_sample_ch10.pdf chapitre 10])&lt;br /&gt;
* [http://www.manning.com/panda2/ Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan, EJB 3 in Action, Second Edition, March 2014, ISBN: 9781935182993], ([http://www.manning.com/panda2/EJB3iA_2E_SourceCode.zip source code of examples])&lt;br /&gt;
* [http://shop.oreilly.com/product/9780596158033.do  Andrew Lee Rubinger, Bill Burke, Enterprise JavaBeans 3.1, 6th Edition, O&#039;Reilly Media, Final Release Date: September 2010, Pages]&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[AngularJS]]====&lt;br /&gt;
* Brad Green, Shyam Seshadri, AngularJS, Pub OReilly http://shop.oreilly.com/product/0636920028055.do ([https://github.com/shyamseshadri/angularjs-book source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42124</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42124"/>
		<updated>2018-09-03T13:43:58Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Soutenance de fin de projet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* VZ : Vincent Zurczak (vzurczak@linagora.com)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-RICM 2018-2019===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 18/09 à 8h.&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2017-2018]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et TR).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 18/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2017.pdf|transparents]]), CM [[Media:RestfulServices.pdf|REST]], [[MicroServices]], [[Spring]], [[JHipster]] (DD) (P)&lt;br /&gt;
* 18/09 15h45-18h30 : (DD) Installation [[JHipster]] et [[Docker]]. Génération de l&#039;application MVP de eCOM, lancement du profile dev, lancement du profil prod (avec Docker), analyse de qualité du code (généré) avec le container SonarQube et déploiement sur Heroku de 2 applications (stage, production).&lt;br /&gt;
&lt;br /&gt;
* 25/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P)&lt;br /&gt;
* 25/09 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 02/10 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 02/10 15h45-18h30 :  Test utilisateur (SC) (P)&lt;br /&gt;
&lt;br /&gt;
* 09/10 8h00-12h15 : Audit 1 (P) et Séance en autonomie (P)&lt;br /&gt;
* 09/10 15h45-18h30 :  Tests de robustesse (charges) (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 16/10 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 16/10 15h45-18h30 :  Séance encadrée (SC) (P)&lt;br /&gt;
&lt;br /&gt;
* 23/10 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 23/10 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 06/11 8h00-12h15 : Audit 2 (P) et Séance en autonomie (P)&lt;br /&gt;
* 06/11 15h45-18h30 :  Séance en autonomie (P) &lt;br /&gt;
&lt;br /&gt;
* 20/11 8h00-12h15 : Séance en autonomie (P) + Séance encadrée (SC) (P)&lt;br /&gt;
* 20/11 15h45-18h30 :  Séance encadrée (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 27/11 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 27/11 15h45-18h30 :  Séance encadrée (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 04/12 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 04/12 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 11/12 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 11/12 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 18/12 8h00-12h15 : Soutenances (P) et rendus finaux&lt;br /&gt;
* 18/12 15h45-18h30 :  Soutenances (P) et rendus finaux&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie JEE.&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]], le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 09 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 06 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 18 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
Attention : les concepts que vous avez vus en cours d&#039;architecture doivent être mis en application pour l&#039;architecture de votre projet. Une attention particulière sur ce point doit être portée lors de vos présentations à l&#039;audit 2 et à la soutenance. Le travail que vous présenterez fournira de support à l&#039;évaluation du module de GL.&lt;br /&gt;
&lt;br /&gt;
===Audit 1 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- groupe 6&lt;br /&gt;
&lt;br /&gt;
- groupe 3&lt;br /&gt;
&lt;br /&gt;
- groupe 1&lt;br /&gt;
&lt;br /&gt;
- groupe 2&lt;br /&gt;
&lt;br /&gt;
- groupe 4&lt;br /&gt;
&lt;br /&gt;
- groupe 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
&lt;br /&gt;
===Audit 2 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL : point sur &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Architecture complète&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Entity, Ressources REST (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- groupe 6 : &lt;br /&gt;
&lt;br /&gt;
- groupe 1 :&lt;br /&gt;
&lt;br /&gt;
- groupe 5 : &lt;br /&gt;
&lt;br /&gt;
- groupe 2 : &lt;br /&gt;
&lt;br /&gt;
- groupe 4 : &lt;br /&gt;
&lt;br /&gt;
- groupe 3 : &lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : P&lt;br /&gt;
* Durée totale : 30 min&lt;br /&gt;
* Utilisez des transparents pour présenter votre projet. Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
* une présentation globale du projet&lt;br /&gt;
* le processus de conception (illustré avec vos différentes productions)&lt;br /&gt;
* la démonstration de votre application&lt;br /&gt;
* des évaluations&lt;br /&gt;
* le bilan (pédagogique ET du projet/individuel ET groupe)&lt;br /&gt;
* le temps consacré à la conception &lt;br /&gt;
* le temps consacré au développement &lt;br /&gt;
* les principales difficultés rencontrées&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* groupe 1&lt;br /&gt;
* groupe 3&lt;br /&gt;
* groupe 5&lt;br /&gt;
* groupe 4&lt;br /&gt;
* groupe 6&lt;br /&gt;
* groupe 2&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et TR pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Deux rapports doivent être rédigés pour la partie Système : un document de conception système et un document d&#039;évaluation système. Ces documents doivent être accessibles depuis le wiki (ils peuvent même être directement édités sur le wiki).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ajouter les livrables que vous jugez utiles pour présenter le travail que vous avez réalisé. Pour ces livrables : numérotez les &lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Chaque livrable est numéroté (détails du livrable ci-dessous) LX, sous une forme à respecter. Certains ont une date de rendu à respecter. Ci-dessous le résumé de ces contraintes :&lt;br /&gt;
*L2 : 09/10 minuit : Wiki&lt;br /&gt;
*L3 : 09/10 minuit : Wiki&lt;br /&gt;
*L4 : 06/11 minuit : Wiki&lt;br /&gt;
*L5 : ?&lt;br /&gt;
*L6 : 06/11 minuit : Wiki&lt;br /&gt;
*L7 : 09/10 minuit : Wiki&lt;br /&gt;
*L8 : en continu : Wiki&lt;br /&gt;
*L9 : en continu : Wiki&lt;br /&gt;
*L10 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L11 : 18/12 minuit : Lien sur Wiki&lt;br /&gt;
*L12 : 19/12 lors du passage&lt;br /&gt;
*L13 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L14 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L15 : 08/11 lors du passage &lt;br /&gt;
*L16 : 19/12 lors du passage &lt;br /&gt;
*L17 : 19/12 lors du passage : Tableaux complétés et imprimés&lt;br /&gt;
*L18 : 10/10 lors du passage&lt;br /&gt;
&lt;br /&gt;
===Contenu===&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
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&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation JEE : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;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.&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (waffle ou autre)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à créer un wiki qui regroupera l&#039;ensemble de vos documentations. Cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer une organisation github ou bitbucket. Ajouter les membres du projet eCOM à l&#039;organisation. Créer plusieurs projets pour les différents parties. Activer les watchs. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;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, annotations JAX-RS, [[Swagger]]). L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl, [[Swagger]] UI, jmeter, .... Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et consommateur) et exécuter certaines requêtes avec des garanties transactionnelles. Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]] pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, Oracle, HSQL ...) (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL, Oracle, HSQL ...) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via [[JMS]] et des EJBTimer (voir http://ecom.ow2.org/xwiki/bin/view/Main/fremail)&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS via [[JMS]] et des EJBTimer ([[ECOM/SMSProviders|fournisseurs SMS]])&lt;br /&gt;
&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec [[Apache Jackrabbit]] &lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Intégration de [[Memcached]]&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST.&lt;br /&gt;
** Utilisation de services tiers via leurs APIs (voir le catalogue de [[Mashape]])&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Gestion d&#039;un &#039;&#039;cloud&#039;&#039; privé avec [[OpenStack]] avec [[Fuel]]&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Kubernete]] ou [[Docker Swarm]]&lt;br /&gt;
** Conditionnement de l&#039;application mobile avec [[Apache Cordova]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers ([[AxiMAG]] par exemple).&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google)&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]], [[Gatling]], OW2 CLIF, BlazeMeter.com) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Telegraf]] + [[InfluxDB]] + [[Grafana]].&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Rolling update (Blue-Green Deployment) des composants (applications et intergiciels).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom (utiliser [https://hub.docker.com/_/glassfish/ Glassfish]).&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[CoreOS]] ou [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]],  [[Hawkular]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2017-2018.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [https://glassfish.java.net/docs/4.0/administration-guide.pdf Guide d&#039;administration de Glassfish 4]&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/tutorial/doc/ Tutorial JavaEE 7 ] ([https://svn.java.net/svn/javaeetutorial~svn/ sources des exemples])&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/api/ API JavaEE 7]&lt;br /&gt;
* [https://java.net/projects/javaee-spec/pages/Home  Java EE Platform Specification]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
* Documentation et Training Kit sur Windows Azure : http://www.microsoft.com/en-us/download/details.aspx?id=8396&lt;br /&gt;
* Documentation de [http://roboconf.net/en Roboconf]&lt;br /&gt;
** Exemple avec LAMP http://roboconf.net/en/user-guide/lamp-example-part-1.html&lt;br /&gt;
http://proton.inrialpes.fr/~depalma/ecom/liens/liens.html&lt;br /&gt;
* [[Bootstrap]]&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur JavaEE se periment très vite avec l&#039;évolution de la spécification&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* [http://www.apress.com/9781430246268 Antonio Goncalves, Beginning JavaEE 7, APress, 2013], ([https://github.com/agoncal/agoncal-book-javaee7 examples]  pour [[Glassfish]] 4)&lt;br /&gt;
* [https://www.packtpub.com/application-development/java-ee-7-developer-handbook Peter A. Pilgrim, Java EE 7 Developer Handbook, Packt, 2013, ISBN 139781849687942 ]&lt;br /&gt;
* [http://www.packtpub.com/java-ee6-securing-tuning-extending-enterprise-applications-cookbook/book Mick Knutson, Java EE6 Cookbook for securing, tuning, and extending enterprise applications, Packt Publishing, June 2012]&lt;br /&gt;
* Holly Cummins and Timothy Ward, Enterprise OSGi in Action, March, 2013, 400 pages, ISBN: 9781617290138, http://www.manning.com/cummins/ ([http://www.manning.com/cummins/EOSGI_sample_ch02.pdf chapitre 2], [http://www.manning.com/cummins/EOSGI_sample_ch10.pdf chapitre 10])&lt;br /&gt;
* [http://www.manning.com/panda2/ Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan, EJB 3 in Action, Second Edition, March 2014, ISBN: 9781935182993], ([http://www.manning.com/panda2/EJB3iA_2E_SourceCode.zip source code of examples])&lt;br /&gt;
* [http://shop.oreilly.com/product/9780596158033.do  Andrew Lee Rubinger, Bill Burke, Enterprise JavaBeans 3.1, 6th Edition, O&#039;Reilly Media, Final Release Date: September 2010, Pages]&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[AngularJS]]====&lt;br /&gt;
* Brad Green, Shyam Seshadri, AngularJS, Pub OReilly http://shop.oreilly.com/product/0636920028055.do ([https://github.com/shyamseshadri/angularjs-book source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42123</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42123"/>
		<updated>2018-09-03T13:42:04Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Audit 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* VZ : Vincent Zurczak (vzurczak@linagora.com)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-RICM 2018-2019===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 18/09 à 8h.&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2017-2018]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et TR).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 18/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2017.pdf|transparents]]), CM [[Media:RestfulServices.pdf|REST]], [[MicroServices]], [[Spring]], [[JHipster]] (DD) (P)&lt;br /&gt;
* 18/09 15h45-18h30 : (DD) Installation [[JHipster]] et [[Docker]]. Génération de l&#039;application MVP de eCOM, lancement du profile dev, lancement du profil prod (avec Docker), analyse de qualité du code (généré) avec le container SonarQube et déploiement sur Heroku de 2 applications (stage, production).&lt;br /&gt;
&lt;br /&gt;
* 25/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P)&lt;br /&gt;
* 25/09 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 02/10 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 02/10 15h45-18h30 :  Test utilisateur (SC) (P)&lt;br /&gt;
&lt;br /&gt;
* 09/10 8h00-12h15 : Audit 1 (P) et Séance en autonomie (P)&lt;br /&gt;
* 09/10 15h45-18h30 :  Tests de robustesse (charges) (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 16/10 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 16/10 15h45-18h30 :  Séance encadrée (SC) (P)&lt;br /&gt;
&lt;br /&gt;
* 23/10 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 23/10 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 06/11 8h00-12h15 : Audit 2 (P) et Séance en autonomie (P)&lt;br /&gt;
* 06/11 15h45-18h30 :  Séance en autonomie (P) &lt;br /&gt;
&lt;br /&gt;
* 20/11 8h00-12h15 : Séance en autonomie (P) + Séance encadrée (SC) (P)&lt;br /&gt;
* 20/11 15h45-18h30 :  Séance encadrée (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 27/11 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 27/11 15h45-18h30 :  Séance encadrée (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 04/12 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 04/12 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 11/12 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 11/12 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 18/12 8h00-12h15 : Soutenances (P) et rendus finaux&lt;br /&gt;
* 18/12 15h45-18h30 :  Soutenances (P) et rendus finaux&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie JEE.&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]], le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 09 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 06 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 18 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
Attention : les concepts que vous avez vus en cours d&#039;architecture doivent être mis en application pour l&#039;architecture de votre projet. Une attention particulière sur ce point doit être portée lors de vos présentations à l&#039;audit 2 et à la soutenance. Le travail que vous présenterez fournira de support à l&#039;évaluation du module de GL.&lt;br /&gt;
&lt;br /&gt;
===Audit 1 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- groupe 6&lt;br /&gt;
&lt;br /&gt;
- groupe 3&lt;br /&gt;
&lt;br /&gt;
- groupe 1&lt;br /&gt;
&lt;br /&gt;
- groupe 2&lt;br /&gt;
&lt;br /&gt;
- groupe 4&lt;br /&gt;
&lt;br /&gt;
- groupe 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
&lt;br /&gt;
===Audit 2 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL : point sur &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Architecture complète&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Entity, Ressources REST (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- groupe 6 : &lt;br /&gt;
&lt;br /&gt;
- groupe 1 :&lt;br /&gt;
&lt;br /&gt;
- groupe 5 : &lt;br /&gt;
&lt;br /&gt;
- groupe 2 : &lt;br /&gt;
&lt;br /&gt;
- groupe 4 : &lt;br /&gt;
&lt;br /&gt;
- groupe 3 : &lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : F114&lt;br /&gt;
* Durée totale : 30 min&lt;br /&gt;
* Utilisez des transparents pour présenter votre projet. Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
* une présentation globale du projet&lt;br /&gt;
* le processus de conception (illustré)&lt;br /&gt;
* la démonstration de votre application&lt;br /&gt;
* des évaluations&lt;br /&gt;
* le bilan (pédagogique ET du projet/individuel ET groupe)&lt;br /&gt;
* le temps consacré à la conception &lt;br /&gt;
* le temps consacré au développement &lt;br /&gt;
* les principales difficultés rencontrées&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* 8h : groupe 1&lt;br /&gt;
* 8h35 : groupe 3&lt;br /&gt;
* 9h10 : groupe 5&lt;br /&gt;
* 15h45 : groupe 4&lt;br /&gt;
* 16h20 : groupe 6&lt;br /&gt;
* 16h55 : groupe 2&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et TR pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Deux rapports doivent être rédigés pour la partie Système : un document de conception système et un document d&#039;évaluation système. Ces documents doivent être accessibles depuis le wiki (ils peuvent même être directement édités sur le wiki).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ajouter les livrables que vous jugez utiles pour présenter le travail que vous avez réalisé. Pour ces livrables : numérotez les &lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Chaque livrable est numéroté (détails du livrable ci-dessous) LX, sous une forme à respecter. Certains ont une date de rendu à respecter. Ci-dessous le résumé de ces contraintes :&lt;br /&gt;
*L2 : 09/10 minuit : Wiki&lt;br /&gt;
*L3 : 09/10 minuit : Wiki&lt;br /&gt;
*L4 : 06/11 minuit : Wiki&lt;br /&gt;
*L5 : ?&lt;br /&gt;
*L6 : 06/11 minuit : Wiki&lt;br /&gt;
*L7 : 09/10 minuit : Wiki&lt;br /&gt;
*L8 : en continu : Wiki&lt;br /&gt;
*L9 : en continu : Wiki&lt;br /&gt;
*L10 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L11 : 18/12 minuit : Lien sur Wiki&lt;br /&gt;
*L12 : 19/12 lors du passage&lt;br /&gt;
*L13 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L14 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L15 : 08/11 lors du passage &lt;br /&gt;
*L16 : 19/12 lors du passage &lt;br /&gt;
*L17 : 19/12 lors du passage : Tableaux complétés et imprimés&lt;br /&gt;
*L18 : 10/10 lors du passage&lt;br /&gt;
&lt;br /&gt;
===Contenu===&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
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&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation JEE : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;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.&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (waffle ou autre)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à créer un wiki qui regroupera l&#039;ensemble de vos documentations. Cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer une organisation github ou bitbucket. Ajouter les membres du projet eCOM à l&#039;organisation. Créer plusieurs projets pour les différents parties. Activer les watchs. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;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, annotations JAX-RS, [[Swagger]]). L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl, [[Swagger]] UI, jmeter, .... Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et consommateur) et exécuter certaines requêtes avec des garanties transactionnelles. Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]] pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, Oracle, HSQL ...) (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL, Oracle, HSQL ...) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via [[JMS]] et des EJBTimer (voir http://ecom.ow2.org/xwiki/bin/view/Main/fremail)&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS via [[JMS]] et des EJBTimer ([[ECOM/SMSProviders|fournisseurs SMS]])&lt;br /&gt;
&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec [[Apache Jackrabbit]] &lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Intégration de [[Memcached]]&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST.&lt;br /&gt;
** Utilisation de services tiers via leurs APIs (voir le catalogue de [[Mashape]])&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Gestion d&#039;un &#039;&#039;cloud&#039;&#039; privé avec [[OpenStack]] avec [[Fuel]]&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Kubernete]] ou [[Docker Swarm]]&lt;br /&gt;
** Conditionnement de l&#039;application mobile avec [[Apache Cordova]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers ([[AxiMAG]] par exemple).&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google)&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]], [[Gatling]], OW2 CLIF, BlazeMeter.com) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Telegraf]] + [[InfluxDB]] + [[Grafana]].&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Rolling update (Blue-Green Deployment) des composants (applications et intergiciels).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom (utiliser [https://hub.docker.com/_/glassfish/ Glassfish]).&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[CoreOS]] ou [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]],  [[Hawkular]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2017-2018.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [https://glassfish.java.net/docs/4.0/administration-guide.pdf Guide d&#039;administration de Glassfish 4]&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/tutorial/doc/ Tutorial JavaEE 7 ] ([https://svn.java.net/svn/javaeetutorial~svn/ sources des exemples])&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/api/ API JavaEE 7]&lt;br /&gt;
* [https://java.net/projects/javaee-spec/pages/Home  Java EE Platform Specification]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
* Documentation et Training Kit sur Windows Azure : http://www.microsoft.com/en-us/download/details.aspx?id=8396&lt;br /&gt;
* Documentation de [http://roboconf.net/en Roboconf]&lt;br /&gt;
** Exemple avec LAMP http://roboconf.net/en/user-guide/lamp-example-part-1.html&lt;br /&gt;
http://proton.inrialpes.fr/~depalma/ecom/liens/liens.html&lt;br /&gt;
* [[Bootstrap]]&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur JavaEE se periment très vite avec l&#039;évolution de la spécification&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* [http://www.apress.com/9781430246268 Antonio Goncalves, Beginning JavaEE 7, APress, 2013], ([https://github.com/agoncal/agoncal-book-javaee7 examples]  pour [[Glassfish]] 4)&lt;br /&gt;
* [https://www.packtpub.com/application-development/java-ee-7-developer-handbook Peter A. Pilgrim, Java EE 7 Developer Handbook, Packt, 2013, ISBN 139781849687942 ]&lt;br /&gt;
* [http://www.packtpub.com/java-ee6-securing-tuning-extending-enterprise-applications-cookbook/book Mick Knutson, Java EE6 Cookbook for securing, tuning, and extending enterprise applications, Packt Publishing, June 2012]&lt;br /&gt;
* Holly Cummins and Timothy Ward, Enterprise OSGi in Action, March, 2013, 400 pages, ISBN: 9781617290138, http://www.manning.com/cummins/ ([http://www.manning.com/cummins/EOSGI_sample_ch02.pdf chapitre 2], [http://www.manning.com/cummins/EOSGI_sample_ch10.pdf chapitre 10])&lt;br /&gt;
* [http://www.manning.com/panda2/ Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan, EJB 3 in Action, Second Edition, March 2014, ISBN: 9781935182993], ([http://www.manning.com/panda2/EJB3iA_2E_SourceCode.zip source code of examples])&lt;br /&gt;
* [http://shop.oreilly.com/product/9780596158033.do  Andrew Lee Rubinger, Bill Burke, Enterprise JavaBeans 3.1, 6th Edition, O&#039;Reilly Media, Final Release Date: September 2010, Pages]&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[AngularJS]]====&lt;br /&gt;
* Brad Green, Shyam Seshadri, AngularJS, Pub OReilly http://shop.oreilly.com/product/0636920028055.do ([https://github.com/shyamseshadri/angularjs-book source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42122</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42122"/>
		<updated>2018-09-03T13:09:46Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Soutenance 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* VZ : Vincent Zurczak (vzurczak@linagora.com)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-RICM 2018-2019===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 18/09 à 8h.&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2017-2018]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et TR).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 18/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2017.pdf|transparents]]), CM [[Media:RestfulServices.pdf|REST]], [[MicroServices]], [[Spring]], [[JHipster]] (DD) (P)&lt;br /&gt;
* 18/09 15h45-18h30 : (DD) Installation [[JHipster]] et [[Docker]]. Génération de l&#039;application MVP de eCOM, lancement du profile dev, lancement du profil prod (avec Docker), analyse de qualité du code (généré) avec le container SonarQube et déploiement sur Heroku de 2 applications (stage, production).&lt;br /&gt;
&lt;br /&gt;
* 25/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P)&lt;br /&gt;
* 25/09 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 02/10 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 02/10 15h45-18h30 :  Test utilisateur (SC) (P)&lt;br /&gt;
&lt;br /&gt;
* 09/10 8h00-12h15 : Audit 1 (P) et Séance en autonomie (P)&lt;br /&gt;
* 09/10 15h45-18h30 :  Tests de robustesse (charges) (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 16/10 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 16/10 15h45-18h30 :  Séance encadrée (SC) (P)&lt;br /&gt;
&lt;br /&gt;
* 23/10 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 23/10 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 06/11 8h00-12h15 : Audit 2 (P) et Séance en autonomie (P)&lt;br /&gt;
* 06/11 15h45-18h30 :  Séance en autonomie (P) &lt;br /&gt;
&lt;br /&gt;
* 20/11 8h00-12h15 : Séance en autonomie (P) + Séance encadrée (SC) (P)&lt;br /&gt;
* 20/11 15h45-18h30 :  Séance encadrée (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 27/11 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 27/11 15h45-18h30 :  Séance encadrée (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 04/12 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 04/12 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 11/12 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 11/12 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 18/12 8h00-12h15 : Soutenances (P) et rendus finaux&lt;br /&gt;
* 18/12 15h45-18h30 :  Soutenances (P) et rendus finaux&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie JEE.&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]], le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 09 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 06 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 18 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
Attention : les concepts que vous avez vus en cours d&#039;architecture doivent être mis en application pour l&#039;architecture de votre projet. Une attention particulière sur ce point doit être portée lors de vos présentations à l&#039;audit 2 et à la soutenance. Le travail que vous présenterez fournira de support à l&#039;évaluation du module de GL.&lt;br /&gt;
&lt;br /&gt;
===Audit 1 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- groupe 6&lt;br /&gt;
&lt;br /&gt;
- groupe 3&lt;br /&gt;
&lt;br /&gt;
- groupe 1&lt;br /&gt;
&lt;br /&gt;
- groupe 2&lt;br /&gt;
&lt;br /&gt;
- groupe 4&lt;br /&gt;
&lt;br /&gt;
- groupe 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
&lt;br /&gt;
===Audit 2 ===&lt;br /&gt;
*Salle : F109&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL : point sur &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Architecture complète&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Entity, Ressources REST (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- groupe 6 : &lt;br /&gt;
&lt;br /&gt;
- groupe 1 :&lt;br /&gt;
&lt;br /&gt;
- groupe 5 : 9h&lt;br /&gt;
&lt;br /&gt;
- groupe 2 : 9h45&lt;br /&gt;
&lt;br /&gt;
- groupe 4 : 10h15&lt;br /&gt;
&lt;br /&gt;
- groupe 3 : 10h45&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : F114&lt;br /&gt;
* Durée totale : 30 min&lt;br /&gt;
* Utilisez des transparents pour présenter votre projet. Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
* une présentation globale du projet&lt;br /&gt;
* le processus de conception (illustré)&lt;br /&gt;
* la démonstration de votre application&lt;br /&gt;
* des évaluations&lt;br /&gt;
* le bilan (pédagogique ET du projet/individuel ET groupe)&lt;br /&gt;
* le temps consacré à la conception &lt;br /&gt;
* le temps consacré au développement &lt;br /&gt;
* les principales difficultés rencontrées&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* 8h : groupe 1&lt;br /&gt;
* 8h35 : groupe 3&lt;br /&gt;
* 9h10 : groupe 5&lt;br /&gt;
* 15h45 : groupe 4&lt;br /&gt;
* 16h20 : groupe 6&lt;br /&gt;
* 16h55 : groupe 2&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et TR pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Deux rapports doivent être rédigés pour la partie Système : un document de conception système et un document d&#039;évaluation système. Ces documents doivent être accessibles depuis le wiki (ils peuvent même être directement édités sur le wiki).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ajouter les livrables que vous jugez utiles pour présenter le travail que vous avez réalisé. Pour ces livrables : numérotez les &lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Chaque livrable est numéroté (détails du livrable ci-dessous) LX, sous une forme à respecter. Certains ont une date de rendu à respecter. Ci-dessous le résumé de ces contraintes :&lt;br /&gt;
*L2 : 09/10 minuit : Wiki&lt;br /&gt;
*L3 : 09/10 minuit : Wiki&lt;br /&gt;
*L4 : 06/11 minuit : Wiki&lt;br /&gt;
*L5 : ?&lt;br /&gt;
*L6 : 06/11 minuit : Wiki&lt;br /&gt;
*L7 : 09/10 minuit : Wiki&lt;br /&gt;
*L8 : en continu : Wiki&lt;br /&gt;
*L9 : en continu : Wiki&lt;br /&gt;
*L10 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L11 : 18/12 minuit : Lien sur Wiki&lt;br /&gt;
*L12 : 19/12 lors du passage&lt;br /&gt;
*L13 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L14 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L15 : 08/11 lors du passage &lt;br /&gt;
*L16 : 19/12 lors du passage &lt;br /&gt;
*L17 : 19/12 lors du passage : Tableaux complétés et imprimés&lt;br /&gt;
*L18 : 10/10 lors du passage&lt;br /&gt;
&lt;br /&gt;
===Contenu===&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
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&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation JEE : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;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.&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (waffle ou autre)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à créer un wiki qui regroupera l&#039;ensemble de vos documentations. Cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer une organisation github ou bitbucket. Ajouter les membres du projet eCOM à l&#039;organisation. Créer plusieurs projets pour les différents parties. Activer les watchs. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;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, annotations JAX-RS, [[Swagger]]). L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl, [[Swagger]] UI, jmeter, .... Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et consommateur) et exécuter certaines requêtes avec des garanties transactionnelles. Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]] pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, Oracle, HSQL ...) (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL, Oracle, HSQL ...) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via [[JMS]] et des EJBTimer (voir http://ecom.ow2.org/xwiki/bin/view/Main/fremail)&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS via [[JMS]] et des EJBTimer ([[ECOM/SMSProviders|fournisseurs SMS]])&lt;br /&gt;
&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec [[Apache Jackrabbit]] &lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Intégration de [[Memcached]]&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST.&lt;br /&gt;
** Utilisation de services tiers via leurs APIs (voir le catalogue de [[Mashape]])&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Gestion d&#039;un &#039;&#039;cloud&#039;&#039; privé avec [[OpenStack]] avec [[Fuel]]&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Kubernete]] ou [[Docker Swarm]]&lt;br /&gt;
** Conditionnement de l&#039;application mobile avec [[Apache Cordova]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers ([[AxiMAG]] par exemple).&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google)&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]], [[Gatling]], OW2 CLIF, BlazeMeter.com) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Telegraf]] + [[InfluxDB]] + [[Grafana]].&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Rolling update (Blue-Green Deployment) des composants (applications et intergiciels).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom (utiliser [https://hub.docker.com/_/glassfish/ Glassfish]).&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[CoreOS]] ou [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]],  [[Hawkular]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2017-2018.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [https://glassfish.java.net/docs/4.0/administration-guide.pdf Guide d&#039;administration de Glassfish 4]&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/tutorial/doc/ Tutorial JavaEE 7 ] ([https://svn.java.net/svn/javaeetutorial~svn/ sources des exemples])&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/api/ API JavaEE 7]&lt;br /&gt;
* [https://java.net/projects/javaee-spec/pages/Home  Java EE Platform Specification]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
* Documentation et Training Kit sur Windows Azure : http://www.microsoft.com/en-us/download/details.aspx?id=8396&lt;br /&gt;
* Documentation de [http://roboconf.net/en Roboconf]&lt;br /&gt;
** Exemple avec LAMP http://roboconf.net/en/user-guide/lamp-example-part-1.html&lt;br /&gt;
http://proton.inrialpes.fr/~depalma/ecom/liens/liens.html&lt;br /&gt;
* [[Bootstrap]]&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur JavaEE se periment très vite avec l&#039;évolution de la spécification&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* [http://www.apress.com/9781430246268 Antonio Goncalves, Beginning JavaEE 7, APress, 2013], ([https://github.com/agoncal/agoncal-book-javaee7 examples]  pour [[Glassfish]] 4)&lt;br /&gt;
* [https://www.packtpub.com/application-development/java-ee-7-developer-handbook Peter A. Pilgrim, Java EE 7 Developer Handbook, Packt, 2013, ISBN 139781849687942 ]&lt;br /&gt;
* [http://www.packtpub.com/java-ee6-securing-tuning-extending-enterprise-applications-cookbook/book Mick Knutson, Java EE6 Cookbook for securing, tuning, and extending enterprise applications, Packt Publishing, June 2012]&lt;br /&gt;
* Holly Cummins and Timothy Ward, Enterprise OSGi in Action, March, 2013, 400 pages, ISBN: 9781617290138, http://www.manning.com/cummins/ ([http://www.manning.com/cummins/EOSGI_sample_ch02.pdf chapitre 2], [http://www.manning.com/cummins/EOSGI_sample_ch10.pdf chapitre 10])&lt;br /&gt;
* [http://www.manning.com/panda2/ Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan, EJB 3 in Action, Second Edition, March 2014, ISBN: 9781935182993], ([http://www.manning.com/panda2/EJB3iA_2E_SourceCode.zip source code of examples])&lt;br /&gt;
* [http://shop.oreilly.com/product/9780596158033.do  Andrew Lee Rubinger, Bill Burke, Enterprise JavaBeans 3.1, 6th Edition, O&#039;Reilly Media, Final Release Date: September 2010, Pages]&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[AngularJS]]====&lt;br /&gt;
* Brad Green, Shyam Seshadri, AngularJS, Pub OReilly http://shop.oreilly.com/product/0636920028055.do ([https://github.com/shyamseshadri/angularjs-book source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42121</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42121"/>
		<updated>2018-09-03T13:08:46Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Soutenance 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* VZ : Vincent Zurczak (vzurczak@linagora.com)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-RICM 2018-2019===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 18/09 à 8h.&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2017-2018]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et TR).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 18/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2017.pdf|transparents]]), CM [[Media:RestfulServices.pdf|REST]], [[MicroServices]], [[Spring]], [[JHipster]] (DD) (P)&lt;br /&gt;
* 18/09 15h45-18h30 : (DD) Installation [[JHipster]] et [[Docker]]. Génération de l&#039;application MVP de eCOM, lancement du profile dev, lancement du profil prod (avec Docker), analyse de qualité du code (généré) avec le container SonarQube et déploiement sur Heroku de 2 applications (stage, production).&lt;br /&gt;
&lt;br /&gt;
* 25/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P)&lt;br /&gt;
* 25/09 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 02/10 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 02/10 15h45-18h30 :  Test utilisateur (SC) (P)&lt;br /&gt;
&lt;br /&gt;
* 09/10 8h00-12h15 : Audit 1 (P) et Séance en autonomie (P)&lt;br /&gt;
* 09/10 15h45-18h30 :  Tests de robustesse (charges) (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 16/10 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 16/10 15h45-18h30 :  Séance encadrée (SC) (P)&lt;br /&gt;
&lt;br /&gt;
* 23/10 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 23/10 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 06/11 8h00-12h15 : Audit 2 (P) et Séance en autonomie (P)&lt;br /&gt;
* 06/11 15h45-18h30 :  Séance en autonomie (P) &lt;br /&gt;
&lt;br /&gt;
* 20/11 8h00-12h15 : Séance en autonomie (P) + Séance encadrée (SC) (P)&lt;br /&gt;
* 20/11 15h45-18h30 :  Séance encadrée (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 27/11 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 27/11 15h45-18h30 :  Séance encadrée (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 04/12 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 04/12 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 11/12 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 11/12 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 18/12 8h00-12h15 : Soutenances (P) et rendus finaux&lt;br /&gt;
* 18/12 15h45-18h30 :  Soutenances (P) et rendus finaux&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie JEE.&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]], le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 09 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 06 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 18 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
Attention : les concepts que vous avez vus en cours d&#039;architecture doivent être mis en application pour l&#039;architecture de votre projet. Une attention particulière sur ce point doit être portée lors de vos présentations à l&#039;audit 2 et à la soutenance. Le travail que vous présenterez fournira de support à l&#039;évaluation du module de GL.&lt;br /&gt;
&lt;br /&gt;
===Audit 1 ===&lt;br /&gt;
*Salle : P&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- groupe 6&lt;br /&gt;
&lt;br /&gt;
- groupe 3&lt;br /&gt;
&lt;br /&gt;
- groupe 1&lt;br /&gt;
&lt;br /&gt;
- groupe 2&lt;br /&gt;
&lt;br /&gt;
- groupe 4&lt;br /&gt;
&lt;br /&gt;
- groupe 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
&lt;br /&gt;
===Soutenance 2 ===&lt;br /&gt;
*Salle : F109&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL : point sur &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Entity, Ressources REST (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- groupe 6 : 8h&lt;br /&gt;
&lt;br /&gt;
- groupe 1 : 8h30&lt;br /&gt;
&lt;br /&gt;
- groupe 5 : 9h&lt;br /&gt;
&lt;br /&gt;
- groupe 2 : 9h45&lt;br /&gt;
&lt;br /&gt;
- groupe 4 : 10h15&lt;br /&gt;
&lt;br /&gt;
- groupe 3 : 10h45&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : F114&lt;br /&gt;
* Durée totale : 30 min&lt;br /&gt;
* Utilisez des transparents pour présenter votre projet. Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
* une présentation globale du projet&lt;br /&gt;
* le processus de conception (illustré)&lt;br /&gt;
* la démonstration de votre application&lt;br /&gt;
* des évaluations&lt;br /&gt;
* le bilan (pédagogique ET du projet/individuel ET groupe)&lt;br /&gt;
* le temps consacré à la conception &lt;br /&gt;
* le temps consacré au développement &lt;br /&gt;
* les principales difficultés rencontrées&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* 8h : groupe 1&lt;br /&gt;
* 8h35 : groupe 3&lt;br /&gt;
* 9h10 : groupe 5&lt;br /&gt;
* 15h45 : groupe 4&lt;br /&gt;
* 16h20 : groupe 6&lt;br /&gt;
* 16h55 : groupe 2&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et TR pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Deux rapports doivent être rédigés pour la partie Système : un document de conception système et un document d&#039;évaluation système. Ces documents doivent être accessibles depuis le wiki (ils peuvent même être directement édités sur le wiki).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ajouter les livrables que vous jugez utiles pour présenter le travail que vous avez réalisé. Pour ces livrables : numérotez les &lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Chaque livrable est numéroté (détails du livrable ci-dessous) LX, sous une forme à respecter. Certains ont une date de rendu à respecter. Ci-dessous le résumé de ces contraintes :&lt;br /&gt;
*L2 : 09/10 minuit : Wiki&lt;br /&gt;
*L3 : 09/10 minuit : Wiki&lt;br /&gt;
*L4 : 06/11 minuit : Wiki&lt;br /&gt;
*L5 : ?&lt;br /&gt;
*L6 : 06/11 minuit : Wiki&lt;br /&gt;
*L7 : 09/10 minuit : Wiki&lt;br /&gt;
*L8 : en continu : Wiki&lt;br /&gt;
*L9 : en continu : Wiki&lt;br /&gt;
*L10 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L11 : 18/12 minuit : Lien sur Wiki&lt;br /&gt;
*L12 : 19/12 lors du passage&lt;br /&gt;
*L13 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L14 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L15 : 08/11 lors du passage &lt;br /&gt;
*L16 : 19/12 lors du passage &lt;br /&gt;
*L17 : 19/12 lors du passage : Tableaux complétés et imprimés&lt;br /&gt;
*L18 : 10/10 lors du passage&lt;br /&gt;
&lt;br /&gt;
===Contenu===&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
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&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation JEE : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;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.&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (waffle ou autre)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à créer un wiki qui regroupera l&#039;ensemble de vos documentations. Cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer une organisation github ou bitbucket. Ajouter les membres du projet eCOM à l&#039;organisation. Créer plusieurs projets pour les différents parties. Activer les watchs. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;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, annotations JAX-RS, [[Swagger]]). L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl, [[Swagger]] UI, jmeter, .... Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et consommateur) et exécuter certaines requêtes avec des garanties transactionnelles. Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]] pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, Oracle, HSQL ...) (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL, Oracle, HSQL ...) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via [[JMS]] et des EJBTimer (voir http://ecom.ow2.org/xwiki/bin/view/Main/fremail)&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS via [[JMS]] et des EJBTimer ([[ECOM/SMSProviders|fournisseurs SMS]])&lt;br /&gt;
&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec [[Apache Jackrabbit]] &lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Intégration de [[Memcached]]&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST.&lt;br /&gt;
** Utilisation de services tiers via leurs APIs (voir le catalogue de [[Mashape]])&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Gestion d&#039;un &#039;&#039;cloud&#039;&#039; privé avec [[OpenStack]] avec [[Fuel]]&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Kubernete]] ou [[Docker Swarm]]&lt;br /&gt;
** Conditionnement de l&#039;application mobile avec [[Apache Cordova]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers ([[AxiMAG]] par exemple).&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google)&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]], [[Gatling]], OW2 CLIF, BlazeMeter.com) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Telegraf]] + [[InfluxDB]] + [[Grafana]].&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Rolling update (Blue-Green Deployment) des composants (applications et intergiciels).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom (utiliser [https://hub.docker.com/_/glassfish/ Glassfish]).&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[CoreOS]] ou [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]],  [[Hawkular]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2017-2018.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [https://glassfish.java.net/docs/4.0/administration-guide.pdf Guide d&#039;administration de Glassfish 4]&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/tutorial/doc/ Tutorial JavaEE 7 ] ([https://svn.java.net/svn/javaeetutorial~svn/ sources des exemples])&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/api/ API JavaEE 7]&lt;br /&gt;
* [https://java.net/projects/javaee-spec/pages/Home  Java EE Platform Specification]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
* Documentation et Training Kit sur Windows Azure : http://www.microsoft.com/en-us/download/details.aspx?id=8396&lt;br /&gt;
* Documentation de [http://roboconf.net/en Roboconf]&lt;br /&gt;
** Exemple avec LAMP http://roboconf.net/en/user-guide/lamp-example-part-1.html&lt;br /&gt;
http://proton.inrialpes.fr/~depalma/ecom/liens/liens.html&lt;br /&gt;
* [[Bootstrap]]&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur JavaEE se periment très vite avec l&#039;évolution de la spécification&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* [http://www.apress.com/9781430246268 Antonio Goncalves, Beginning JavaEE 7, APress, 2013], ([https://github.com/agoncal/agoncal-book-javaee7 examples]  pour [[Glassfish]] 4)&lt;br /&gt;
* [https://www.packtpub.com/application-development/java-ee-7-developer-handbook Peter A. Pilgrim, Java EE 7 Developer Handbook, Packt, 2013, ISBN 139781849687942 ]&lt;br /&gt;
* [http://www.packtpub.com/java-ee6-securing-tuning-extending-enterprise-applications-cookbook/book Mick Knutson, Java EE6 Cookbook for securing, tuning, and extending enterprise applications, Packt Publishing, June 2012]&lt;br /&gt;
* Holly Cummins and Timothy Ward, Enterprise OSGi in Action, March, 2013, 400 pages, ISBN: 9781617290138, http://www.manning.com/cummins/ ([http://www.manning.com/cummins/EOSGI_sample_ch02.pdf chapitre 2], [http://www.manning.com/cummins/EOSGI_sample_ch10.pdf chapitre 10])&lt;br /&gt;
* [http://www.manning.com/panda2/ Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan, EJB 3 in Action, Second Edition, March 2014, ISBN: 9781935182993], ([http://www.manning.com/panda2/EJB3iA_2E_SourceCode.zip source code of examples])&lt;br /&gt;
* [http://shop.oreilly.com/product/9780596158033.do  Andrew Lee Rubinger, Bill Burke, Enterprise JavaBeans 3.1, 6th Edition, O&#039;Reilly Media, Final Release Date: September 2010, Pages]&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[AngularJS]]====&lt;br /&gt;
* Brad Green, Shyam Seshadri, AngularJS, Pub OReilly http://shop.oreilly.com/product/0636920028055.do ([https://github.com/shyamseshadri/angularjs-book source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42120</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42120"/>
		<updated>2018-09-03T13:08:10Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Soutenances */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* VZ : Vincent Zurczak (vzurczak@linagora.com)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-RICM 2018-2019===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 18/09 à 8h.&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2017-2018]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et TR).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 18/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2017.pdf|transparents]]), CM [[Media:RestfulServices.pdf|REST]], [[MicroServices]], [[Spring]], [[JHipster]] (DD) (P)&lt;br /&gt;
* 18/09 15h45-18h30 : (DD) Installation [[JHipster]] et [[Docker]]. Génération de l&#039;application MVP de eCOM, lancement du profile dev, lancement du profil prod (avec Docker), analyse de qualité du code (généré) avec le container SonarQube et déploiement sur Heroku de 2 applications (stage, production).&lt;br /&gt;
&lt;br /&gt;
* 25/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P)&lt;br /&gt;
* 25/09 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 02/10 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 02/10 15h45-18h30 :  Test utilisateur (SC) (P)&lt;br /&gt;
&lt;br /&gt;
* 09/10 8h00-12h15 : Audit 1 (P) et Séance en autonomie (P)&lt;br /&gt;
* 09/10 15h45-18h30 :  Tests de robustesse (charges) (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 16/10 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 16/10 15h45-18h30 :  Séance encadrée (SC) (P)&lt;br /&gt;
&lt;br /&gt;
* 23/10 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 23/10 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 06/11 8h00-12h15 : Audit 2 (P) et Séance en autonomie (P)&lt;br /&gt;
* 06/11 15h45-18h30 :  Séance en autonomie (P) &lt;br /&gt;
&lt;br /&gt;
* 20/11 8h00-12h15 : Séance en autonomie (P) + Séance encadrée (SC) (P)&lt;br /&gt;
* 20/11 15h45-18h30 :  Séance encadrée (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 27/11 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 27/11 15h45-18h30 :  Séance encadrée (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 04/12 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 04/12 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 11/12 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 11/12 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 18/12 8h00-12h15 : Soutenances (P) et rendus finaux&lt;br /&gt;
* 18/12 15h45-18h30 :  Soutenances (P) et rendus finaux&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie JEE.&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]], le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 09 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 06 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 18 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
Attention : les concepts que vous avez vus en cours d&#039;architecture doivent être mis en application pour l&#039;architecture de votre projet. Une attention particulière sur ce point doit être portée lors de vos présentations à l&#039;audit 2 et à la soutenance. Le travail que vous présenterez fournira de support à l&#039;évaluation du module de GL.&lt;br /&gt;
&lt;br /&gt;
===Soutenance 1 ===&lt;br /&gt;
*Salle : F316&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- groupe 6&lt;br /&gt;
&lt;br /&gt;
- groupe 3&lt;br /&gt;
&lt;br /&gt;
- groupe 1&lt;br /&gt;
&lt;br /&gt;
- groupe 2&lt;br /&gt;
&lt;br /&gt;
- groupe 4&lt;br /&gt;
&lt;br /&gt;
- groupe 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
&lt;br /&gt;
===Soutenance 2 ===&lt;br /&gt;
*Salle : F109&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL : point sur &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Entity, Ressources REST (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- groupe 6 : 8h&lt;br /&gt;
&lt;br /&gt;
- groupe 1 : 8h30&lt;br /&gt;
&lt;br /&gt;
- groupe 5 : 9h&lt;br /&gt;
&lt;br /&gt;
- groupe 2 : 9h45&lt;br /&gt;
&lt;br /&gt;
- groupe 4 : 10h15&lt;br /&gt;
&lt;br /&gt;
- groupe 3 : 10h45&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : F114&lt;br /&gt;
* Durée totale : 30 min&lt;br /&gt;
* Utilisez des transparents pour présenter votre projet. Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
* une présentation globale du projet&lt;br /&gt;
* le processus de conception (illustré)&lt;br /&gt;
* la démonstration de votre application&lt;br /&gt;
* des évaluations&lt;br /&gt;
* le bilan (pédagogique ET du projet/individuel ET groupe)&lt;br /&gt;
* le temps consacré à la conception &lt;br /&gt;
* le temps consacré au développement &lt;br /&gt;
* les principales difficultés rencontrées&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* 8h : groupe 1&lt;br /&gt;
* 8h35 : groupe 3&lt;br /&gt;
* 9h10 : groupe 5&lt;br /&gt;
* 15h45 : groupe 4&lt;br /&gt;
* 16h20 : groupe 6&lt;br /&gt;
* 16h55 : groupe 2&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et TR pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Deux rapports doivent être rédigés pour la partie Système : un document de conception système et un document d&#039;évaluation système. Ces documents doivent être accessibles depuis le wiki (ils peuvent même être directement édités sur le wiki).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ajouter les livrables que vous jugez utiles pour présenter le travail que vous avez réalisé. Pour ces livrables : numérotez les &lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Chaque livrable est numéroté (détails du livrable ci-dessous) LX, sous une forme à respecter. Certains ont une date de rendu à respecter. Ci-dessous le résumé de ces contraintes :&lt;br /&gt;
*L2 : 09/10 minuit : Wiki&lt;br /&gt;
*L3 : 09/10 minuit : Wiki&lt;br /&gt;
*L4 : 06/11 minuit : Wiki&lt;br /&gt;
*L5 : ?&lt;br /&gt;
*L6 : 06/11 minuit : Wiki&lt;br /&gt;
*L7 : 09/10 minuit : Wiki&lt;br /&gt;
*L8 : en continu : Wiki&lt;br /&gt;
*L9 : en continu : Wiki&lt;br /&gt;
*L10 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L11 : 18/12 minuit : Lien sur Wiki&lt;br /&gt;
*L12 : 19/12 lors du passage&lt;br /&gt;
*L13 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L14 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L15 : 08/11 lors du passage &lt;br /&gt;
*L16 : 19/12 lors du passage &lt;br /&gt;
*L17 : 19/12 lors du passage : Tableaux complétés et imprimés&lt;br /&gt;
*L18 : 10/10 lors du passage&lt;br /&gt;
&lt;br /&gt;
===Contenu===&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
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&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation JEE : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;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.&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (waffle ou autre)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à créer un wiki qui regroupera l&#039;ensemble de vos documentations. Cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer une organisation github ou bitbucket. Ajouter les membres du projet eCOM à l&#039;organisation. Créer plusieurs projets pour les différents parties. Activer les watchs. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;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, annotations JAX-RS, [[Swagger]]). L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl, [[Swagger]] UI, jmeter, .... Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et consommateur) et exécuter certaines requêtes avec des garanties transactionnelles. Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]] pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, Oracle, HSQL ...) (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL, Oracle, HSQL ...) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via [[JMS]] et des EJBTimer (voir http://ecom.ow2.org/xwiki/bin/view/Main/fremail)&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS via [[JMS]] et des EJBTimer ([[ECOM/SMSProviders|fournisseurs SMS]])&lt;br /&gt;
&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec [[Apache Jackrabbit]] &lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Intégration de [[Memcached]]&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST.&lt;br /&gt;
** Utilisation de services tiers via leurs APIs (voir le catalogue de [[Mashape]])&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Gestion d&#039;un &#039;&#039;cloud&#039;&#039; privé avec [[OpenStack]] avec [[Fuel]]&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Kubernete]] ou [[Docker Swarm]]&lt;br /&gt;
** Conditionnement de l&#039;application mobile avec [[Apache Cordova]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers ([[AxiMAG]] par exemple).&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google)&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]], [[Gatling]], OW2 CLIF, BlazeMeter.com) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Telegraf]] + [[InfluxDB]] + [[Grafana]].&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Rolling update (Blue-Green Deployment) des composants (applications et intergiciels).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom (utiliser [https://hub.docker.com/_/glassfish/ Glassfish]).&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[CoreOS]] ou [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]],  [[Hawkular]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2017-2018.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [https://glassfish.java.net/docs/4.0/administration-guide.pdf Guide d&#039;administration de Glassfish 4]&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/tutorial/doc/ Tutorial JavaEE 7 ] ([https://svn.java.net/svn/javaeetutorial~svn/ sources des exemples])&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/api/ API JavaEE 7]&lt;br /&gt;
* [https://java.net/projects/javaee-spec/pages/Home  Java EE Platform Specification]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
* Documentation et Training Kit sur Windows Azure : http://www.microsoft.com/en-us/download/details.aspx?id=8396&lt;br /&gt;
* Documentation de [http://roboconf.net/en Roboconf]&lt;br /&gt;
** Exemple avec LAMP http://roboconf.net/en/user-guide/lamp-example-part-1.html&lt;br /&gt;
http://proton.inrialpes.fr/~depalma/ecom/liens/liens.html&lt;br /&gt;
* [[Bootstrap]]&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur JavaEE se periment très vite avec l&#039;évolution de la spécification&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* [http://www.apress.com/9781430246268 Antonio Goncalves, Beginning JavaEE 7, APress, 2013], ([https://github.com/agoncal/agoncal-book-javaee7 examples]  pour [[Glassfish]] 4)&lt;br /&gt;
* [https://www.packtpub.com/application-development/java-ee-7-developer-handbook Peter A. Pilgrim, Java EE 7 Developer Handbook, Packt, 2013, ISBN 139781849687942 ]&lt;br /&gt;
* [http://www.packtpub.com/java-ee6-securing-tuning-extending-enterprise-applications-cookbook/book Mick Knutson, Java EE6 Cookbook for securing, tuning, and extending enterprise applications, Packt Publishing, June 2012]&lt;br /&gt;
* Holly Cummins and Timothy Ward, Enterprise OSGi in Action, March, 2013, 400 pages, ISBN: 9781617290138, http://www.manning.com/cummins/ ([http://www.manning.com/cummins/EOSGI_sample_ch02.pdf chapitre 2], [http://www.manning.com/cummins/EOSGI_sample_ch10.pdf chapitre 10])&lt;br /&gt;
* [http://www.manning.com/panda2/ Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan, EJB 3 in Action, Second Edition, March 2014, ISBN: 9781935182993], ([http://www.manning.com/panda2/EJB3iA_2E_SourceCode.zip source code of examples])&lt;br /&gt;
* [http://shop.oreilly.com/product/9780596158033.do  Andrew Lee Rubinger, Bill Burke, Enterprise JavaBeans 3.1, 6th Edition, O&#039;Reilly Media, Final Release Date: September 2010, Pages]&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[AngularJS]]====&lt;br /&gt;
* Brad Green, Shyam Seshadri, AngularJS, Pub OReilly http://shop.oreilly.com/product/0636920028055.do ([https://github.com/shyamseshadri/angularjs-book source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42119</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42119"/>
		<updated>2018-09-03T13:00:45Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Planning des séances */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* VZ : Vincent Zurczak (vzurczak@linagora.com)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-RICM 2018-2019===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 18/09 à 8h.&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2017-2018]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et TR).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 18/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2017.pdf|transparents]]), CM [[Media:RestfulServices.pdf|REST]], [[MicroServices]], [[Spring]], [[JHipster]] (DD) (P)&lt;br /&gt;
* 18/09 15h45-18h30 : (DD) Installation [[JHipster]] et [[Docker]]. Génération de l&#039;application MVP de eCOM, lancement du profile dev, lancement du profil prod (avec Docker), analyse de qualité du code (généré) avec le container SonarQube et déploiement sur Heroku de 2 applications (stage, production).&lt;br /&gt;
&lt;br /&gt;
* 25/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P)&lt;br /&gt;
* 25/09 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 02/10 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 02/10 15h45-18h30 :  Test utilisateur (SC) (P)&lt;br /&gt;
&lt;br /&gt;
* 09/10 8h00-12h15 : Audit 1 (P) et Séance en autonomie (P)&lt;br /&gt;
* 09/10 15h45-18h30 :  Tests de robustesse (charges) (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 16/10 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 16/10 15h45-18h30 :  Séance encadrée (SC) (P)&lt;br /&gt;
&lt;br /&gt;
* 23/10 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 23/10 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 06/11 8h00-12h15 : Audit 2 (P) et Séance en autonomie (P)&lt;br /&gt;
* 06/11 15h45-18h30 :  Séance en autonomie (P) &lt;br /&gt;
&lt;br /&gt;
* 20/11 8h00-12h15 : Séance en autonomie (P) + Séance encadrée (SC) (P)&lt;br /&gt;
* 20/11 15h45-18h30 :  Séance encadrée (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 27/11 8h00-12h15 : Séance en autonomie (P)&lt;br /&gt;
* 27/11 15h45-18h30 :  Séance encadrée (VZ) (P)&lt;br /&gt;
&lt;br /&gt;
* 04/12 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 04/12 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 11/12 8h00-12h15 : Séance encadrée (VZ) (P)&lt;br /&gt;
* 11/12 15h45-18h30 :  Séance en autonomie (P)&lt;br /&gt;
&lt;br /&gt;
* 18/12 8h00-12h15 : Soutenances (P) et rendus finaux&lt;br /&gt;
* 18/12 15h45-18h30 :  Soutenances (P) et rendus finaux&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie JEE.&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]], le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 10 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 07 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 19 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
&lt;br /&gt;
===Soutenance 1 ===&lt;br /&gt;
*Salle : F316&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- groupe 6&lt;br /&gt;
&lt;br /&gt;
- groupe 3&lt;br /&gt;
&lt;br /&gt;
- groupe 1&lt;br /&gt;
&lt;br /&gt;
- groupe 2&lt;br /&gt;
&lt;br /&gt;
- groupe 4&lt;br /&gt;
&lt;br /&gt;
- groupe 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
&lt;br /&gt;
===Soutenance 2 ===&lt;br /&gt;
*Salle : F109&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL : point sur &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Entity, Ressources REST (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- groupe 6 : 8h&lt;br /&gt;
&lt;br /&gt;
- groupe 1 : 8h30&lt;br /&gt;
&lt;br /&gt;
- groupe 5 : 9h&lt;br /&gt;
&lt;br /&gt;
- groupe 2 : 9h45&lt;br /&gt;
&lt;br /&gt;
- groupe 4 : 10h15&lt;br /&gt;
&lt;br /&gt;
- groupe 3 : 10h45&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : F114&lt;br /&gt;
* Durée totale : 30 min&lt;br /&gt;
* Utilisez des transparents pour présenter votre projet. Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
* une présentation globale du projet&lt;br /&gt;
* le processus de conception (illustré)&lt;br /&gt;
* la démonstration de votre application&lt;br /&gt;
* des évaluations&lt;br /&gt;
* le bilan (pédagogique ET du projet/individuel ET groupe)&lt;br /&gt;
* le temps consacré à la conception &lt;br /&gt;
* le temps consacré au développement &lt;br /&gt;
* les principales difficultés rencontrées&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* 8h : groupe 1&lt;br /&gt;
* 8h35 : groupe 3&lt;br /&gt;
* 9h10 : groupe 5&lt;br /&gt;
* 15h45 : groupe 4&lt;br /&gt;
* 16h20 : groupe 6&lt;br /&gt;
* 16h55 : groupe 2&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et TR pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Deux rapports doivent être rédigés pour la partie Système : un document de conception système et un document d&#039;évaluation système. Ces documents doivent être accessibles depuis le wiki (ils peuvent même être directement édités sur le wiki).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ajouter les livrables que vous jugez utiles pour présenter le travail que vous avez réalisé. Pour ces livrables : numérotez les &lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Chaque livrable est numéroté (détails du livrable ci-dessous) LX, sous une forme à respecter. Certains ont une date de rendu à respecter. Ci-dessous le résumé de ces contraintes :&lt;br /&gt;
*L2 : 09/10 minuit : Wiki&lt;br /&gt;
*L3 : 09/10 minuit : Wiki&lt;br /&gt;
*L4 : 06/11 minuit : Wiki&lt;br /&gt;
*L5 : ?&lt;br /&gt;
*L6 : 06/11 minuit : Wiki&lt;br /&gt;
*L7 : 09/10 minuit : Wiki&lt;br /&gt;
*L8 : en continu : Wiki&lt;br /&gt;
*L9 : en continu : Wiki&lt;br /&gt;
*L10 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L11 : 18/12 minuit : Lien sur Wiki&lt;br /&gt;
*L12 : 19/12 lors du passage&lt;br /&gt;
*L13 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L14 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L15 : 08/11 lors du passage &lt;br /&gt;
*L16 : 19/12 lors du passage &lt;br /&gt;
*L17 : 19/12 lors du passage : Tableaux complétés et imprimés&lt;br /&gt;
*L18 : 10/10 lors du passage&lt;br /&gt;
&lt;br /&gt;
===Contenu===&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
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&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation JEE : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;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.&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (waffle ou autre)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à créer un wiki qui regroupera l&#039;ensemble de vos documentations. Cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer une organisation github ou bitbucket. Ajouter les membres du projet eCOM à l&#039;organisation. Créer plusieurs projets pour les différents parties. Activer les watchs. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;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, annotations JAX-RS, [[Swagger]]). L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl, [[Swagger]] UI, jmeter, .... Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et consommateur) et exécuter certaines requêtes avec des garanties transactionnelles. Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]] pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, Oracle, HSQL ...) (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL, Oracle, HSQL ...) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via [[JMS]] et des EJBTimer (voir http://ecom.ow2.org/xwiki/bin/view/Main/fremail)&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS via [[JMS]] et des EJBTimer ([[ECOM/SMSProviders|fournisseurs SMS]])&lt;br /&gt;
&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec [[Apache Jackrabbit]] &lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Intégration de [[Memcached]]&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST.&lt;br /&gt;
** Utilisation de services tiers via leurs APIs (voir le catalogue de [[Mashape]])&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Gestion d&#039;un &#039;&#039;cloud&#039;&#039; privé avec [[OpenStack]] avec [[Fuel]]&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Kubernete]] ou [[Docker Swarm]]&lt;br /&gt;
** Conditionnement de l&#039;application mobile avec [[Apache Cordova]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers ([[AxiMAG]] par exemple).&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google)&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]], [[Gatling]], OW2 CLIF, BlazeMeter.com) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Telegraf]] + [[InfluxDB]] + [[Grafana]].&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Rolling update (Blue-Green Deployment) des composants (applications et intergiciels).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom (utiliser [https://hub.docker.com/_/glassfish/ Glassfish]).&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[CoreOS]] ou [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]],  [[Hawkular]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2017-2018.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [https://glassfish.java.net/docs/4.0/administration-guide.pdf Guide d&#039;administration de Glassfish 4]&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/tutorial/doc/ Tutorial JavaEE 7 ] ([https://svn.java.net/svn/javaeetutorial~svn/ sources des exemples])&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/api/ API JavaEE 7]&lt;br /&gt;
* [https://java.net/projects/javaee-spec/pages/Home  Java EE Platform Specification]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
* Documentation et Training Kit sur Windows Azure : http://www.microsoft.com/en-us/download/details.aspx?id=8396&lt;br /&gt;
* Documentation de [http://roboconf.net/en Roboconf]&lt;br /&gt;
** Exemple avec LAMP http://roboconf.net/en/user-guide/lamp-example-part-1.html&lt;br /&gt;
http://proton.inrialpes.fr/~depalma/ecom/liens/liens.html&lt;br /&gt;
* [[Bootstrap]]&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur JavaEE se periment très vite avec l&#039;évolution de la spécification&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* [http://www.apress.com/9781430246268 Antonio Goncalves, Beginning JavaEE 7, APress, 2013], ([https://github.com/agoncal/agoncal-book-javaee7 examples]  pour [[Glassfish]] 4)&lt;br /&gt;
* [https://www.packtpub.com/application-development/java-ee-7-developer-handbook Peter A. Pilgrim, Java EE 7 Developer Handbook, Packt, 2013, ISBN 139781849687942 ]&lt;br /&gt;
* [http://www.packtpub.com/java-ee6-securing-tuning-extending-enterprise-applications-cookbook/book Mick Knutson, Java EE6 Cookbook for securing, tuning, and extending enterprise applications, Packt Publishing, June 2012]&lt;br /&gt;
* Holly Cummins and Timothy Ward, Enterprise OSGi in Action, March, 2013, 400 pages, ISBN: 9781617290138, http://www.manning.com/cummins/ ([http://www.manning.com/cummins/EOSGI_sample_ch02.pdf chapitre 2], [http://www.manning.com/cummins/EOSGI_sample_ch10.pdf chapitre 10])&lt;br /&gt;
* [http://www.manning.com/panda2/ Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan, EJB 3 in Action, Second Edition, March 2014, ISBN: 9781935182993], ([http://www.manning.com/panda2/EJB3iA_2E_SourceCode.zip source code of examples])&lt;br /&gt;
* [http://shop.oreilly.com/product/9780596158033.do  Andrew Lee Rubinger, Bill Burke, Enterprise JavaBeans 3.1, 6th Edition, O&#039;Reilly Media, Final Release Date: September 2010, Pages]&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[AngularJS]]====&lt;br /&gt;
* Brad Green, Shyam Seshadri, AngularJS, Pub OReilly http://shop.oreilly.com/product/0636920028055.do ([https://github.com/shyamseshadri/angularjs-book source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42117</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42117"/>
		<updated>2018-09-03T12:33:45Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Planning des séances */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* VZ : Vincent Zurczak (vzurczak@linagora.com)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-RICM 2018-2019===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 18/09 à 8h.&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2017-2018]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et TR).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 18/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2017.pdf|transparents]]), CM [[Media:RestfulServices.pdf|REST]], [[MicroServices]], [[Spring]], [[JHipster]] (DD) (F018)&lt;br /&gt;
* 18/09 15h45-18h30 : Installation [[JHipster]] et [[Docker]]. Génération de l&#039;application MVP de eCOM, lancement du profile dev, lancement du profil prod (avec Docker), analyse de qualité du code (généré) avec le container SonarQube et déploiement sur Heroku de 2 applications (stage, production).&lt;br /&gt;
&lt;br /&gt;
* 25/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P257)&lt;br /&gt;
* 25/09 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 02/10 8h00-12h15 : Travail en autonomie (F201,202)&lt;br /&gt;
* 02/10 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 09/10 8h00-12h15 : Audit 1 (F316) et travail en autonomie (F203)&lt;br /&gt;
* 09/10 15h45-18h30 :  Tests de robustesse (charges) (VZ) (F203)&lt;br /&gt;
&lt;br /&gt;
* 16/10 8h00-12h15 : Travail en autonomie (F203, F217)&lt;br /&gt;
* 16/10 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 23/10 8h00-12h15 : Travail en autonomie (F203, F217)&lt;br /&gt;
* 23/10 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 06/11 8h00-12h15 : Soutenance 2 (F109) et travail en autonomie (F203)&lt;br /&gt;
* 06/11 15h45-18h30 :  Test utilisateur (SC) (F116)&lt;br /&gt;
&lt;br /&gt;
* 20/11 8h00-12h15 : Travail encadré (VZ) (F216, F217)&lt;br /&gt;
* 20/11 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 27/11 8h00-12h15 : Travail encadré (VZ) (F216, F217)&lt;br /&gt;
* 27/11 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 04/12 8h00-12h15 : Travail en autonomie (F202, F204)&lt;br /&gt;
* 04/12 15h45-18h30 :  Travail encadré (VZ) (F216, F217)&lt;br /&gt;
&lt;br /&gt;
* 11/12 8h00-12h15 : Travail encadré (VZ) (F216, F217)&lt;br /&gt;
&lt;br /&gt;
* 18/12 8h00-12h15 : Soutenances finales (F201, F217)&lt;br /&gt;
* 18/12 15h45-18h30 :  Soutenances finales (F201, F212)&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie JEE.&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]], le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 10 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 07 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 19 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
&lt;br /&gt;
===Soutenance 1 ===&lt;br /&gt;
*Salle : F316&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- groupe 6&lt;br /&gt;
&lt;br /&gt;
- groupe 3&lt;br /&gt;
&lt;br /&gt;
- groupe 1&lt;br /&gt;
&lt;br /&gt;
- groupe 2&lt;br /&gt;
&lt;br /&gt;
- groupe 4&lt;br /&gt;
&lt;br /&gt;
- groupe 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
&lt;br /&gt;
===Soutenance 2 ===&lt;br /&gt;
*Salle : F109&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL : point sur &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Entity, Ressources REST (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- groupe 6 : 8h&lt;br /&gt;
&lt;br /&gt;
- groupe 1 : 8h30&lt;br /&gt;
&lt;br /&gt;
- groupe 5 : 9h&lt;br /&gt;
&lt;br /&gt;
- groupe 2 : 9h45&lt;br /&gt;
&lt;br /&gt;
- groupe 4 : 10h15&lt;br /&gt;
&lt;br /&gt;
- groupe 3 : 10h45&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : F114&lt;br /&gt;
* Durée totale : 30 min&lt;br /&gt;
* Utilisez des transparents pour présenter votre projet. Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
* une présentation globale du projet&lt;br /&gt;
* le processus de conception (illustré)&lt;br /&gt;
* la démonstration de votre application&lt;br /&gt;
* des évaluations&lt;br /&gt;
* le bilan (pédagogique ET du projet/individuel ET groupe)&lt;br /&gt;
* le temps consacré à la conception &lt;br /&gt;
* le temps consacré au développement &lt;br /&gt;
* les principales difficultés rencontrées&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* 8h : groupe 1&lt;br /&gt;
* 8h35 : groupe 3&lt;br /&gt;
* 9h10 : groupe 5&lt;br /&gt;
* 15h45 : groupe 4&lt;br /&gt;
* 16h20 : groupe 6&lt;br /&gt;
* 16h55 : groupe 2&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et TR pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Deux rapports doivent être rédigés pour la partie Système : un document de conception système et un document d&#039;évaluation système. Ces documents doivent être accessibles depuis le wiki (ils peuvent même être directement édités sur le wiki).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ajouter les livrables que vous jugez utiles pour présenter le travail que vous avez réalisé. Pour ces livrables : numérotez les &lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Chaque livrable est numéroté (détails du livrable ci-dessous) LX, sous une forme à respecter. Certains ont une date de rendu à respecter. Ci-dessous le résumé de ces contraintes :&lt;br /&gt;
*L2 : 09/10 minuit : Wiki&lt;br /&gt;
*L3 : 09/10 minuit : Wiki&lt;br /&gt;
*L4 : 06/11 minuit : Wiki&lt;br /&gt;
*L5 : ?&lt;br /&gt;
*L6 : 06/11 minuit : Wiki&lt;br /&gt;
*L7 : 09/10 minuit : Wiki&lt;br /&gt;
*L8 : en continu : Wiki&lt;br /&gt;
*L9 : en continu : Wiki&lt;br /&gt;
*L10 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L11 : 18/12 minuit : Lien sur Wiki&lt;br /&gt;
*L12 : 19/12 lors du passage&lt;br /&gt;
*L13 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L14 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L15 : 08/11 lors du passage &lt;br /&gt;
*L16 : 19/12 lors du passage &lt;br /&gt;
*L17 : 19/12 lors du passage : Tableaux complétés et imprimés&lt;br /&gt;
*L18 : 10/10 lors du passage&lt;br /&gt;
&lt;br /&gt;
===Contenu===&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
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&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation JEE : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;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.&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (waffle ou autre)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à créer un wiki qui regroupera l&#039;ensemble de vos documentations. Cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer une organisation github ou bitbucket. Ajouter les membres du projet eCOM à l&#039;organisation. Créer plusieurs projets pour les différents parties. Activer les watchs. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;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, annotations JAX-RS, [[Swagger]]). L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl, [[Swagger]] UI, jmeter, .... Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et consommateur) et exécuter certaines requêtes avec des garanties transactionnelles. Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]] pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, Oracle, HSQL ...) (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL, Oracle, HSQL ...) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via [[JMS]] et des EJBTimer (voir http://ecom.ow2.org/xwiki/bin/view/Main/fremail)&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS via [[JMS]] et des EJBTimer ([[ECOM/SMSProviders|fournisseurs SMS]])&lt;br /&gt;
&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec [[Apache Jackrabbit]] &lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Intégration de [[Memcached]]&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST.&lt;br /&gt;
** Utilisation de services tiers via leurs APIs (voir le catalogue de [[Mashape]])&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Gestion d&#039;un &#039;&#039;cloud&#039;&#039; privé avec [[OpenStack]] avec [[Fuel]]&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Kubernete]] ou [[Docker Swarm]]&lt;br /&gt;
** Conditionnement de l&#039;application mobile avec [[Apache Cordova]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers ([[AxiMAG]] par exemple).&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google)&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]], [[Gatling]], OW2 CLIF, BlazeMeter.com) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Telegraf]] + [[InfluxDB]] + [[Grafana]].&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Rolling update (Blue-Green Deployment) des composants (applications et intergiciels).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom (utiliser [https://hub.docker.com/_/glassfish/ Glassfish]).&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[CoreOS]] ou [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]],  [[Hawkular]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2017-2018.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [https://glassfish.java.net/docs/4.0/administration-guide.pdf Guide d&#039;administration de Glassfish 4]&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/tutorial/doc/ Tutorial JavaEE 7 ] ([https://svn.java.net/svn/javaeetutorial~svn/ sources des exemples])&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/api/ API JavaEE 7]&lt;br /&gt;
* [https://java.net/projects/javaee-spec/pages/Home  Java EE Platform Specification]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
* Documentation et Training Kit sur Windows Azure : http://www.microsoft.com/en-us/download/details.aspx?id=8396&lt;br /&gt;
* Documentation de [http://roboconf.net/en Roboconf]&lt;br /&gt;
** Exemple avec LAMP http://roboconf.net/en/user-guide/lamp-example-part-1.html&lt;br /&gt;
http://proton.inrialpes.fr/~depalma/ecom/liens/liens.html&lt;br /&gt;
* [[Bootstrap]]&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur JavaEE se periment très vite avec l&#039;évolution de la spécification&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* [http://www.apress.com/9781430246268 Antonio Goncalves, Beginning JavaEE 7, APress, 2013], ([https://github.com/agoncal/agoncal-book-javaee7 examples]  pour [[Glassfish]] 4)&lt;br /&gt;
* [https://www.packtpub.com/application-development/java-ee-7-developer-handbook Peter A. Pilgrim, Java EE 7 Developer Handbook, Packt, 2013, ISBN 139781849687942 ]&lt;br /&gt;
* [http://www.packtpub.com/java-ee6-securing-tuning-extending-enterprise-applications-cookbook/book Mick Knutson, Java EE6 Cookbook for securing, tuning, and extending enterprise applications, Packt Publishing, June 2012]&lt;br /&gt;
* Holly Cummins and Timothy Ward, Enterprise OSGi in Action, March, 2013, 400 pages, ISBN: 9781617290138, http://www.manning.com/cummins/ ([http://www.manning.com/cummins/EOSGI_sample_ch02.pdf chapitre 2], [http://www.manning.com/cummins/EOSGI_sample_ch10.pdf chapitre 10])&lt;br /&gt;
* [http://www.manning.com/panda2/ Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan, EJB 3 in Action, Second Edition, March 2014, ISBN: 9781935182993], ([http://www.manning.com/panda2/EJB3iA_2E_SourceCode.zip source code of examples])&lt;br /&gt;
* [http://shop.oreilly.com/product/9780596158033.do  Andrew Lee Rubinger, Bill Burke, Enterprise JavaBeans 3.1, 6th Edition, O&#039;Reilly Media, Final Release Date: September 2010, Pages]&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[AngularJS]]====&lt;br /&gt;
* Brad Green, Shyam Seshadri, AngularJS, Pub OReilly http://shop.oreilly.com/product/0636920028055.do ([https://github.com/shyamseshadri/angularjs-book source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42116</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=42116"/>
		<updated>2018-09-03T12:12:27Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Groupes eCOM-RICM 2018-2019 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* VZ : Vincent Zurczak (vzurczak@linagora.com)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-RICM 2018-2019===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 18/09 à 8h.&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2017-2018]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et TR).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 19/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2017.pdf|transparents]]), CM [[Media:RestfulServices.pdf|REST]], [[MicroServices]], [[Spring]], [[JHipster]] (DD) (F018)&lt;br /&gt;
* 19/09 15h45-18h30 : Installation [[JHipster]] et [[Docker]]. Génération de l&#039;application MVP de eCOM, lancement du profile dev, lancement du profil prod (avec Docker), analyse de qualité du code (généré) avec le container SonarQube et déploiement sur Heroku de 2 applications (stage, production).&lt;br /&gt;
&lt;br /&gt;
* 26/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P257)&lt;br /&gt;
* 26/09 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 03/10 8h00-12h15 : Travail en autonomie (F201,202)&lt;br /&gt;
* 03/10 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 10/10 8h00-12h15 : Audit 1 (F316) et travail en autonomie (F203)&lt;br /&gt;
* 10/10 15h45-18h30 :  Tests de robustesse (charges) (VZ) (F203)&lt;br /&gt;
&lt;br /&gt;
* 17/10 8h00-12h15 : Travail en autonomie (F203, F217)&lt;br /&gt;
* 17/10 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 24/10 8h00-12h15 : Travail en autonomie (F203, F217)&lt;br /&gt;
* 24/10 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 07/11 8h00-12h15 : Soutenance 2 (F109) et travail en autonomie (F203)&lt;br /&gt;
* 07/11 15h45-18h30 :  Test utilisateur (SC) (F116)&lt;br /&gt;
&lt;br /&gt;
* 14/11 8h00-12h15 : Travail encadré (VZ) (F216, F217)&lt;br /&gt;
* 14/11 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 28/11 8h00-12h15 : Travail encadré (VZ) (F216, F217)&lt;br /&gt;
* 28/11 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 05/12 8h00-12h15 : Travail en autonomie (F202, F204)&lt;br /&gt;
* 05/12 15h45-18h30 :  Travail encadré (VZ) (F216, F217)&lt;br /&gt;
&lt;br /&gt;
* 12/12 8h00-12h15 : Travail encadré (VZ) (F216, F217)&lt;br /&gt;
&lt;br /&gt;
* 19/12 8h00-12h15 : Soutenances finales (F201, F217)&lt;br /&gt;
* 19/12 15h45-18h30 :  Soutenances finales (F201, F212)&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie JEE.&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]], le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 10 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 07 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 19 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
&lt;br /&gt;
===Soutenance 1 ===&lt;br /&gt;
*Salle : F316&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- groupe 6&lt;br /&gt;
&lt;br /&gt;
- groupe 3&lt;br /&gt;
&lt;br /&gt;
- groupe 1&lt;br /&gt;
&lt;br /&gt;
- groupe 2&lt;br /&gt;
&lt;br /&gt;
- groupe 4&lt;br /&gt;
&lt;br /&gt;
- groupe 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
&lt;br /&gt;
===Soutenance 2 ===&lt;br /&gt;
*Salle : F109&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL : point sur &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Entity, Ressources REST (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- groupe 6 : 8h&lt;br /&gt;
&lt;br /&gt;
- groupe 1 : 8h30&lt;br /&gt;
&lt;br /&gt;
- groupe 5 : 9h&lt;br /&gt;
&lt;br /&gt;
- groupe 2 : 9h45&lt;br /&gt;
&lt;br /&gt;
- groupe 4 : 10h15&lt;br /&gt;
&lt;br /&gt;
- groupe 3 : 10h45&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : F114&lt;br /&gt;
* Durée totale : 30 min&lt;br /&gt;
* Utilisez des transparents pour présenter votre projet. Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
* une présentation globale du projet&lt;br /&gt;
* le processus de conception (illustré)&lt;br /&gt;
* la démonstration de votre application&lt;br /&gt;
* des évaluations&lt;br /&gt;
* le bilan (pédagogique ET du projet/individuel ET groupe)&lt;br /&gt;
* le temps consacré à la conception &lt;br /&gt;
* le temps consacré au développement &lt;br /&gt;
* les principales difficultés rencontrées&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* 8h : groupe 1&lt;br /&gt;
* 8h35 : groupe 3&lt;br /&gt;
* 9h10 : groupe 5&lt;br /&gt;
* 15h45 : groupe 4&lt;br /&gt;
* 16h20 : groupe 6&lt;br /&gt;
* 16h55 : groupe 2&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et TR pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Deux rapports doivent être rédigés pour la partie Système : un document de conception système et un document d&#039;évaluation système. Ces documents doivent être accessibles depuis le wiki (ils peuvent même être directement édités sur le wiki).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ajouter les livrables que vous jugez utiles pour présenter le travail que vous avez réalisé. Pour ces livrables : numérotez les &lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Chaque livrable est numéroté (détails du livrable ci-dessous) LX, sous une forme à respecter. Certains ont une date de rendu à respecter. Ci-dessous le résumé de ces contraintes :&lt;br /&gt;
*L2 : 09/10 minuit : Wiki&lt;br /&gt;
*L3 : 09/10 minuit : Wiki&lt;br /&gt;
*L4 : 06/11 minuit : Wiki&lt;br /&gt;
*L5 : ?&lt;br /&gt;
*L6 : 06/11 minuit : Wiki&lt;br /&gt;
*L7 : 09/10 minuit : Wiki&lt;br /&gt;
*L8 : en continu : Wiki&lt;br /&gt;
*L9 : en continu : Wiki&lt;br /&gt;
*L10 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L11 : 18/12 minuit : Lien sur Wiki&lt;br /&gt;
*L12 : 19/12 lors du passage&lt;br /&gt;
*L13 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L14 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L15 : 08/11 lors du passage &lt;br /&gt;
*L16 : 19/12 lors du passage &lt;br /&gt;
*L17 : 19/12 lors du passage : Tableaux complétés et imprimés&lt;br /&gt;
*L18 : 10/10 lors du passage&lt;br /&gt;
&lt;br /&gt;
===Contenu===&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
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&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation JEE : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;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.&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (waffle ou autre)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à créer un wiki qui regroupera l&#039;ensemble de vos documentations. Cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer une organisation github ou bitbucket. Ajouter les membres du projet eCOM à l&#039;organisation. Créer plusieurs projets pour les différents parties. Activer les watchs. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;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, annotations JAX-RS, [[Swagger]]). L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl, [[Swagger]] UI, jmeter, .... Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et consommateur) et exécuter certaines requêtes avec des garanties transactionnelles. Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]] pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, Oracle, HSQL ...) (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL, Oracle, HSQL ...) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via [[JMS]] et des EJBTimer (voir http://ecom.ow2.org/xwiki/bin/view/Main/fremail)&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS via [[JMS]] et des EJBTimer ([[ECOM/SMSProviders|fournisseurs SMS]])&lt;br /&gt;
&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec [[Apache Jackrabbit]] &lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Intégration de [[Memcached]]&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST.&lt;br /&gt;
** Utilisation de services tiers via leurs APIs (voir le catalogue de [[Mashape]])&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Gestion d&#039;un &#039;&#039;cloud&#039;&#039; privé avec [[OpenStack]] avec [[Fuel]]&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Kubernete]] ou [[Docker Swarm]]&lt;br /&gt;
** Conditionnement de l&#039;application mobile avec [[Apache Cordova]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers ([[AxiMAG]] par exemple).&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google)&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]], [[Gatling]], OW2 CLIF, BlazeMeter.com) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Telegraf]] + [[InfluxDB]] + [[Grafana]].&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Rolling update (Blue-Green Deployment) des composants (applications et intergiciels).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom (utiliser [https://hub.docker.com/_/glassfish/ Glassfish]).&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[CoreOS]] ou [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]],  [[Hawkular]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2017-2018.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [https://glassfish.java.net/docs/4.0/administration-guide.pdf Guide d&#039;administration de Glassfish 4]&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/tutorial/doc/ Tutorial JavaEE 7 ] ([https://svn.java.net/svn/javaeetutorial~svn/ sources des exemples])&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/api/ API JavaEE 7]&lt;br /&gt;
* [https://java.net/projects/javaee-spec/pages/Home  Java EE Platform Specification]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
* Documentation et Training Kit sur Windows Azure : http://www.microsoft.com/en-us/download/details.aspx?id=8396&lt;br /&gt;
* Documentation de [http://roboconf.net/en Roboconf]&lt;br /&gt;
** Exemple avec LAMP http://roboconf.net/en/user-guide/lamp-example-part-1.html&lt;br /&gt;
http://proton.inrialpes.fr/~depalma/ecom/liens/liens.html&lt;br /&gt;
* [[Bootstrap]]&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur JavaEE se periment très vite avec l&#039;évolution de la spécification&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* [http://www.apress.com/9781430246268 Antonio Goncalves, Beginning JavaEE 7, APress, 2013], ([https://github.com/agoncal/agoncal-book-javaee7 examples]  pour [[Glassfish]] 4)&lt;br /&gt;
* [https://www.packtpub.com/application-development/java-ee-7-developer-handbook Peter A. Pilgrim, Java EE 7 Developer Handbook, Packt, 2013, ISBN 139781849687942 ]&lt;br /&gt;
* [http://www.packtpub.com/java-ee6-securing-tuning-extending-enterprise-applications-cookbook/book Mick Knutson, Java EE6 Cookbook for securing, tuning, and extending enterprise applications, Packt Publishing, June 2012]&lt;br /&gt;
* Holly Cummins and Timothy Ward, Enterprise OSGi in Action, March, 2013, 400 pages, ISBN: 9781617290138, http://www.manning.com/cummins/ ([http://www.manning.com/cummins/EOSGI_sample_ch02.pdf chapitre 2], [http://www.manning.com/cummins/EOSGI_sample_ch10.pdf chapitre 10])&lt;br /&gt;
* [http://www.manning.com/panda2/ Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan, EJB 3 in Action, Second Edition, March 2014, ISBN: 9781935182993], ([http://www.manning.com/panda2/EJB3iA_2E_SourceCode.zip source code of examples])&lt;br /&gt;
* [http://shop.oreilly.com/product/9780596158033.do  Andrew Lee Rubinger, Bill Burke, Enterprise JavaBeans 3.1, 6th Edition, O&#039;Reilly Media, Final Release Date: September 2010, Pages]&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[AngularJS]]====&lt;br /&gt;
* Brad Green, Shyam Seshadri, AngularJS, Pub OReilly http://shop.oreilly.com/product/0636920028055.do ([https://github.com/shyamseshadri/angularjs-book source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=37841</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=37841"/>
		<updated>2017-12-15T08:38:33Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Soutenance de fin de projet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* TR : Thomas Ropras (thomas.ropars@imag.fr)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-RICM 2017-2018===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 19/09 à 8h.&lt;br /&gt;
====Groupe 1  ====&lt;br /&gt;
*AMODRU-FAVIN Hugo&lt;br /&gt;
*CHAMBONNET Simon&lt;br /&gt;
*FU Qianqian&lt;br /&gt;
*GAMBRO Antoine&lt;br /&gt;
*RIVOAL Alice&lt;br /&gt;
[[ECOM RICM5 Groupe1 2017|Fiche de suivi]]&lt;br /&gt;
&lt;br /&gt;
====Groupe 2 ====&lt;br /&gt;
*ALLARD Estelle&lt;br /&gt;
*COCHINHO Louis&lt;br /&gt;
*DELISE Antoine&lt;br /&gt;
*GUERRY Lucas&lt;br /&gt;
*ROCHER Lambert&lt;br /&gt;
[[ECOM RICM5 Groupe2 2017|Fiche de suivi]]&lt;br /&gt;
&lt;br /&gt;
====Groupe 3 ====&lt;br /&gt;
*BECHER Hervé&lt;br /&gt;
*DALLE Oriane&lt;br /&gt;
*GEOURJON Anthony&lt;br /&gt;
*LACHARTRE Denis&lt;br /&gt;
*SAVARY Rémi&lt;br /&gt;
[[ECOM RICM5 Groupe3 2017|Fiche de suivi]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Groupe 4  ====&lt;br /&gt;
*BOISADAM Antoine&lt;br /&gt;
*DEREYMEZ Maxime&lt;br /&gt;
*LEMAIRE Timothée&lt;br /&gt;
*LESAGE Lucas&lt;br /&gt;
*ZENNOUCHE Douria&lt;br /&gt;
[[ECOM RICM5 Groupe4 2017|Fiche de suivi]]&lt;br /&gt;
&lt;br /&gt;
====Groupe 5 ====&lt;br /&gt;
*BONHOURE Gilles&lt;br /&gt;
*FERNANDES DE ALMEIDA Héloïse&lt;br /&gt;
*MARCHAND Charles&lt;br /&gt;
*MOREAU Gwenaël&lt;br /&gt;
*VIAL-GRELIER Aymeric&lt;br /&gt;
*ZEGAOUI Taquyeddine (arrivée début octobre)&lt;br /&gt;
[[ECOM RICM5 Groupe5 2017|Fiche de suivi]]&lt;br /&gt;
&lt;br /&gt;
====Groupe 6 ====&lt;br /&gt;
*AUBERTIN Alicia&lt;br /&gt;
*BROCHIER Aymeric&lt;br /&gt;
*NASSIK Ahmed Amine&lt;br /&gt;
*ODIEVRE Boris&lt;br /&gt;
*TURRIN Vincent&lt;br /&gt;
[[ECOM RICM5 Groupe6 2017|Fiche de suivi]]&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et TR).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 19/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2017.pdf|transparents]]), CM Outils de suivi de projet + JSP 3h00 [http://lig-membres.imag.fr/donsez/cours/http-ecom.pdf HTTP] &amp;amp; [[Media:RestfulServices.pdf|REST]] (DD) (F018)&lt;br /&gt;
* 19/09 15h45-18h30 : JavaEE [https://github.com/donsez/javaee7-angular-swagger-docker app JavaEE de démo]  [http://lig-membres.imag.fr/donsez/cours/javaee-ejb.pdf Cours JavaEE EJB](DD) Install [[JavaEE]] ([[Docker]] et [[Wildfly]]) Tutoriel EJB, Tutoriel Servlet/JSP/[[REST]]/WS/Filter/Docker ([[https://github.com/donsez/javaee7-angular-swagger-docker|lien]]) et [[JHipster]] pour le groupe &amp;quot;Gestion de courses sportives&amp;quot; (F202, F204). Vous pouvez générer le boilerplate de votre application avec des générateurs tel que http://www.generjee.com/.&lt;br /&gt;
&lt;br /&gt;
* 26/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P257)&lt;br /&gt;
* 26/09 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 03/10 8h00-12h15 : Travail en autonomie (F201,202)&lt;br /&gt;
* 03/10 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 10/10 8h00-12h15 : Audit 1 (F316) et travail en autonomie (F203)&lt;br /&gt;
* 10/10 15h45-18h30 :  Tests de robustesse (charges) (DD) (F203)&lt;br /&gt;
&lt;br /&gt;
* 17/10 8h00-12h15 : Travail en autonomie (F203, F217)&lt;br /&gt;
* 17/10 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 24/10 8h00-12h15 : Travail en autonomie (F203, F217)&lt;br /&gt;
* 24/10 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 07/11 8h00-12h15 : Soutenance 2 (F109) et travail en autonomie (F203)&lt;br /&gt;
* 07/11 15h45-18h30 :  Test utilisateur (SC) (F116)&lt;br /&gt;
&lt;br /&gt;
* 14/11 8h00-12h15 : Travail encadré (TR) (F216, F217)&lt;br /&gt;
* 14/11 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 28/11 8h00-12h15 : Travail encadré (TR) (F216, F217)&lt;br /&gt;
* 28/11 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 05/12 8h00-12h15 : Travail en autonomie (F202, F204)&lt;br /&gt;
* 05/12 15h45-18h30 :  Travail encadré (TR) (F216, F217)&lt;br /&gt;
&lt;br /&gt;
* 12/12 8h00-12h15 : Travail encadré (TR) (F216, F217)&lt;br /&gt;
&lt;br /&gt;
* 19/12 8h00-12h15 : Soutenances finales (F201, F217)&lt;br /&gt;
* 19/12 15h45-18h30 :  Soutenances finales (F201, F212)&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie JEE.&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]], le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 10 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 07 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 19 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
&lt;br /&gt;
===Soutenance 1 ===&lt;br /&gt;
*Salle : F316&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- groupe 6&lt;br /&gt;
&lt;br /&gt;
- groupe 3&lt;br /&gt;
&lt;br /&gt;
- groupe 1&lt;br /&gt;
&lt;br /&gt;
- groupe 2&lt;br /&gt;
&lt;br /&gt;
- groupe 4&lt;br /&gt;
&lt;br /&gt;
- groupe 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
&lt;br /&gt;
===Soutenance 2 ===&lt;br /&gt;
*Salle : F109&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL : point sur &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Beans (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- groupe 6 : 8h&lt;br /&gt;
&lt;br /&gt;
- groupe 1 : 8h30&lt;br /&gt;
&lt;br /&gt;
- groupe 5 : 9h&lt;br /&gt;
&lt;br /&gt;
- groupe 2 : 9h45&lt;br /&gt;
&lt;br /&gt;
- groupe 4 : 10h15&lt;br /&gt;
&lt;br /&gt;
- groupe 3 : 10h45&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : F114&lt;br /&gt;
* Durée totale : 30 min&lt;br /&gt;
* Utilisez des transparents pour présenter votre projet. Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
* une présentation globale du projet&lt;br /&gt;
* le processus de conception (illustré)&lt;br /&gt;
* la démonstration de votre application&lt;br /&gt;
* des évaluations&lt;br /&gt;
* le bilan (pédagogique ET du projet/individuel ET groupe)&lt;br /&gt;
* le temps consacré à la conception &lt;br /&gt;
* le temps consacré au développement &lt;br /&gt;
* les principales difficultés rencontrées&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* 8h : groupe 1&lt;br /&gt;
* 8h35 : groupe 3&lt;br /&gt;
* 9h10 : groupe 5&lt;br /&gt;
* 15h45 : groupe 4&lt;br /&gt;
* 16h20 : groupe 6&lt;br /&gt;
* 16h55 : groupe 2&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et TR pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Deux rapports doivent être rédigés pour la partie Système : un document de conception système et un document d&#039;évaluation système. Ces documents doivent être accessibles depuis le wiki (ils peuvent même être directement édités sur le wiki).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ajouter les livrables que vous jugez utiles pour présenter le travail que vous avez réalisé. Pour ces livrables : numérotez les &lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Chaque livrable est numéroté (détails du livrable ci-dessous) LX, sous une forme à respecter. Certains ont une date de rendu à respecter. Ci-dessous le résumé de ces contraintes :&lt;br /&gt;
*L2 : 09/10 minuit : Wiki&lt;br /&gt;
*L3 : 09/10 minuit : Wiki&lt;br /&gt;
*L4 : 06/11 minuit : Wiki&lt;br /&gt;
*L5 : ?&lt;br /&gt;
*L6 : 06/11 minuit : Wiki&lt;br /&gt;
*L7 : 09/10 minuit : Wiki&lt;br /&gt;
*L8 : en continu : Wiki&lt;br /&gt;
*L9 : en continu : Wiki&lt;br /&gt;
*L10 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L11 : 18/12 minuit : Lien sur Wiki&lt;br /&gt;
*L12 : 19/12 lors du passage&lt;br /&gt;
*L13 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L14 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L15 : 08/11 lors du passage &lt;br /&gt;
*L16 : 19/12 lors du passage &lt;br /&gt;
*L17 : 19/12 lors du passage : Tableaux complétés et imprimés&lt;br /&gt;
*L18 : 10/10 lors du passage&lt;br /&gt;
&lt;br /&gt;
===Contenu===&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
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&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation JEE : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;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.&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (waffle ou autre)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à créer un wiki qui regroupera l&#039;ensemble de vos documentations. Cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer une organisation github ou bitbucket. Ajouter les membres du projet eCOM à l&#039;organisation. Créer plusieurs projets pour les différents parties. Activer les watchs. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;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, annotations JAX-RS, [[Swagger]]). L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl, [[Swagger]] UI, jmeter, .... Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et consommateur) et exécuter certaines requêtes avec des garanties transactionnelles. Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]] pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, Oracle, HSQL ...) (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL, Oracle, HSQL ...) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via [[JMS]] et des EJBTimer (voir http://ecom.ow2.org/xwiki/bin/view/Main/fremail)&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS via [[JMS]] et des EJBTimer ([[ECOM/SMSProviders|fournisseurs SMS]])&lt;br /&gt;
&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec [[Apache Jackrabbit]] &lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Intégration de [[Memcached]]&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST.&lt;br /&gt;
** Utilisation de services tiers via leurs APIs (voir le catalogue de [[Mashape]])&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Gestion d&#039;un &#039;&#039;cloud&#039;&#039; privé avec [[OpenStack]] avec [[Fuel]]&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Kubernete]] ou [[Docker Swarm]]&lt;br /&gt;
** Conditionnement de l&#039;application mobile avec [[Apache Cordova]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers ([[AxiMAG]] par exemple).&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google)&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]], [[Gatling]], OW2 CLIF, BlazeMeter.com) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Telegraf]] + [[InfluxDB]] + [[Grafana]].&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Rolling update (Blue-Green Deployment) des composants (applications et intergiciels).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom (utiliser [https://hub.docker.com/_/glassfish/ Glassfish]).&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[CoreOS]] ou [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]],  [[Hawkular]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2017-2018.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [https://glassfish.java.net/docs/4.0/administration-guide.pdf Guide d&#039;administration de Glassfish 4]&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/tutorial/doc/ Tutorial JavaEE 7 ] ([https://svn.java.net/svn/javaeetutorial~svn/ sources des exemples])&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/api/ API JavaEE 7]&lt;br /&gt;
* [https://java.net/projects/javaee-spec/pages/Home  Java EE Platform Specification]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
* Documentation et Training Kit sur Windows Azure : http://www.microsoft.com/en-us/download/details.aspx?id=8396&lt;br /&gt;
* Documentation de [http://roboconf.net/en Roboconf]&lt;br /&gt;
** Exemple avec LAMP http://roboconf.net/en/user-guide/lamp-example-part-1.html&lt;br /&gt;
http://proton.inrialpes.fr/~depalma/ecom/liens/liens.html&lt;br /&gt;
* [[Bootstrap]]&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur JavaEE se periment très vite avec l&#039;évolution de la spécification&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* [http://www.apress.com/9781430246268 Antonio Goncalves, Beginning JavaEE 7, APress, 2013], ([https://github.com/agoncal/agoncal-book-javaee7 examples]  pour [[Glassfish]] 4)&lt;br /&gt;
* [https://www.packtpub.com/application-development/java-ee-7-developer-handbook Peter A. Pilgrim, Java EE 7 Developer Handbook, Packt, 2013, ISBN 139781849687942 ]&lt;br /&gt;
* [http://www.packtpub.com/java-ee6-securing-tuning-extending-enterprise-applications-cookbook/book Mick Knutson, Java EE6 Cookbook for securing, tuning, and extending enterprise applications, Packt Publishing, June 2012]&lt;br /&gt;
* Holly Cummins and Timothy Ward, Enterprise OSGi in Action, March, 2013, 400 pages, ISBN: 9781617290138, http://www.manning.com/cummins/ ([http://www.manning.com/cummins/EOSGI_sample_ch02.pdf chapitre 2], [http://www.manning.com/cummins/EOSGI_sample_ch10.pdf chapitre 10])&lt;br /&gt;
* [http://www.manning.com/panda2/ Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan, EJB 3 in Action, Second Edition, March 2014, ISBN: 9781935182993], ([http://www.manning.com/panda2/EJB3iA_2E_SourceCode.zip source code of examples])&lt;br /&gt;
* [http://shop.oreilly.com/product/9780596158033.do  Andrew Lee Rubinger, Bill Burke, Enterprise JavaBeans 3.1, 6th Edition, O&#039;Reilly Media, Final Release Date: September 2010, Pages]&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[AngularJS]]====&lt;br /&gt;
* Brad Green, Shyam Seshadri, AngularJS, Pub OReilly http://shop.oreilly.com/product/0636920028055.do ([https://github.com/shyamseshadri/angularjs-book source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-M2PGI&amp;diff=37840</id>
		<title>ECOM-M2PGI</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-M2PGI&amp;diff=37840"/>
		<updated>2017-12-15T08:24:09Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Consignes spécifiques pour les soutenances IHM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application de commerce électronique. [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Étapes du projet=&lt;br /&gt;
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). &lt;br /&gt;
&lt;br /&gt;
==Conduite de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Il est préconisé d&#039;utiliser la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe.&lt;br /&gt;
&lt;br /&gt;
===Critères d&#039;évaluation===&lt;br /&gt;
La conduite du projet sera principalement évaluée en fonction des critères suivants :&lt;br /&gt;
* vous devez choisir un Scrum Master (unique ou tournant) : vous devez justifier votre choix&lt;br /&gt;
* durée du sprint (idem : vous devez justifier votre choix)&lt;br /&gt;
Sur ces 2 premiers critères, vous n&#039;en changez pas !!!&lt;br /&gt;
&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à créer un wiki qui regroupera l&#039;ensemble de vos documentations. Cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
Un point de bonus pour ceux qui réussiront à mettre en place des &amp;quot;poker planning&amp;quot;.&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
==Partie IHM==&lt;br /&gt;
&lt;br /&gt;
===Etapes et documents demandés===&lt;br /&gt;
Le détail sur l&#039;organisation et l&#039;évaluation du travail concernant les spécifications du site sera communiqué lors des premières séances de cours. Liste des Livrables et date de rendu pour les M2PGI Alternants :&lt;br /&gt;
&lt;br /&gt;
* Livrable 1 : par email, membres du groupe et brève description du sujet (un seul groupe OK)&lt;br /&gt;
&lt;br /&gt;
====[[Audit 1 :]]====&lt;br /&gt;
* L2.1 : Description des profils&lt;br /&gt;
* L2.2 : Questionnaire profils (OPT-ALT)&lt;br /&gt;
* L3.1 : Scénarios&lt;br /&gt;
* L3.2 : Analyse de la concurrence (OPT-ALT)&lt;br /&gt;
* L3.3 : Questionnaire sur l&#039;utilisation (OPT-ALT)&lt;br /&gt;
* L4 : Modèles de tâches (Audit 2 pour ALT)&lt;br /&gt;
* L5 : Fonctionnalités&lt;br /&gt;
* L6.1 : Objectifs pour chaque version (priorités de développement)&lt;br /&gt;
&lt;br /&gt;
====[[Audit 2 :]]====&lt;br /&gt;
* Mise à jour de L2 à L6.1&lt;br /&gt;
* L7.1 : Architecture (OPT-ALT)&lt;br /&gt;
* L7.2 : Base de données (OPT-ALT)&lt;br /&gt;
* L7.3 : IHM Abstraite&lt;br /&gt;
* L7.4 : Maquettes&lt;br /&gt;
* L6.2 : Objectifs pour les versions suivantes&lt;br /&gt;
* L8 : Démo de V0&lt;br /&gt;
&lt;br /&gt;
====[[Audit 3 (Soutenances) :]]====&lt;br /&gt;
* Mise à jour de L7.3 (correction des erreurs)&lt;br /&gt;
* L9 : Rapport d&#039;évaluation experte (imprimé pour la soutenance)&lt;br /&gt;
* L10 : Démonstration finale&lt;br /&gt;
* L11 : Diapos de votre présentation (version numérique à laquelle l&#039;enseignant a accès au moment de votre passage)&lt;br /&gt;
&lt;br /&gt;
OPT signifie que le livrable est optionnel soit parce qu&#039;il ne s&#039;applique pas à tous les groupes, soit parce qu&#039;il ne peut qu&#039;apporter une plus value à votre projet (points en plus mais pas en moins au moment de l&#039;attribution de la note).&lt;br /&gt;
Lorsque ce n&#039;est pas précisé, c&#039;est à vous de choisir le mode présentation (écrit, schéma...) des informations du livrable&lt;br /&gt;
&lt;br /&gt;
===Critères d&#039;évaluation===&lt;br /&gt;
La partie IHM du projet sera principalement évaluée en fonction des critères suivants : &lt;br /&gt;
* Conformité de l&#039;IHM concrète et abstraite avec le modèle de tâches &lt;br /&gt;
* Couverture fonctionnelle de l&#039;application et robustesse au regard des priorités que vous avez retenues &lt;br /&gt;
* Qualité ergonomique au regard des principes vus en cours &lt;br /&gt;
* Rigueur de la démarche&lt;br /&gt;
&lt;br /&gt;
La note est obtenue par l&#039;évaluation tout au long du projet elle est composée de :&lt;br /&gt;
* Les besoins (3 pts) : informations sur  les besoins que vous allez prendre en compte (livrables et audit 1)&lt;br /&gt;
* La conception (5 pts) : proposition de solution pour répondre aux besoins (livrables et audit 2)&lt;br /&gt;
* L&#039;évaluation (3 pts) : évaluation de votre (ou vos) solution(s) (livrable et soutenance finale)&lt;br /&gt;
* Présentations (3 pts) : qualité des présentations (documents, email et slides de soutenance finale)&lt;br /&gt;
* Développement (6 pts) : qualité et quantité du code (démo et code)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les notes des membres du groupe peuvent être différentes en fonction du travail fourni et constaté par l&#039;enseignant.&lt;br /&gt;
&lt;br /&gt;
==Partie Système==&lt;br /&gt;
La partie Système est axée sur deux étapes successives. &lt;br /&gt;
===Première étape===&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;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).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
À ce stade, l&#039;application est seulement accessible par l&#039;intermédiaire d&#039;un &amp;quot;client lourd&amp;quot; (programme java offrant une console en mode texte). En particulier, il n&#039;est pas demandé, pour cette première étape, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux interfaces (administrateur et consommateur) et exécuter les requêtes avec des garanties transactionnelles. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une présentation/démonstration du prototype V1 sera réalisée à la fin de l&#039;étape n°1. &lt;br /&gt;
===Deuxième étape===&lt;br /&gt;
La seconde étape consiste à compléter le premier prototype avec les objectifs suivants : &lt;br /&gt;
* ajout des beans nécessaires pour couvrir l&#039;ensemble des spécifications fonctionnelles ; &lt;br /&gt;
* développement d&#039;une interface Web basée sur le modèle MVC ; &lt;br /&gt;
* rédaction des documents demandés (voir ci-dessous) ; &lt;br /&gt;
* 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 ; &lt;br /&gt;
* ajout éventuel de fonctionnalités non prioritaires.&lt;br /&gt;
 &lt;br /&gt;
Une présentation d&#039;une mini-maquette d&#039;interface web aura lieu au milieu de l&#039;étape n°2. &lt;br /&gt;
&lt;br /&gt;
Remarque : Aucune des phases du projet ne nécessite le développement d&#039;un client lourd en mode graphique (SWT ...). &lt;br /&gt;
===Documents demandés===&lt;br /&gt;
Deux rapports doivent être rédigés pour la partie Système : un document de conception système et un document d&#039;évaluation système.&lt;br /&gt;
&lt;br /&gt;
====Document de conception système====&lt;br /&gt;
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&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation JEE : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;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.&lt;br /&gt;
&lt;br /&gt;
====Document d&#039;évaluation système====&lt;br /&gt;
&lt;br /&gt;
Le rapport final système du projet ECOM a pour but de préciser l’état d’avancement de votre application ECOM.&lt;br /&gt;
&lt;br /&gt;
Le rapport final système doit préciser : &lt;br /&gt;
* L’état de chaque composant : non réalisé, réalisé, réalisé et validé &lt;br /&gt;
* Les fonctions réalisées, réalisées et testées, et celles restant à réaliser &lt;br /&gt;
* Les propriétés non fonctionnelles garanties par votre réalisation, et celles restant à considérer pour finaliser votre application &lt;br /&gt;
* Le temps consacré à la conception système &lt;br /&gt;
* Le temps consacré au développement système &lt;br /&gt;
* Les principales difficultés rencontrées &lt;br /&gt;
===Critères d&#039;évaluation===&lt;br /&gt;
La partie système du projet sera principalement évaluée en fonction des critères suivants : &lt;br /&gt;
* Conformité aux spécifications de l&#039;application et aux consignes données dans le cadre du projet &lt;br /&gt;
* Respect des échéances pour les différentes étapes du projet (y compris pour les prototypes intermédiaires et les documents) &lt;br /&gt;
* Qualité de l&#039;architecture de l&#039;application &lt;br /&gt;
* Qualité et robustesse du code applicatif &lt;br /&gt;
* Compréhension des principaux concepts de la technologie JEE &lt;br /&gt;
* Rigueur de la démarche de conception &lt;br /&gt;
* Qualité des présentations/soutenances &lt;br /&gt;
En complément, les aspects suivants seront également considérés : &lt;br /&gt;
* Méthodologie de test &lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud (Azure) avec [http://roboconf.net/ Roboconf] ([http://roboconf.net/en/user-guide/lamp-example-part-1.html voir l&#039;exemple avec LAMP])&lt;br /&gt;
* Préparation d&#039;images de VMs avec [[Kameleon]]&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]] ou OW2 CLIF) &lt;br /&gt;
* Supervision du système déployé avec des sondes [[Nagios]] ou [[Shinken]] conditionnées dans les VMs à déployer.&lt;br /&gt;
* Utilisation (optionnelle) de technologies/APIs/frameworks avancés&lt;br /&gt;
&lt;br /&gt;
==Consignes pour la soutenance==&lt;br /&gt;
===Consignes spécifiques pour les soutenances IHM===&lt;br /&gt;
Salle : F114&lt;br /&gt;
&lt;br /&gt;
Durée totale : 30 minutes&lt;br /&gt;
&lt;br /&gt;
* tous les livrables doivent être consultable par l&#039;enseignant (en ligne ou ayant été préalablement envoyés)&lt;br /&gt;
* 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 &lt;br /&gt;
* arrivez avec l&#039;application démarée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* prévoyez 15 minutes de questions lors de votre passage&lt;br /&gt;
&lt;br /&gt;
Ordre de passage (22/12)&lt;br /&gt;
* 8h Groupe 3&lt;br /&gt;
* 8h30 Groupe 4 &lt;br /&gt;
* 9h Groupe 6 &lt;br /&gt;
* 9h30 Groupe 1 &lt;br /&gt;
* 10h Groupe 7&lt;br /&gt;
* 10h30 Groupe 2 &lt;br /&gt;
* 11h Groupe 5&lt;br /&gt;
&lt;br /&gt;
===Consignes spécifiques pour les soutenances Système===&lt;br /&gt;
* Apportez un exemplaire du dossier d&#039;évaluation système (déposé la veille sur Moodle) lors de la soutenance. Il n&#039;est pas nécessaire d&#039;apporter un exemplaire du dossier de conception système.&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure avec le service développé.&lt;br /&gt;
* Prévovez environ 30 minutes pour la présentation/démo/questions. Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances Windows Azure.&lt;br /&gt;
* 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.&lt;br /&gt;
* Déposez immédiatement après la soutenance (et en aucun cas après le 20 décembre) l&#039;archive sur Moodle.&lt;br /&gt;
* le rapport de charge (benchmark) doit être (MUST) fourni dans la documentation.&lt;br /&gt;
* le rapport sur les métriques logicielles doit être (MUST) fourni dans la documentation.&lt;br /&gt;
&lt;br /&gt;
=Organisation 2017-2018=&lt;br /&gt;
&lt;br /&gt;
==Planning==&lt;br /&gt;
===M2PGI (Alternant)===&lt;br /&gt;
&#039;&#039;&#039;Equipe pédagogique:&#039;&#039;&#039; Noël de Palma (NdP), Vincent Lesne (VL), Sybille Caffiau (SC), Sebastien Chassand-Barrioz (SCB), Ibrahim Safiedinne (FR)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dates Importantes:&#039;&#039;&#039;&lt;br /&gt;
*Soutenances (IHM + système) : 9h-17h, le 27 septembre&lt;br /&gt;
*Remise du dossier de conception système :    le 27 septembre (lors de votre passage)&lt;br /&gt;
*Remise du dossier d&#039;évaluation système :    le 27 septembre (lors de votre passage)&lt;br /&gt;
&lt;br /&gt;
*01 sept 09h-12h    	F022, F319, Boot Projet/ JEE (NDP)&lt;br /&gt;
*01 sept 14h-17h		F319, Boot Projet/ JEE (NDP)&lt;br /&gt;
*04 sept 09h-12h   	F118, cours Agile (VL) &lt;br /&gt;
*04 sept 14h-17h		F118, cours IHM (SC)  &lt;br /&gt;
*05 sept 09h-12h   	F118, cours angular (SCB) (+TP F217)&lt;br /&gt;
*05 sept 14h-17h   	F118, cours angular (SCB) (+TP F217)&lt;br /&gt;
*06 sept 09h-12h 		F118, cours Agile (VL)&lt;br /&gt;
*06 sept  14h-17h		F217, point Syst. (NDP)&lt;br /&gt;
*07 sept 09h-12h		Libre service&lt;br /&gt;
*07 sept 14h-17h		F118, cours Cloud (IS) &lt;br /&gt;
*08 sept 09h-12h		F201, Point Syst. (SCB)  &lt;br /&gt;
*08 sept 14h-17h		F201, audit agile (VL)&lt;br /&gt;
*11 sept 09h-12h		Libre service&lt;br /&gt;
*11 sept 14h-17h		F217, point Syst. (IS)&lt;br /&gt;
*12 sept 09h-12h		Libre Service&lt;br /&gt;
*12 sept 14h-17h		Libre Service&lt;br /&gt;
*13 sept 09h-12h		Libre Service		&lt;br /&gt;
*13 sept 14h-17h		F217, point Syst. (NDP) &lt;br /&gt;
*14 sept 09h-12h		Libre Service&lt;br /&gt;
*14 sept 14h-17h		Libre Service&lt;br /&gt;
*15 sept 09h-12h		F214, point Syst. (SCB) &lt;br /&gt;
*15 sept 14h-17h		F201, audit agile (VL)&lt;br /&gt;
*18 sept 09h-12h 		Libre Service&lt;br /&gt;
*18 sept 14h-17h		F211, point Syst. (IS/NDP)&lt;br /&gt;
*19 sept 09h-12h		Libre Service&lt;br /&gt;
*19 sept 14h-17h		Libre Service		&lt;br /&gt;
*20 sept 09h-12h		F217 point Syst (IS) &lt;br /&gt;
*20 sept 14h-17h		Libre Service&lt;br /&gt;
*21 sept 09h-12h		Libre Service&lt;br /&gt;
*21 sept 14h-17h		Libre Service&lt;br /&gt;
*22 sept 09h-12h		Libre Service&lt;br /&gt;
*22 sept 14h-17h		F211, point Syst. (SCB) + audit agile (VL)&lt;br /&gt;
*27 sept 09h-12h		Soutenances&lt;br /&gt;
*27 sept 14h-17h		Soutenances&lt;br /&gt;
&lt;br /&gt;
===M2PGI (Classique)===&lt;br /&gt;
&#039;&#039;&#039;Equipe pédagogique:&#039;&#039;&#039; Noël de Palma (NdP), Vincent Lesne (VL), Sybille Caffiau (SC), Sebastien Chassand-Barrioz (SCB), Ibrahim Safiedinne (FR)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dates Importantes:&#039;&#039;&#039;&lt;br /&gt;
Vendredi 29 sept. : Début des cours&lt;br /&gt;
&lt;br /&gt;
* 29 sept  9h-12h   	F114, Boot Projet/ JEE (NDP) &lt;br /&gt;
* 29 sept  14h-17h 	F319, point systeme (NDP)&lt;br /&gt;
* 06 oct    09h-12h    	F114, cours Agile (VL)&lt;br /&gt;
* 06 oct    14h-17h   	F319, cours IHM (SC)&lt;br /&gt;
* 13 oct     9h-12h 		F215,  cours Cloud (IS)&lt;br /&gt;
* 13 oct     14h-17h	F319, cours angular (SCB) +(TP F204)&lt;br /&gt;
* 20 oct 	  9h-12h		TP F215,  point systeme (NDP) et  TD F114 audit Agile (VL)&lt;br /&gt;
* 20 oct     14h-17h 	TD F319/TP F204, cours angular (SCB)&lt;br /&gt;
* 27 oct     9h-12h 		TP F215/TD F114, point système  (SCB, NDP)&lt;br /&gt;
* 27 oct	  14h-17h 	TD F204,  cours Agile (VL) &lt;br /&gt;
* 10 nov    9h-12h		TD F114 audit2 Agile (VL)&lt;br /&gt;
* 10 nov    14h-17h 	TP F204/TD F319 point système (SCB, IS)&lt;br /&gt;
* 17 nov	  9h-12h		TP F215/TD F114 point système (SCB, NDP).&lt;br /&gt;
* 17 nov    14h-17		TDF319 cours ergonomie des IHM + Libre service (TP F204)&lt;br /&gt;
* 24 nov   9h-12h 	        TP F215/TD F114, Libre service&lt;br /&gt;
* 24 nov   14h-17h		TP F204/TD F319 Point système Cl&amp;amp;Alt (IS).&lt;br /&gt;
* 01 dec   9h-12h	        Libre Service&lt;br /&gt;
* 01 dec   14h-17h 		TP F204/TD 319 point systeme (SCB, IS, NDP)&lt;br /&gt;
* 08 dec   9h-12h 		Libre Service&lt;br /&gt;
* 08 dec  14-17h		TP F204 audit Agile (VL) et point système (IS) &lt;br /&gt;
* 15 dec   9h-12h		TP F215/TD F114 libre service&lt;br /&gt;
* 15 dec   14h-17h  	TP F204/TD F319 point system (SCB)&lt;br /&gt;
* 18 dec-22 dec		semaine bloquée libre service&lt;br /&gt;
&lt;br /&gt;
Le 22/12 soutenances tte la  journée F215/F216&lt;br /&gt;
&lt;br /&gt;
==Groupes==&lt;br /&gt;
===M2PGI Apprenti===&lt;br /&gt;
&lt;br /&gt;
===M2PGI Classique===&lt;br /&gt;
Consigne pour la constitution des groupes : Les étudiants ayant choisis l&#039;option multimobile doivent se mettre ensemble. Ils doivent constituer des groupes de 4/5 afin d&#039;avoir en tout 4 groupes (de M2 PGI classiques)&lt;br /&gt;
&lt;br /&gt;
==Soutenance==&lt;br /&gt;
===M2PGI Apprenti===&lt;br /&gt;
&lt;br /&gt;
===M2PGI Classique===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
IMPERATIF&lt;br /&gt;
* le projet doit être (MUST) géré selon la méthode Scrum : le Scrum Master devra présenter le déroulement du projet.&lt;br /&gt;
* le serveur JavaEE doit être (MUST) hébergé sur une instance de VM.&lt;br /&gt;
* un rapport de charge (benchmark) doit être (MUST) fourni : les outils JMeter ou Clif peuvent être utilisés.&lt;br /&gt;
* un rapport sur les métriques logicielles doit être (MUST) fourni : l&#039;outil Sonar peut être utilisé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&lt;br /&gt;
* Respectez l&#039;ordre établi&lt;br /&gt;
* Faites attention au temps. Vous disposez de 45 minutes par soutenance pour : votre présentation, la démo et les questions&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2017-2018.pdf]]&lt;br /&gt;
* Annexe cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Squelette du projet==&lt;br /&gt;
[http://dl.dropbox.com/u/66952950/ecom-maven.zip ecom-maven.zip] Inaccessible&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://wiki.easybeans.org/xwiki/bin/view/Main/Documentation Documentation Easybeans (conteneur EJB3 utilis&amp;amp;eacute; par Jonas)]&lt;br /&gt;
* [http://docs.oracle.com/javaee/6/tutorial/doc/ Tutorial JavaEE 6 ]&lt;br /&gt;
* [http://netbeans.org/kb/67/javaee/ejb30.html Tutorial NetBean et JEE ]&lt;br /&gt;
* [http://docs.oracle.com/javaee/6/api/ API JavaEE 6]&lt;br /&gt;
* [https://java.net/projects/javaee-spec/pages/Home Sp&amp;amp;eacute;cifications JavaEE 6]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* [http://jonas.ow2.org/JONAS_5_1_2/doc/doc-en/html/getting_started_guide.html#id1316973 Glossaire]&lt;br /&gt;
* [http://www.easybeans.net/xwiki/bin/download/Main/Documentation/ejb3-annotations.pdf Aide m&amp;amp;eacute;moire pour les annotations EJB3 ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
* Documentation et Training Kit sur Windows Azure : http://www.microsoft.com/en-us/download/details.aspx?id=8396&lt;br /&gt;
* Documentation de [http://roboconf.net/en Roboconf]&lt;br /&gt;
** Exemple avec LAMP http://roboconf.net/en/user-guide/lamp-example-part-1.html&lt;br /&gt;
http://proton.inrialpes.fr/~depalma/ecom/liens/liens.html&lt;br /&gt;
* Questionnaire pour site web : [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
* Questionnaire SUS (évaluation satisfaction) : [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Quelques livres===&lt;br /&gt;
REMARQUE: les livres sur JavaEE se periment très vite avec l&#039;évolution de la spécification&lt;br /&gt;
* Java EE6 Cookbook for securing, tuning, and extending enterprise applications: http://www.packtpub.com/java-ee6-securing-tuning-extending-enterprise-applications-cookbook/book&lt;br /&gt;
* Holly Cummins and Timothy Ward, Enterprise OSGi in Action, March, 2013, 400 pages, ISBN: 9781617290138, http://www.manning.com/cummins/ ([http://www.manning.com/cummins/EOSGI_sample_ch02.pdf chapitre 2], [http://www.manning.com/cummins/EOSGI_sample_ch10.pdf chapitre 10])&lt;br /&gt;
* Debu Panda, Reza Rahman, Derek Lane, EJB 3 in Action, Pub Mannings, 2007, http://www.manning.com/panda/&lt;br /&gt;
* Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan, EJB 3 in Action, Second Edition, Pub Mannings, 2011, http://www.manning.com/panda2/&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-M2PGI&amp;diff=37839</id>
		<title>ECOM-M2PGI</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-M2PGI&amp;diff=37839"/>
		<updated>2017-12-15T08:23:29Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Consignes spécifiques pour les soutenances IHM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application de commerce électronique. [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Étapes du projet=&lt;br /&gt;
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). &lt;br /&gt;
&lt;br /&gt;
==Conduite de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Il est préconisé d&#039;utiliser la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe.&lt;br /&gt;
&lt;br /&gt;
===Critères d&#039;évaluation===&lt;br /&gt;
La conduite du projet sera principalement évaluée en fonction des critères suivants :&lt;br /&gt;
* vous devez choisir un Scrum Master (unique ou tournant) : vous devez justifier votre choix&lt;br /&gt;
* durée du sprint (idem : vous devez justifier votre choix)&lt;br /&gt;
Sur ces 2 premiers critères, vous n&#039;en changez pas !!!&lt;br /&gt;
&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à créer un wiki qui regroupera l&#039;ensemble de vos documentations. Cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
Un point de bonus pour ceux qui réussiront à mettre en place des &amp;quot;poker planning&amp;quot;.&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
==Partie IHM==&lt;br /&gt;
&lt;br /&gt;
===Etapes et documents demandés===&lt;br /&gt;
Le détail sur l&#039;organisation et l&#039;évaluation du travail concernant les spécifications du site sera communiqué lors des premières séances de cours. Liste des Livrables et date de rendu pour les M2PGI Alternants :&lt;br /&gt;
&lt;br /&gt;
* Livrable 1 : par email, membres du groupe et brève description du sujet (un seul groupe OK)&lt;br /&gt;
&lt;br /&gt;
====[[Audit 1 :]]====&lt;br /&gt;
* L2.1 : Description des profils&lt;br /&gt;
* L2.2 : Questionnaire profils (OPT-ALT)&lt;br /&gt;
* L3.1 : Scénarios&lt;br /&gt;
* L3.2 : Analyse de la concurrence (OPT-ALT)&lt;br /&gt;
* L3.3 : Questionnaire sur l&#039;utilisation (OPT-ALT)&lt;br /&gt;
* L4 : Modèles de tâches (Audit 2 pour ALT)&lt;br /&gt;
* L5 : Fonctionnalités&lt;br /&gt;
* L6.1 : Objectifs pour chaque version (priorités de développement)&lt;br /&gt;
&lt;br /&gt;
====[[Audit 2 :]]====&lt;br /&gt;
* Mise à jour de L2 à L6.1&lt;br /&gt;
* L7.1 : Architecture (OPT-ALT)&lt;br /&gt;
* L7.2 : Base de données (OPT-ALT)&lt;br /&gt;
* L7.3 : IHM Abstraite&lt;br /&gt;
* L7.4 : Maquettes&lt;br /&gt;
* L6.2 : Objectifs pour les versions suivantes&lt;br /&gt;
* L8 : Démo de V0&lt;br /&gt;
&lt;br /&gt;
====[[Audit 3 (Soutenances) :]]====&lt;br /&gt;
* Mise à jour de L7.3 (correction des erreurs)&lt;br /&gt;
* L9 : Rapport d&#039;évaluation experte (imprimé pour la soutenance)&lt;br /&gt;
* L10 : Démonstration finale&lt;br /&gt;
* L11 : Diapos de votre présentation (version numérique à laquelle l&#039;enseignant a accès au moment de votre passage)&lt;br /&gt;
&lt;br /&gt;
OPT signifie que le livrable est optionnel soit parce qu&#039;il ne s&#039;applique pas à tous les groupes, soit parce qu&#039;il ne peut qu&#039;apporter une plus value à votre projet (points en plus mais pas en moins au moment de l&#039;attribution de la note).&lt;br /&gt;
Lorsque ce n&#039;est pas précisé, c&#039;est à vous de choisir le mode présentation (écrit, schéma...) des informations du livrable&lt;br /&gt;
&lt;br /&gt;
===Critères d&#039;évaluation===&lt;br /&gt;
La partie IHM du projet sera principalement évaluée en fonction des critères suivants : &lt;br /&gt;
* Conformité de l&#039;IHM concrète et abstraite avec le modèle de tâches &lt;br /&gt;
* Couverture fonctionnelle de l&#039;application et robustesse au regard des priorités que vous avez retenues &lt;br /&gt;
* Qualité ergonomique au regard des principes vus en cours &lt;br /&gt;
* Rigueur de la démarche&lt;br /&gt;
&lt;br /&gt;
La note est obtenue par l&#039;évaluation tout au long du projet elle est composée de :&lt;br /&gt;
* Les besoins (3 pts) : informations sur  les besoins que vous allez prendre en compte (livrables et audit 1)&lt;br /&gt;
* La conception (5 pts) : proposition de solution pour répondre aux besoins (livrables et audit 2)&lt;br /&gt;
* L&#039;évaluation (3 pts) : évaluation de votre (ou vos) solution(s) (livrable et soutenance finale)&lt;br /&gt;
* Présentations (3 pts) : qualité des présentations (documents, email et slides de soutenance finale)&lt;br /&gt;
* Développement (6 pts) : qualité et quantité du code (démo et code)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les notes des membres du groupe peuvent être différentes en fonction du travail fourni et constaté par l&#039;enseignant.&lt;br /&gt;
&lt;br /&gt;
==Partie Système==&lt;br /&gt;
La partie Système est axée sur deux étapes successives. &lt;br /&gt;
===Première étape===&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;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).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
À ce stade, l&#039;application est seulement accessible par l&#039;intermédiaire d&#039;un &amp;quot;client lourd&amp;quot; (programme java offrant une console en mode texte). En particulier, il n&#039;est pas demandé, pour cette première étape, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux interfaces (administrateur et consommateur) et exécuter les requêtes avec des garanties transactionnelles. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une présentation/démonstration du prototype V1 sera réalisée à la fin de l&#039;étape n°1. &lt;br /&gt;
===Deuxième étape===&lt;br /&gt;
La seconde étape consiste à compléter le premier prototype avec les objectifs suivants : &lt;br /&gt;
* ajout des beans nécessaires pour couvrir l&#039;ensemble des spécifications fonctionnelles ; &lt;br /&gt;
* développement d&#039;une interface Web basée sur le modèle MVC ; &lt;br /&gt;
* rédaction des documents demandés (voir ci-dessous) ; &lt;br /&gt;
* 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 ; &lt;br /&gt;
* ajout éventuel de fonctionnalités non prioritaires.&lt;br /&gt;
 &lt;br /&gt;
Une présentation d&#039;une mini-maquette d&#039;interface web aura lieu au milieu de l&#039;étape n°2. &lt;br /&gt;
&lt;br /&gt;
Remarque : Aucune des phases du projet ne nécessite le développement d&#039;un client lourd en mode graphique (SWT ...). &lt;br /&gt;
===Documents demandés===&lt;br /&gt;
Deux rapports doivent être rédigés pour la partie Système : un document de conception système et un document d&#039;évaluation système.&lt;br /&gt;
&lt;br /&gt;
====Document de conception système====&lt;br /&gt;
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&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation JEE : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;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.&lt;br /&gt;
&lt;br /&gt;
====Document d&#039;évaluation système====&lt;br /&gt;
&lt;br /&gt;
Le rapport final système du projet ECOM a pour but de préciser l’état d’avancement de votre application ECOM.&lt;br /&gt;
&lt;br /&gt;
Le rapport final système doit préciser : &lt;br /&gt;
* L’état de chaque composant : non réalisé, réalisé, réalisé et validé &lt;br /&gt;
* Les fonctions réalisées, réalisées et testées, et celles restant à réaliser &lt;br /&gt;
* Les propriétés non fonctionnelles garanties par votre réalisation, et celles restant à considérer pour finaliser votre application &lt;br /&gt;
* Le temps consacré à la conception système &lt;br /&gt;
* Le temps consacré au développement système &lt;br /&gt;
* Les principales difficultés rencontrées &lt;br /&gt;
===Critères d&#039;évaluation===&lt;br /&gt;
La partie système du projet sera principalement évaluée en fonction des critères suivants : &lt;br /&gt;
* Conformité aux spécifications de l&#039;application et aux consignes données dans le cadre du projet &lt;br /&gt;
* Respect des échéances pour les différentes étapes du projet (y compris pour les prototypes intermédiaires et les documents) &lt;br /&gt;
* Qualité de l&#039;architecture de l&#039;application &lt;br /&gt;
* Qualité et robustesse du code applicatif &lt;br /&gt;
* Compréhension des principaux concepts de la technologie JEE &lt;br /&gt;
* Rigueur de la démarche de conception &lt;br /&gt;
* Qualité des présentations/soutenances &lt;br /&gt;
En complément, les aspects suivants seront également considérés : &lt;br /&gt;
* Méthodologie de test &lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud (Azure) avec [http://roboconf.net/ Roboconf] ([http://roboconf.net/en/user-guide/lamp-example-part-1.html voir l&#039;exemple avec LAMP])&lt;br /&gt;
* Préparation d&#039;images de VMs avec [[Kameleon]]&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]] ou OW2 CLIF) &lt;br /&gt;
* Supervision du système déployé avec des sondes [[Nagios]] ou [[Shinken]] conditionnées dans les VMs à déployer.&lt;br /&gt;
* Utilisation (optionnelle) de technologies/APIs/frameworks avancés&lt;br /&gt;
&lt;br /&gt;
==Consignes pour la soutenance==&lt;br /&gt;
===Consignes spécifiques pour les soutenances IHM===&lt;br /&gt;
Salle : F114&lt;br /&gt;
Durée totale : 30 minutes&lt;br /&gt;
* tous les livrables doivent être consultable par l&#039;enseignant (en ligne ou ayant été préalablement envoyés)&lt;br /&gt;
* 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 &lt;br /&gt;
* arrivez avec l&#039;application démarée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* prévoyez 15 minutes de questions lors de votre passage&lt;br /&gt;
&lt;br /&gt;
Ordre de passage (22/12)&lt;br /&gt;
* 8h Groupe 3&lt;br /&gt;
* 8h30 Groupe 4 &lt;br /&gt;
* 9h Groupe 6 &lt;br /&gt;
* 9h30 Groupe 1 &lt;br /&gt;
* 10h Groupe 7&lt;br /&gt;
* 10h30 Groupe 2 &lt;br /&gt;
* 11h Groupe 5&lt;br /&gt;
&lt;br /&gt;
===Consignes spécifiques pour les soutenances Système===&lt;br /&gt;
* Apportez un exemplaire du dossier d&#039;évaluation système (déposé la veille sur Moodle) lors de la soutenance. Il n&#039;est pas nécessaire d&#039;apporter un exemplaire du dossier de conception système.&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure avec le service développé.&lt;br /&gt;
* Prévovez environ 30 minutes pour la présentation/démo/questions. Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances Windows Azure.&lt;br /&gt;
* 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.&lt;br /&gt;
* Déposez immédiatement après la soutenance (et en aucun cas après le 20 décembre) l&#039;archive sur Moodle.&lt;br /&gt;
* le rapport de charge (benchmark) doit être (MUST) fourni dans la documentation.&lt;br /&gt;
* le rapport sur les métriques logicielles doit être (MUST) fourni dans la documentation.&lt;br /&gt;
&lt;br /&gt;
=Organisation 2017-2018=&lt;br /&gt;
&lt;br /&gt;
==Planning==&lt;br /&gt;
===M2PGI (Alternant)===&lt;br /&gt;
&#039;&#039;&#039;Equipe pédagogique:&#039;&#039;&#039; Noël de Palma (NdP), Vincent Lesne (VL), Sybille Caffiau (SC), Sebastien Chassand-Barrioz (SCB), Ibrahim Safiedinne (FR)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dates Importantes:&#039;&#039;&#039;&lt;br /&gt;
*Soutenances (IHM + système) : 9h-17h, le 27 septembre&lt;br /&gt;
*Remise du dossier de conception système :    le 27 septembre (lors de votre passage)&lt;br /&gt;
*Remise du dossier d&#039;évaluation système :    le 27 septembre (lors de votre passage)&lt;br /&gt;
&lt;br /&gt;
*01 sept 09h-12h    	F022, F319, Boot Projet/ JEE (NDP)&lt;br /&gt;
*01 sept 14h-17h		F319, Boot Projet/ JEE (NDP)&lt;br /&gt;
*04 sept 09h-12h   	F118, cours Agile (VL) &lt;br /&gt;
*04 sept 14h-17h		F118, cours IHM (SC)  &lt;br /&gt;
*05 sept 09h-12h   	F118, cours angular (SCB) (+TP F217)&lt;br /&gt;
*05 sept 14h-17h   	F118, cours angular (SCB) (+TP F217)&lt;br /&gt;
*06 sept 09h-12h 		F118, cours Agile (VL)&lt;br /&gt;
*06 sept  14h-17h		F217, point Syst. (NDP)&lt;br /&gt;
*07 sept 09h-12h		Libre service&lt;br /&gt;
*07 sept 14h-17h		F118, cours Cloud (IS) &lt;br /&gt;
*08 sept 09h-12h		F201, Point Syst. (SCB)  &lt;br /&gt;
*08 sept 14h-17h		F201, audit agile (VL)&lt;br /&gt;
*11 sept 09h-12h		Libre service&lt;br /&gt;
*11 sept 14h-17h		F217, point Syst. (IS)&lt;br /&gt;
*12 sept 09h-12h		Libre Service&lt;br /&gt;
*12 sept 14h-17h		Libre Service&lt;br /&gt;
*13 sept 09h-12h		Libre Service		&lt;br /&gt;
*13 sept 14h-17h		F217, point Syst. (NDP) &lt;br /&gt;
*14 sept 09h-12h		Libre Service&lt;br /&gt;
*14 sept 14h-17h		Libre Service&lt;br /&gt;
*15 sept 09h-12h		F214, point Syst. (SCB) &lt;br /&gt;
*15 sept 14h-17h		F201, audit agile (VL)&lt;br /&gt;
*18 sept 09h-12h 		Libre Service&lt;br /&gt;
*18 sept 14h-17h		F211, point Syst. (IS/NDP)&lt;br /&gt;
*19 sept 09h-12h		Libre Service&lt;br /&gt;
*19 sept 14h-17h		Libre Service		&lt;br /&gt;
*20 sept 09h-12h		F217 point Syst (IS) &lt;br /&gt;
*20 sept 14h-17h		Libre Service&lt;br /&gt;
*21 sept 09h-12h		Libre Service&lt;br /&gt;
*21 sept 14h-17h		Libre Service&lt;br /&gt;
*22 sept 09h-12h		Libre Service&lt;br /&gt;
*22 sept 14h-17h		F211, point Syst. (SCB) + audit agile (VL)&lt;br /&gt;
*27 sept 09h-12h		Soutenances&lt;br /&gt;
*27 sept 14h-17h		Soutenances&lt;br /&gt;
&lt;br /&gt;
===M2PGI (Classique)===&lt;br /&gt;
&#039;&#039;&#039;Equipe pédagogique:&#039;&#039;&#039; Noël de Palma (NdP), Vincent Lesne (VL), Sybille Caffiau (SC), Sebastien Chassand-Barrioz (SCB), Ibrahim Safiedinne (FR)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dates Importantes:&#039;&#039;&#039;&lt;br /&gt;
Vendredi 29 sept. : Début des cours&lt;br /&gt;
&lt;br /&gt;
* 29 sept  9h-12h   	F114, Boot Projet/ JEE (NDP) &lt;br /&gt;
* 29 sept  14h-17h 	F319, point systeme (NDP)&lt;br /&gt;
* 06 oct    09h-12h    	F114, cours Agile (VL)&lt;br /&gt;
* 06 oct    14h-17h   	F319, cours IHM (SC)&lt;br /&gt;
* 13 oct     9h-12h 		F215,  cours Cloud (IS)&lt;br /&gt;
* 13 oct     14h-17h	F319, cours angular (SCB) +(TP F204)&lt;br /&gt;
* 20 oct 	  9h-12h		TP F215,  point systeme (NDP) et  TD F114 audit Agile (VL)&lt;br /&gt;
* 20 oct     14h-17h 	TD F319/TP F204, cours angular (SCB)&lt;br /&gt;
* 27 oct     9h-12h 		TP F215/TD F114, point système  (SCB, NDP)&lt;br /&gt;
* 27 oct	  14h-17h 	TD F204,  cours Agile (VL) &lt;br /&gt;
* 10 nov    9h-12h		TD F114 audit2 Agile (VL)&lt;br /&gt;
* 10 nov    14h-17h 	TP F204/TD F319 point système (SCB, IS)&lt;br /&gt;
* 17 nov	  9h-12h		TP F215/TD F114 point système (SCB, NDP).&lt;br /&gt;
* 17 nov    14h-17		TDF319 cours ergonomie des IHM + Libre service (TP F204)&lt;br /&gt;
* 24 nov   9h-12h 	        TP F215/TD F114, Libre service&lt;br /&gt;
* 24 nov   14h-17h		TP F204/TD F319 Point système Cl&amp;amp;Alt (IS).&lt;br /&gt;
* 01 dec   9h-12h	        Libre Service&lt;br /&gt;
* 01 dec   14h-17h 		TP F204/TD 319 point systeme (SCB, IS, NDP)&lt;br /&gt;
* 08 dec   9h-12h 		Libre Service&lt;br /&gt;
* 08 dec  14-17h		TP F204 audit Agile (VL) et point système (IS) &lt;br /&gt;
* 15 dec   9h-12h		TP F215/TD F114 libre service&lt;br /&gt;
* 15 dec   14h-17h  	TP F204/TD F319 point system (SCB)&lt;br /&gt;
* 18 dec-22 dec		semaine bloquée libre service&lt;br /&gt;
&lt;br /&gt;
Le 22/12 soutenances tte la  journée F215/F216&lt;br /&gt;
&lt;br /&gt;
==Groupes==&lt;br /&gt;
===M2PGI Apprenti===&lt;br /&gt;
&lt;br /&gt;
===M2PGI Classique===&lt;br /&gt;
Consigne pour la constitution des groupes : Les étudiants ayant choisis l&#039;option multimobile doivent se mettre ensemble. Ils doivent constituer des groupes de 4/5 afin d&#039;avoir en tout 4 groupes (de M2 PGI classiques)&lt;br /&gt;
&lt;br /&gt;
==Soutenance==&lt;br /&gt;
===M2PGI Apprenti===&lt;br /&gt;
&lt;br /&gt;
===M2PGI Classique===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
IMPERATIF&lt;br /&gt;
* le projet doit être (MUST) géré selon la méthode Scrum : le Scrum Master devra présenter le déroulement du projet.&lt;br /&gt;
* le serveur JavaEE doit être (MUST) hébergé sur une instance de VM.&lt;br /&gt;
* un rapport de charge (benchmark) doit être (MUST) fourni : les outils JMeter ou Clif peuvent être utilisés.&lt;br /&gt;
* un rapport sur les métriques logicielles doit être (MUST) fourni : l&#039;outil Sonar peut être utilisé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&lt;br /&gt;
* Respectez l&#039;ordre établi&lt;br /&gt;
* Faites attention au temps. Vous disposez de 45 minutes par soutenance pour : votre présentation, la démo et les questions&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2017-2018.pdf]]&lt;br /&gt;
* Annexe cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Squelette du projet==&lt;br /&gt;
[http://dl.dropbox.com/u/66952950/ecom-maven.zip ecom-maven.zip] Inaccessible&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://wiki.easybeans.org/xwiki/bin/view/Main/Documentation Documentation Easybeans (conteneur EJB3 utilis&amp;amp;eacute; par Jonas)]&lt;br /&gt;
* [http://docs.oracle.com/javaee/6/tutorial/doc/ Tutorial JavaEE 6 ]&lt;br /&gt;
* [http://netbeans.org/kb/67/javaee/ejb30.html Tutorial NetBean et JEE ]&lt;br /&gt;
* [http://docs.oracle.com/javaee/6/api/ API JavaEE 6]&lt;br /&gt;
* [https://java.net/projects/javaee-spec/pages/Home Sp&amp;amp;eacute;cifications JavaEE 6]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* [http://jonas.ow2.org/JONAS_5_1_2/doc/doc-en/html/getting_started_guide.html#id1316973 Glossaire]&lt;br /&gt;
* [http://www.easybeans.net/xwiki/bin/download/Main/Documentation/ejb3-annotations.pdf Aide m&amp;amp;eacute;moire pour les annotations EJB3 ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
* Documentation et Training Kit sur Windows Azure : http://www.microsoft.com/en-us/download/details.aspx?id=8396&lt;br /&gt;
* Documentation de [http://roboconf.net/en Roboconf]&lt;br /&gt;
** Exemple avec LAMP http://roboconf.net/en/user-guide/lamp-example-part-1.html&lt;br /&gt;
http://proton.inrialpes.fr/~depalma/ecom/liens/liens.html&lt;br /&gt;
* Questionnaire pour site web : [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
* Questionnaire SUS (évaluation satisfaction) : [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Quelques livres===&lt;br /&gt;
REMARQUE: les livres sur JavaEE se periment très vite avec l&#039;évolution de la spécification&lt;br /&gt;
* Java EE6 Cookbook for securing, tuning, and extending enterprise applications: http://www.packtpub.com/java-ee6-securing-tuning-extending-enterprise-applications-cookbook/book&lt;br /&gt;
* Holly Cummins and Timothy Ward, Enterprise OSGi in Action, March, 2013, 400 pages, ISBN: 9781617290138, http://www.manning.com/cummins/ ([http://www.manning.com/cummins/EOSGI_sample_ch02.pdf chapitre 2], [http://www.manning.com/cummins/EOSGI_sample_ch10.pdf chapitre 10])&lt;br /&gt;
* Debu Panda, Reza Rahman, Derek Lane, EJB 3 in Action, Pub Mannings, 2007, http://www.manning.com/panda/&lt;br /&gt;
* Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan, EJB 3 in Action, Second Edition, Pub Mannings, 2011, http://www.manning.com/panda2/&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=37770</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=37770"/>
		<updated>2017-12-12T09:19:10Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Soutenance de fin de projet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* TR : Thomas Ropras (thomas.ropars@imag.fr)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-RICM 2017-2018===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 19/09 à 8h.&lt;br /&gt;
====Groupe 1  ====&lt;br /&gt;
*AMODRU-FAVIN Hugo&lt;br /&gt;
*CHAMBONNET Simon&lt;br /&gt;
*FU Qianqian&lt;br /&gt;
*GAMBRO Antoine&lt;br /&gt;
*RIVOAL Alice&lt;br /&gt;
[[ECOM RICM5 Groupe1 2017|Fiche de suivi]]&lt;br /&gt;
&lt;br /&gt;
====Groupe 2 ====&lt;br /&gt;
*ALLARD Estelle&lt;br /&gt;
*COCHINHO Louis&lt;br /&gt;
*DELISE Antoine&lt;br /&gt;
*GUERRY Lucas&lt;br /&gt;
*ROCHER Lambert&lt;br /&gt;
[[ECOM RICM5 Groupe2 2017|Fiche de suivi]]&lt;br /&gt;
&lt;br /&gt;
====Groupe 3 ====&lt;br /&gt;
*BECHER Hervé&lt;br /&gt;
*DALLE Oriane&lt;br /&gt;
*GEOURJON Anthony&lt;br /&gt;
*LACHARTRE Denis&lt;br /&gt;
*SAVARY Rémi&lt;br /&gt;
[[ECOM RICM5 Groupe3 2017|Fiche de suivi]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Groupe 4  ====&lt;br /&gt;
*BOISADAM Antoine&lt;br /&gt;
*DEREYMEZ Maxime&lt;br /&gt;
*LEMAIRE Timothée&lt;br /&gt;
*LESAGE Lucas&lt;br /&gt;
*ZENNOUCHE Douria&lt;br /&gt;
[[ECOM RICM5 Groupe4 2017|Fiche de suivi]]&lt;br /&gt;
&lt;br /&gt;
====Groupe 5 ====&lt;br /&gt;
*BONHOURE Gilles&lt;br /&gt;
*FERNANDES DE ALMEIDA Héloïse&lt;br /&gt;
*MARCHAND Charles&lt;br /&gt;
*MOREAU Gwenaël&lt;br /&gt;
*VIAL-GRELIER Aymeric&lt;br /&gt;
*ZEGAOUI Taquyeddine (arrivée début octobre)&lt;br /&gt;
[[ECOM RICM5 Groupe5 2017|Fiche de suivi]]&lt;br /&gt;
&lt;br /&gt;
====Groupe 6 ====&lt;br /&gt;
*AUBERTIN Alicia&lt;br /&gt;
*BROCHIER Aymeric&lt;br /&gt;
*NASSIK Ahmed Amine&lt;br /&gt;
*ODIEVRE Boris&lt;br /&gt;
*TURRIN Vincent&lt;br /&gt;
[[ECOM RICM5 Groupe6 2017|Fiche de suivi]]&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et TR).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 19/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2017.pdf|transparents]]), CM Outils de suivi de projet + JSP 3h00 [http://lig-membres.imag.fr/donsez/cours/http-ecom.pdf HTTP] &amp;amp; [[Media:RestfulServices.pdf|REST]] (DD) (F018)&lt;br /&gt;
* 19/09 15h45-18h30 : JavaEE [https://github.com/donsez/javaee7-angular-swagger-docker app JavaEE de démo]  [http://lig-membres.imag.fr/donsez/cours/javaee-ejb.pdf Cours JavaEE EJB](DD) Install [[JavaEE]] ([[Docker]] et [[Wildfly]]) Tutoriel EJB, Tutoriel Servlet/JSP/[[REST]]/WS/Filter/Docker ([[https://github.com/donsez/javaee7-angular-swagger-docker|lien]]) et [[JHipster]] pour le groupe &amp;quot;Gestion de courses sportives&amp;quot; (F202, F204). Vous pouvez générer le boilerplate de votre application avec des générateurs tel que http://www.generjee.com/.&lt;br /&gt;
&lt;br /&gt;
* 26/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P257)&lt;br /&gt;
* 26/09 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 03/10 8h00-12h15 : Travail en autonomie (F201,202)&lt;br /&gt;
* 03/10 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 10/10 8h00-12h15 : Audit 1 (F316) et travail en autonomie (F203)&lt;br /&gt;
* 10/10 15h45-18h30 :  Tests de robustesse (charges) (DD) (F203)&lt;br /&gt;
&lt;br /&gt;
* 17/10 8h00-12h15 : Travail en autonomie (F203, F217)&lt;br /&gt;
* 17/10 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 24/10 8h00-12h15 : Travail en autonomie (F203, F217)&lt;br /&gt;
* 24/10 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 07/11 8h00-12h15 : Soutenance 2 (F109) et travail en autonomie (F203)&lt;br /&gt;
* 07/11 15h45-18h30 :  Test utilisateur (SC) (F116)&lt;br /&gt;
&lt;br /&gt;
* 14/11 8h00-12h15 : Travail encadré (TR) (F216, F217)&lt;br /&gt;
* 14/11 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 28/11 8h00-12h15 : Travail encadré (TR) (F216, F217)&lt;br /&gt;
* 28/11 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 05/12 8h00-12h15 : Travail en autonomie (F202, F204)&lt;br /&gt;
* 05/12 15h45-18h30 :  Travail encadré (TR) (F216, F217)&lt;br /&gt;
&lt;br /&gt;
* 12/12 8h00-12h15 : Travail encadré (TR) (F216, F217)&lt;br /&gt;
&lt;br /&gt;
* 19/12 8h00-12h15 : Soutenances finales (F201, F217)&lt;br /&gt;
* 19/12 15h45-18h30 :  Soutenances finales (F201, F212)&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie JEE.&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]], le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 10 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 07 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 19 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
&lt;br /&gt;
===Soutenance 1 ===&lt;br /&gt;
*Salle : F316&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- groupe 6&lt;br /&gt;
&lt;br /&gt;
- groupe 3&lt;br /&gt;
&lt;br /&gt;
- groupe 1&lt;br /&gt;
&lt;br /&gt;
- groupe 2&lt;br /&gt;
&lt;br /&gt;
- groupe 4&lt;br /&gt;
&lt;br /&gt;
- groupe 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
&lt;br /&gt;
===Soutenance 2 ===&lt;br /&gt;
*Salle : F109&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL : point sur &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Beans (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- groupe 6 : 8h&lt;br /&gt;
&lt;br /&gt;
- groupe 1 : 8h30&lt;br /&gt;
&lt;br /&gt;
- groupe 5 : 9h&lt;br /&gt;
&lt;br /&gt;
- groupe 2 : 9h45&lt;br /&gt;
&lt;br /&gt;
- groupe 4 : 10h15&lt;br /&gt;
&lt;br /&gt;
- groupe 3 : 10h45&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : &lt;br /&gt;
* Durée totale : 30 min&lt;br /&gt;
* Utilisez des transparents pour présenter votre projet. Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
* une présentation globale du projet&lt;br /&gt;
* le processus de conception (illustré)&lt;br /&gt;
* la démonstration de votre application&lt;br /&gt;
* des évaluations&lt;br /&gt;
* le bilan (pédagogique ET du projet/individuel ET groupe)&lt;br /&gt;
* le temps consacré à la conception &lt;br /&gt;
* le temps consacré au développement &lt;br /&gt;
* les principales difficultés rencontrées&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* 8h : groupe 1&lt;br /&gt;
* 8h35 : groupe 3&lt;br /&gt;
* 9h10 : groupe 5&lt;br /&gt;
* 15h45 : groupe 4&lt;br /&gt;
* 16h20 : groupe 6&lt;br /&gt;
* 16h55 : groupe 2&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et TR pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Deux rapports doivent être rédigés pour la partie Système : un document de conception système et un document d&#039;évaluation système. Ces documents doivent être accessibles depuis le wiki (ils peuvent même être directement édités sur le wiki).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ajouter les livrables que vous jugez utiles pour présenter le travail que vous avez réalisé. Pour ces livrables : numérotez les &lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Chaque livrable est numéroté (détails du livrable ci-dessous) LX, sous une forme à respecter. Certains ont une date de rendu à respecter. Ci-dessous le résumé de ces contraintes :&lt;br /&gt;
*L2 : 09/10 minuit : Wiki&lt;br /&gt;
*L3 : 09/10 minuit : Wiki&lt;br /&gt;
*L4 : 06/11 minuit : Wiki&lt;br /&gt;
*L5 : ?&lt;br /&gt;
*L6 : 06/11 minuit : Wiki&lt;br /&gt;
*L7 : 09/10 minuit : Wiki&lt;br /&gt;
*L8 : en continu : Wiki&lt;br /&gt;
*L9 : en continu : Wiki&lt;br /&gt;
*L10 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L11 : 18/12 minuit : Lien sur Wiki&lt;br /&gt;
*L12 : 19/12 lors du passage&lt;br /&gt;
*L13 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L14 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L15 : 08/11 lors du passage &lt;br /&gt;
*L16 : 19/12 lors du passage &lt;br /&gt;
*L17 : 19/12 lors du passage : Tableaux complétés et imprimés&lt;br /&gt;
*L18 : 10/10 lors du passage&lt;br /&gt;
&lt;br /&gt;
===Contenu===&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
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&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation JEE : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;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.&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (waffle ou autre)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à créer un wiki qui regroupera l&#039;ensemble de vos documentations. Cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer une organisation github ou bitbucket. Ajouter les membres du projet eCOM à l&#039;organisation. Créer plusieurs projets pour les différents parties. Activer les watchs. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;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, annotations JAX-RS, [[Swagger]]). L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl, [[Swagger]] UI, jmeter, .... Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et consommateur) et exécuter certaines requêtes avec des garanties transactionnelles. Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]] pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, Oracle, HSQL ...) (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL, Oracle, HSQL ...) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via [[JMS]] et des EJBTimer (voir http://ecom.ow2.org/xwiki/bin/view/Main/fremail)&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS via [[JMS]] et des EJBTimer ([[ECOM/SMSProviders|fournisseurs SMS]])&lt;br /&gt;
&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec [[Apache Jackrabbit]] &lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Intégration de [[Memcached]]&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST.&lt;br /&gt;
** Utilisation de services tiers via leurs APIs (voir le catalogue de [[Mashape]])&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Gestion d&#039;un &#039;&#039;cloud&#039;&#039; privé avec [[OpenStack]] avec [[Fuel]]&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Kubernete]] ou [[Docker Swarm]]&lt;br /&gt;
** Conditionnement de l&#039;application mobile avec [[Apache Cordova]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers ([[AxiMAG]] par exemple).&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google)&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]], [[Gatling]], OW2 CLIF, BlazeMeter.com) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Telegraf]] + [[InfluxDB]] + [[Grafana]].&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Rolling update (Blue-Green Deployment) des composants (applications et intergiciels).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom (utiliser [https://hub.docker.com/_/glassfish/ Glassfish]).&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[CoreOS]] ou [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]],  [[Hawkular]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2017-2018.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [https://glassfish.java.net/docs/4.0/administration-guide.pdf Guide d&#039;administration de Glassfish 4]&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/tutorial/doc/ Tutorial JavaEE 7 ] ([https://svn.java.net/svn/javaeetutorial~svn/ sources des exemples])&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/api/ API JavaEE 7]&lt;br /&gt;
* [https://java.net/projects/javaee-spec/pages/Home  Java EE Platform Specification]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
* Documentation et Training Kit sur Windows Azure : http://www.microsoft.com/en-us/download/details.aspx?id=8396&lt;br /&gt;
* Documentation de [http://roboconf.net/en Roboconf]&lt;br /&gt;
** Exemple avec LAMP http://roboconf.net/en/user-guide/lamp-example-part-1.html&lt;br /&gt;
http://proton.inrialpes.fr/~depalma/ecom/liens/liens.html&lt;br /&gt;
* [[Bootstrap]]&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur JavaEE se periment très vite avec l&#039;évolution de la spécification&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* [http://www.apress.com/9781430246268 Antonio Goncalves, Beginning JavaEE 7, APress, 2013], ([https://github.com/agoncal/agoncal-book-javaee7 examples]  pour [[Glassfish]] 4)&lt;br /&gt;
* [https://www.packtpub.com/application-development/java-ee-7-developer-handbook Peter A. Pilgrim, Java EE 7 Developer Handbook, Packt, 2013, ISBN 139781849687942 ]&lt;br /&gt;
* [http://www.packtpub.com/java-ee6-securing-tuning-extending-enterprise-applications-cookbook/book Mick Knutson, Java EE6 Cookbook for securing, tuning, and extending enterprise applications, Packt Publishing, June 2012]&lt;br /&gt;
* Holly Cummins and Timothy Ward, Enterprise OSGi in Action, March, 2013, 400 pages, ISBN: 9781617290138, http://www.manning.com/cummins/ ([http://www.manning.com/cummins/EOSGI_sample_ch02.pdf chapitre 2], [http://www.manning.com/cummins/EOSGI_sample_ch10.pdf chapitre 10])&lt;br /&gt;
* [http://www.manning.com/panda2/ Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan, EJB 3 in Action, Second Edition, March 2014, ISBN: 9781935182993], ([http://www.manning.com/panda2/EJB3iA_2E_SourceCode.zip source code of examples])&lt;br /&gt;
* [http://shop.oreilly.com/product/9780596158033.do  Andrew Lee Rubinger, Bill Burke, Enterprise JavaBeans 3.1, 6th Edition, O&#039;Reilly Media, Final Release Date: September 2010, Pages]&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[AngularJS]]====&lt;br /&gt;
* Brad Green, Shyam Seshadri, AngularJS, Pub OReilly http://shop.oreilly.com/product/0636920028055.do ([https://github.com/shyamseshadri/angularjs-book source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=37769</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=37769"/>
		<updated>2017-12-12T09:18:40Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Soutenance de fin de projet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* TR : Thomas Ropras (thomas.ropars@imag.fr)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-RICM 2017-2018===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 19/09 à 8h.&lt;br /&gt;
====Groupe 1  ====&lt;br /&gt;
*AMODRU-FAVIN Hugo&lt;br /&gt;
*CHAMBONNET Simon&lt;br /&gt;
*FU Qianqian&lt;br /&gt;
*GAMBRO Antoine&lt;br /&gt;
*RIVOAL Alice&lt;br /&gt;
[[ECOM RICM5 Groupe1 2017|Fiche de suivi]]&lt;br /&gt;
&lt;br /&gt;
====Groupe 2 ====&lt;br /&gt;
*ALLARD Estelle&lt;br /&gt;
*COCHINHO Louis&lt;br /&gt;
*DELISE Antoine&lt;br /&gt;
*GUERRY Lucas&lt;br /&gt;
*ROCHER Lambert&lt;br /&gt;
[[ECOM RICM5 Groupe2 2017|Fiche de suivi]]&lt;br /&gt;
&lt;br /&gt;
====Groupe 3 ====&lt;br /&gt;
*BECHER Hervé&lt;br /&gt;
*DALLE Oriane&lt;br /&gt;
*GEOURJON Anthony&lt;br /&gt;
*LACHARTRE Denis&lt;br /&gt;
*SAVARY Rémi&lt;br /&gt;
[[ECOM RICM5 Groupe3 2017|Fiche de suivi]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Groupe 4  ====&lt;br /&gt;
*BOISADAM Antoine&lt;br /&gt;
*DEREYMEZ Maxime&lt;br /&gt;
*LEMAIRE Timothée&lt;br /&gt;
*LESAGE Lucas&lt;br /&gt;
*ZENNOUCHE Douria&lt;br /&gt;
[[ECOM RICM5 Groupe4 2017|Fiche de suivi]]&lt;br /&gt;
&lt;br /&gt;
====Groupe 5 ====&lt;br /&gt;
*BONHOURE Gilles&lt;br /&gt;
*FERNANDES DE ALMEIDA Héloïse&lt;br /&gt;
*MARCHAND Charles&lt;br /&gt;
*MOREAU Gwenaël&lt;br /&gt;
*VIAL-GRELIER Aymeric&lt;br /&gt;
*ZEGAOUI Taquyeddine (arrivée début octobre)&lt;br /&gt;
[[ECOM RICM5 Groupe5 2017|Fiche de suivi]]&lt;br /&gt;
&lt;br /&gt;
====Groupe 6 ====&lt;br /&gt;
*AUBERTIN Alicia&lt;br /&gt;
*BROCHIER Aymeric&lt;br /&gt;
*NASSIK Ahmed Amine&lt;br /&gt;
*ODIEVRE Boris&lt;br /&gt;
*TURRIN Vincent&lt;br /&gt;
[[ECOM RICM5 Groupe6 2017|Fiche de suivi]]&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et TR).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 19/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2017.pdf|transparents]]), CM Outils de suivi de projet + JSP 3h00 [http://lig-membres.imag.fr/donsez/cours/http-ecom.pdf HTTP] &amp;amp; [[Media:RestfulServices.pdf|REST]] (DD) (F018)&lt;br /&gt;
* 19/09 15h45-18h30 : JavaEE [https://github.com/donsez/javaee7-angular-swagger-docker app JavaEE de démo]  [http://lig-membres.imag.fr/donsez/cours/javaee-ejb.pdf Cours JavaEE EJB](DD) Install [[JavaEE]] ([[Docker]] et [[Wildfly]]) Tutoriel EJB, Tutoriel Servlet/JSP/[[REST]]/WS/Filter/Docker ([[https://github.com/donsez/javaee7-angular-swagger-docker|lien]]) et [[JHipster]] pour le groupe &amp;quot;Gestion de courses sportives&amp;quot; (F202, F204). Vous pouvez générer le boilerplate de votre application avec des générateurs tel que http://www.generjee.com/.&lt;br /&gt;
&lt;br /&gt;
* 26/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P257)&lt;br /&gt;
* 26/09 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 03/10 8h00-12h15 : Travail en autonomie (F201,202)&lt;br /&gt;
* 03/10 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 10/10 8h00-12h15 : Audit 1 (F316) et travail en autonomie (F203)&lt;br /&gt;
* 10/10 15h45-18h30 :  Tests de robustesse (charges) (DD) (F203)&lt;br /&gt;
&lt;br /&gt;
* 17/10 8h00-12h15 : Travail en autonomie (F203, F217)&lt;br /&gt;
* 17/10 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 24/10 8h00-12h15 : Travail en autonomie (F203, F217)&lt;br /&gt;
* 24/10 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 07/11 8h00-12h15 : Soutenance 2 (F109) et travail en autonomie (F203)&lt;br /&gt;
* 07/11 15h45-18h30 :  Test utilisateur (SC) (F116)&lt;br /&gt;
&lt;br /&gt;
* 14/11 8h00-12h15 : Travail encadré (TR) (F216, F217)&lt;br /&gt;
* 14/11 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 28/11 8h00-12h15 : Travail encadré (TR) (F216, F217)&lt;br /&gt;
* 28/11 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 05/12 8h00-12h15 : Travail en autonomie (F202, F204)&lt;br /&gt;
* 05/12 15h45-18h30 :  Travail encadré (TR) (F216, F217)&lt;br /&gt;
&lt;br /&gt;
* 12/12 8h00-12h15 : Travail encadré (TR) (F216, F217)&lt;br /&gt;
&lt;br /&gt;
* 19/12 8h00-12h15 : Soutenances finales (F201, F217)&lt;br /&gt;
* 19/12 15h45-18h30 :  Soutenances finales (F201, F212)&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie JEE.&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]], le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 10 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 07 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 19 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
&lt;br /&gt;
===Soutenance 1 ===&lt;br /&gt;
*Salle : F316&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- groupe 6&lt;br /&gt;
&lt;br /&gt;
- groupe 3&lt;br /&gt;
&lt;br /&gt;
- groupe 1&lt;br /&gt;
&lt;br /&gt;
- groupe 2&lt;br /&gt;
&lt;br /&gt;
- groupe 4&lt;br /&gt;
&lt;br /&gt;
- groupe 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
&lt;br /&gt;
===Soutenance 2 ===&lt;br /&gt;
*Salle : F109&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL : point sur &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Beans (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- groupe 6 : 8h&lt;br /&gt;
&lt;br /&gt;
- groupe 1 : 8h30&lt;br /&gt;
&lt;br /&gt;
- groupe 5 : 9h&lt;br /&gt;
&lt;br /&gt;
- groupe 2 : 9h45&lt;br /&gt;
&lt;br /&gt;
- groupe 4 : 10h15&lt;br /&gt;
&lt;br /&gt;
- groupe 3 : 10h45&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : &lt;br /&gt;
* Durée totale : 30 min&lt;br /&gt;
* Utilisez des transparents pour présenter votre projet. Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
* une présentation globale du projet&lt;br /&gt;
* le processus de conception (illustré)&lt;br /&gt;
* la démonstration de votre application&lt;br /&gt;
* des évaluations&lt;br /&gt;
* le bilan (pédagogique ET du projet/individuel ET groupe)&lt;br /&gt;
* le temps consacré à la conception &lt;br /&gt;
* le temps consacré au développement &lt;br /&gt;
* les principales difficultés rencontrées&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
- 8h : groupe 1&lt;br /&gt;
- 8h35 : groupe 3&lt;br /&gt;
- 9h10 : groupe 5&lt;br /&gt;
- 15h45 : groupe 4&lt;br /&gt;
- 16h20 : groupe 6&lt;br /&gt;
- 16h55 : groupe 2&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 30 minutes par soutenance pour : votre présentation et les questions. Au bout de 15 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et TR pour demande d&#039;accord du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Deux rapports doivent être rédigés pour la partie Système : un document de conception système et un document d&#039;évaluation système. Ces documents doivent être accessibles depuis le wiki (ils peuvent même être directement édités sur le wiki).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ajouter les livrables que vous jugez utiles pour présenter le travail que vous avez réalisé. Pour ces livrables : numérotez les &lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Chaque livrable est numéroté (détails du livrable ci-dessous) LX, sous une forme à respecter. Certains ont une date de rendu à respecter. Ci-dessous le résumé de ces contraintes :&lt;br /&gt;
*L2 : 09/10 minuit : Wiki&lt;br /&gt;
*L3 : 09/10 minuit : Wiki&lt;br /&gt;
*L4 : 06/11 minuit : Wiki&lt;br /&gt;
*L5 : ?&lt;br /&gt;
*L6 : 06/11 minuit : Wiki&lt;br /&gt;
*L7 : 09/10 minuit : Wiki&lt;br /&gt;
*L8 : en continu : Wiki&lt;br /&gt;
*L9 : en continu : Wiki&lt;br /&gt;
*L10 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L11 : 18/12 minuit : Lien sur Wiki&lt;br /&gt;
*L12 : 19/12 lors du passage&lt;br /&gt;
*L13 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L14 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L15 : 08/11 lors du passage &lt;br /&gt;
*L16 : 19/12 lors du passage &lt;br /&gt;
*L17 : 19/12 lors du passage : Tableaux complétés et imprimés&lt;br /&gt;
*L18 : 10/10 lors du passage&lt;br /&gt;
&lt;br /&gt;
===Contenu===&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
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&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation JEE : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;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.&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (waffle ou autre)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à créer un wiki qui regroupera l&#039;ensemble de vos documentations. Cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer une organisation github ou bitbucket. Ajouter les membres du projet eCOM à l&#039;organisation. Créer plusieurs projets pour les différents parties. Activer les watchs. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;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, annotations JAX-RS, [[Swagger]]). L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl, [[Swagger]] UI, jmeter, .... Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et consommateur) et exécuter certaines requêtes avec des garanties transactionnelles. Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]] pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, Oracle, HSQL ...) (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL, Oracle, HSQL ...) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via [[JMS]] et des EJBTimer (voir http://ecom.ow2.org/xwiki/bin/view/Main/fremail)&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS via [[JMS]] et des EJBTimer ([[ECOM/SMSProviders|fournisseurs SMS]])&lt;br /&gt;
&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec [[Apache Jackrabbit]] &lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Intégration de [[Memcached]]&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST.&lt;br /&gt;
** Utilisation de services tiers via leurs APIs (voir le catalogue de [[Mashape]])&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Gestion d&#039;un &#039;&#039;cloud&#039;&#039; privé avec [[OpenStack]] avec [[Fuel]]&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Kubernete]] ou [[Docker Swarm]]&lt;br /&gt;
** Conditionnement de l&#039;application mobile avec [[Apache Cordova]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers ([[AxiMAG]] par exemple).&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google)&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]], [[Gatling]], OW2 CLIF, BlazeMeter.com) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Telegraf]] + [[InfluxDB]] + [[Grafana]].&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Rolling update (Blue-Green Deployment) des composants (applications et intergiciels).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom (utiliser [https://hub.docker.com/_/glassfish/ Glassfish]).&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[CoreOS]] ou [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]],  [[Hawkular]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2017-2018.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [https://glassfish.java.net/docs/4.0/administration-guide.pdf Guide d&#039;administration de Glassfish 4]&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/tutorial/doc/ Tutorial JavaEE 7 ] ([https://svn.java.net/svn/javaeetutorial~svn/ sources des exemples])&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/api/ API JavaEE 7]&lt;br /&gt;
* [https://java.net/projects/javaee-spec/pages/Home  Java EE Platform Specification]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
* Documentation et Training Kit sur Windows Azure : http://www.microsoft.com/en-us/download/details.aspx?id=8396&lt;br /&gt;
* Documentation de [http://roboconf.net/en Roboconf]&lt;br /&gt;
** Exemple avec LAMP http://roboconf.net/en/user-guide/lamp-example-part-1.html&lt;br /&gt;
http://proton.inrialpes.fr/~depalma/ecom/liens/liens.html&lt;br /&gt;
* [[Bootstrap]]&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur JavaEE se periment très vite avec l&#039;évolution de la spécification&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* [http://www.apress.com/9781430246268 Antonio Goncalves, Beginning JavaEE 7, APress, 2013], ([https://github.com/agoncal/agoncal-book-javaee7 examples]  pour [[Glassfish]] 4)&lt;br /&gt;
* [https://www.packtpub.com/application-development/java-ee-7-developer-handbook Peter A. Pilgrim, Java EE 7 Developer Handbook, Packt, 2013, ISBN 139781849687942 ]&lt;br /&gt;
* [http://www.packtpub.com/java-ee6-securing-tuning-extending-enterprise-applications-cookbook/book Mick Knutson, Java EE6 Cookbook for securing, tuning, and extending enterprise applications, Packt Publishing, June 2012]&lt;br /&gt;
* Holly Cummins and Timothy Ward, Enterprise OSGi in Action, March, 2013, 400 pages, ISBN: 9781617290138, http://www.manning.com/cummins/ ([http://www.manning.com/cummins/EOSGI_sample_ch02.pdf chapitre 2], [http://www.manning.com/cummins/EOSGI_sample_ch10.pdf chapitre 10])&lt;br /&gt;
* [http://www.manning.com/panda2/ Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan, EJB 3 in Action, Second Edition, March 2014, ISBN: 9781935182993], ([http://www.manning.com/panda2/EJB3iA_2E_SourceCode.zip source code of examples])&lt;br /&gt;
* [http://shop.oreilly.com/product/9780596158033.do  Andrew Lee Rubinger, Bill Burke, Enterprise JavaBeans 3.1, 6th Edition, O&#039;Reilly Media, Final Release Date: September 2010, Pages]&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[AngularJS]]====&lt;br /&gt;
* Brad Green, Shyam Seshadri, AngularJS, Pub OReilly http://shop.oreilly.com/product/0636920028055.do ([https://github.com/shyamseshadri/angularjs-book source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-M2PGI&amp;diff=37221</id>
		<title>ECOM-M2PGI</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-M2PGI&amp;diff=37221"/>
		<updated>2017-11-10T09:05:14Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* M2PGI (Classique) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application de commerce électronique. [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Étapes du projet=&lt;br /&gt;
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). &lt;br /&gt;
&lt;br /&gt;
==Conduite de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Il est préconisé d&#039;utiliser la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe.&lt;br /&gt;
&lt;br /&gt;
===Critères d&#039;évaluation===&lt;br /&gt;
La conduite du projet sera principalement évaluée en fonction des critères suivants :&lt;br /&gt;
* vous devez choisir un Scrum Master (unique ou tournant) : vous devez justifier votre choix&lt;br /&gt;
* durée du sprint (idem : vous devez justifier votre choix)&lt;br /&gt;
Sur ces 2 premiers critères, vous n&#039;en changez pas !!!&lt;br /&gt;
&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à créer un wiki qui regroupera l&#039;ensemble de vos documentations. Cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
Un point de bonus pour ceux qui réussiront à mettre en place des &amp;quot;poker planning&amp;quot;.&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
==Partie IHM==&lt;br /&gt;
&lt;br /&gt;
===Etapes et documents demandés===&lt;br /&gt;
Le détail sur l&#039;organisation et l&#039;évaluation du travail concernant les spécifications du site sera communiqué lors des premières séances de cours. Liste des Livrables et date de rendu pour les M2PGI Alternants :&lt;br /&gt;
&lt;br /&gt;
* Livrable 1 : par email, membres du groupe et brève description du sujet (un seul groupe OK)&lt;br /&gt;
&lt;br /&gt;
====[[Audit 1 :]]====&lt;br /&gt;
* L2.1 : Description des profils&lt;br /&gt;
* L2.2 : Questionnaire profils (OPT-ALT)&lt;br /&gt;
* L3.1 : Scénarios&lt;br /&gt;
* L3.2 : Analyse de la concurrence (OPT-ALT)&lt;br /&gt;
* L3.3 : Questionnaire sur l&#039;utilisation (OPT-ALT)&lt;br /&gt;
* L4 : Modèles de tâches (Audit 2 pour ALT)&lt;br /&gt;
* L5 : Fonctionnalités&lt;br /&gt;
* L6.1 : Objectifs pour chaque version (priorités de développement)&lt;br /&gt;
&lt;br /&gt;
====[[Audit 2 :]]====&lt;br /&gt;
* Mise à jour de L2 à L6.1&lt;br /&gt;
* L7.1 : Architecture (OPT-ALT)&lt;br /&gt;
* L7.2 : Base de données (OPT-ALT)&lt;br /&gt;
* L7.3 : IHM Abstraite&lt;br /&gt;
* L7.4 : Maquettes&lt;br /&gt;
* L6.2 : Objectifs pour les versions suivantes&lt;br /&gt;
* L8 : Démo de V0&lt;br /&gt;
&lt;br /&gt;
====[[Audit 3 (Soutenances) :]]====&lt;br /&gt;
* Mise à jour de L7.3 (correction des erreurs)&lt;br /&gt;
* L9 : Rapport d&#039;évaluation experte (imprimé pour la soutenance)&lt;br /&gt;
* L10 : Démonstration finale&lt;br /&gt;
* L11 : Diapos de votre présentation (version numérique à laquelle l&#039;enseignant a accès au moment de votre passage)&lt;br /&gt;
&lt;br /&gt;
OPT signifie que le livrable est optionnel soit parce qu&#039;il ne s&#039;applique pas à tous les groupes, soit parce qu&#039;il ne peut qu&#039;apporter une plus value à votre projet (points en plus mais pas en moins au moment de l&#039;attribution de la note).&lt;br /&gt;
Lorsque ce n&#039;est pas précisé, c&#039;est à vous de choisir le mode présentation (écrit, schéma...) des informations du livrable&lt;br /&gt;
&lt;br /&gt;
===Critères d&#039;évaluation===&lt;br /&gt;
La partie IHM du projet sera principalement évaluée en fonction des critères suivants : &lt;br /&gt;
* Conformité de l&#039;IHM concrète et abstraite avec le modèle de tâches &lt;br /&gt;
* Couverture fonctionnelle de l&#039;application et robustesse au regard des priorités que vous avez retenues &lt;br /&gt;
* Qualité ergonomique au regard des principes vus en cours &lt;br /&gt;
* Rigueur de la démarche&lt;br /&gt;
&lt;br /&gt;
La note est obtenue par l&#039;évaluation tout au long du projet elle est composée de :&lt;br /&gt;
* Les besoins (3 pts) : informations sur  les besoins que vous allez prendre en compte (livrables et audit 1)&lt;br /&gt;
* La conception (5 pts) : proposition de solution pour répondre aux besoins (livrables et audit 2)&lt;br /&gt;
* L&#039;évaluation (3 pts) : évaluation de votre (ou vos) solution(s) (livrable et soutenance finale)&lt;br /&gt;
* Présentations (3 pts) : qualité des présentations (documents, email et slides de soutenance finale)&lt;br /&gt;
* Développement (6 pts) : qualité et quantité du code (démo et code)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les notes des membres du groupe peuvent être différentes en fonction du travail fourni et constaté par l&#039;enseignant.&lt;br /&gt;
&lt;br /&gt;
==Partie Système==&lt;br /&gt;
La partie Système est axée sur deux étapes successives. &lt;br /&gt;
===Première étape===&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;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).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
À ce stade, l&#039;application est seulement accessible par l&#039;intermédiaire d&#039;un &amp;quot;client lourd&amp;quot; (programme java offrant une console en mode texte). En particulier, il n&#039;est pas demandé, pour cette première étape, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux interfaces (administrateur et consommateur) et exécuter les requêtes avec des garanties transactionnelles. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une présentation/démonstration du prototype V1 sera réalisée à la fin de l&#039;étape n°1. &lt;br /&gt;
===Deuxième étape===&lt;br /&gt;
La seconde étape consiste à compléter le premier prototype avec les objectifs suivants : &lt;br /&gt;
* ajout des beans nécessaires pour couvrir l&#039;ensemble des spécifications fonctionnelles ; &lt;br /&gt;
* développement d&#039;une interface Web basée sur le modèle MVC ; &lt;br /&gt;
* rédaction des documents demandés (voir ci-dessous) ; &lt;br /&gt;
* 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 ; &lt;br /&gt;
* ajout éventuel de fonctionnalités non prioritaires.&lt;br /&gt;
 &lt;br /&gt;
Une présentation d&#039;une mini-maquette d&#039;interface web aura lieu au milieu de l&#039;étape n°2. &lt;br /&gt;
&lt;br /&gt;
Remarque : Aucune des phases du projet ne nécessite le développement d&#039;un client lourd en mode graphique (SWT ...). &lt;br /&gt;
===Documents demandés===&lt;br /&gt;
Deux rapports doivent être rédigés pour la partie Système : un document de conception système et un document d&#039;évaluation système.&lt;br /&gt;
&lt;br /&gt;
====Document de conception système====&lt;br /&gt;
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&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation JEE : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;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.&lt;br /&gt;
&lt;br /&gt;
====Document d&#039;évaluation système====&lt;br /&gt;
&lt;br /&gt;
Le rapport final système du projet ECOM a pour but de préciser l’état d’avancement de votre application ECOM.&lt;br /&gt;
&lt;br /&gt;
Le rapport final système doit préciser : &lt;br /&gt;
* L’état de chaque composant : non réalisé, réalisé, réalisé et validé &lt;br /&gt;
* Les fonctions réalisées, réalisées et testées, et celles restant à réaliser &lt;br /&gt;
* Les propriétés non fonctionnelles garanties par votre réalisation, et celles restant à considérer pour finaliser votre application &lt;br /&gt;
* Le temps consacré à la conception système &lt;br /&gt;
* Le temps consacré au développement système &lt;br /&gt;
* Les principales difficultés rencontrées &lt;br /&gt;
===Critères d&#039;évaluation===&lt;br /&gt;
La partie système du projet sera principalement évaluée en fonction des critères suivants : &lt;br /&gt;
* Conformité aux spécifications de l&#039;application et aux consignes données dans le cadre du projet &lt;br /&gt;
* Respect des échéances pour les différentes étapes du projet (y compris pour les prototypes intermédiaires et les documents) &lt;br /&gt;
* Qualité de l&#039;architecture de l&#039;application &lt;br /&gt;
* Qualité et robustesse du code applicatif &lt;br /&gt;
* Compréhension des principaux concepts de la technologie JEE &lt;br /&gt;
* Rigueur de la démarche de conception &lt;br /&gt;
* Qualité des présentations/soutenances &lt;br /&gt;
En complément, les aspects suivants seront également considérés : &lt;br /&gt;
* Méthodologie de test &lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud (Azure) avec [http://roboconf.net/ Roboconf] ([http://roboconf.net/en/user-guide/lamp-example-part-1.html voir l&#039;exemple avec LAMP])&lt;br /&gt;
* Préparation d&#039;images de VMs avec [[Kameleon]]&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]] ou OW2 CLIF) &lt;br /&gt;
* Supervision du système déployé avec des sondes [[Nagios]] ou [[Shinken]] conditionnées dans les VMs à déployer.&lt;br /&gt;
* Utilisation (optionnelle) de technologies/APIs/frameworks avancés&lt;br /&gt;
&lt;br /&gt;
==Consignes pour la soutenance==&lt;br /&gt;
===Consignes spécifiques pour les soutenances IHM===&lt;br /&gt;
Durée totale : 20 minutes&lt;br /&gt;
* tous les livrables doivent être consultable par l&#039;enseignant (en ligne ou ayant été préalablement envoyés)&lt;br /&gt;
* 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 &lt;br /&gt;
* arrivez avec l&#039;application démarée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* prévoyez 5 minutes de questions lors de votre passage&lt;br /&gt;
&lt;br /&gt;
Ordre de passage (27/09)&lt;br /&gt;
* 11h15 : Pokemon&lt;br /&gt;
* 11h40 : Bungalow&lt;br /&gt;
* 12h05 : Pizza&lt;br /&gt;
* 12h30 : Hotel&lt;br /&gt;
&lt;br /&gt;
===Consignes spécifiques pour les soutenances Système===&lt;br /&gt;
* Apportez un exemplaire du dossier d&#039;évaluation système (déposé la veille sur Moodle) lors de la soutenance. Il n&#039;est pas nécessaire d&#039;apporter un exemplaire du dossier de conception système.&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure avec le service développé.&lt;br /&gt;
* Prévovez environ 30 minutes pour la présentation/démo/questions. Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances Windows Azure.&lt;br /&gt;
* 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.&lt;br /&gt;
* Déposez immédiatement après la soutenance (et en aucun cas après le 20 décembre) l&#039;archive sur Moodle.&lt;br /&gt;
* le rapport de charge (benchmark) doit être (MUST) fourni dans la documentation.&lt;br /&gt;
* le rapport sur les métriques logicielles doit être (MUST) fourni dans la documentation.&lt;br /&gt;
&lt;br /&gt;
=Organisation 2017-2018=&lt;br /&gt;
&lt;br /&gt;
==Planning==&lt;br /&gt;
===M2PGI (Alternant)===&lt;br /&gt;
&#039;&#039;&#039;Equipe pédagogique:&#039;&#039;&#039; Noël de Palma (NdP), Vincent Lesne (VL), Sybille Caffiau (SC), Sebastien Chassand-Barrioz (SCB), Ibrahim Safiedinne (FR)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dates Importantes:&#039;&#039;&#039;&lt;br /&gt;
*Soutenances (IHM + système) : 9h-17h, le 27 septembre&lt;br /&gt;
*Remise du dossier de conception système :    le 27 septembre (lors de votre passage)&lt;br /&gt;
*Remise du dossier d&#039;évaluation système :    le 27 septembre (lors de votre passage)&lt;br /&gt;
&lt;br /&gt;
*01 sept 09h-12h    	F022, F319, Boot Projet/ JEE (NDP)&lt;br /&gt;
*01 sept 14h-17h		F319, Boot Projet/ JEE (NDP)&lt;br /&gt;
*04 sept 09h-12h   	F118, cours Agile (VL) &lt;br /&gt;
*04 sept 14h-17h		F118, cours IHM (SC)  &lt;br /&gt;
*05 sept 09h-12h   	F118, cours angular (SCB) (+TP F217)&lt;br /&gt;
*05 sept 14h-17h   	F118, cours angular (SCB) (+TP F217)&lt;br /&gt;
*06 sept 09h-12h 		F118, cours Agile (VL)&lt;br /&gt;
*06 sept  14h-17h		F217, point Syst. (NDP)&lt;br /&gt;
*07 sept 09h-12h		Libre service&lt;br /&gt;
*07 sept 14h-17h		F118, cours Cloud (IS) &lt;br /&gt;
*08 sept 09h-12h		F201, Point Syst. (SCB)  &lt;br /&gt;
*08 sept 14h-17h		F201, audit agile (VL)&lt;br /&gt;
*11 sept 09h-12h		Libre service&lt;br /&gt;
*11 sept 14h-17h		F217, point Syst. (IS)&lt;br /&gt;
*12 sept 09h-12h		Libre Service&lt;br /&gt;
*12 sept 14h-17h		Libre Service&lt;br /&gt;
*13 sept 09h-12h		Libre Service		&lt;br /&gt;
*13 sept 14h-17h		F217, point Syst. (NDP) &lt;br /&gt;
*14 sept 09h-12h		Libre Service&lt;br /&gt;
*14 sept 14h-17h		Libre Service&lt;br /&gt;
*15 sept 09h-12h		F214, point Syst. (SCB) &lt;br /&gt;
*15 sept 14h-17h		F201, audit agile (VL)&lt;br /&gt;
*18 sept 09h-12h 		Libre Service&lt;br /&gt;
*18 sept 14h-17h		F211, point Syst. (IS/NDP)&lt;br /&gt;
*19 sept 09h-12h		Libre Service&lt;br /&gt;
*19 sept 14h-17h		Libre Service		&lt;br /&gt;
*20 sept 09h-12h		F217 point Syst (IS) &lt;br /&gt;
*20 sept 14h-17h		Libre Service&lt;br /&gt;
*21 sept 09h-12h		Libre Service&lt;br /&gt;
*21 sept 14h-17h		Libre Service&lt;br /&gt;
*22 sept 09h-12h		Libre Service&lt;br /&gt;
*22 sept 14h-17h		F211, point Syst. (SCB) + audit agile (VL)&lt;br /&gt;
*27 sept 09h-12h		Soutenances&lt;br /&gt;
*27 sept 14h-17h		Soutenances&lt;br /&gt;
&lt;br /&gt;
===M2PGI (Classique)===&lt;br /&gt;
&#039;&#039;&#039;Equipe pédagogique:&#039;&#039;&#039; Noël de Palma (NdP), Vincent Lesne (VL), Sybille Caffiau (SC), Sebastien Chassand-Barrioz (SCB), Ibrahim Safiedinne (FR)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dates Importantes:&#039;&#039;&#039;&lt;br /&gt;
Vendredi 29 sept. : Début des cours&lt;br /&gt;
&lt;br /&gt;
* 29 sept  9h-12h   	F114, Boot Projet/ JEE (NDP) &lt;br /&gt;
* 29 sept  14h-17h 	F319, point systeme (NDP)&lt;br /&gt;
* 06 oct    09h-12h    	F114, cours Agile (VL)&lt;br /&gt;
* 06 oct    14h-17h   	F319, cours IHM (SC)&lt;br /&gt;
* 13 oct     9h-12h 		F215,  cours Cloud (IS)&lt;br /&gt;
* 13 oct     14h-17h	F319, cours angular (SCB) +(TP F204)&lt;br /&gt;
* 20 oct 	  9h-12h		TP F215,  point systeme (NDP) et  TD F114 audit Agile (VL)&lt;br /&gt;
* 20 oct     14h-17h 	TD F319/TP F204, cours angular (SCB)&lt;br /&gt;
* 27 oct     9h-12h 		TP F215/TD F114, point système  (SCB, NDP)&lt;br /&gt;
* 27 oct	  14h-17h 	TD F204,  cours Agile (VL) &lt;br /&gt;
* 10 nov    9h-12h		TD F114 audit2 Agile (VL)&lt;br /&gt;
* 10 nov    14h-17h 	TP F204/TD F319 point système (SCB, IS)&lt;br /&gt;
* 17 nov	  9h-12h		TP F215/TD F114 point système (SCB, NDP).&lt;br /&gt;
* 17 nov    14h-17		TDF319 cours ergonomie des IHM + Libre service (TP F204)&lt;br /&gt;
* 24 nov   9h-12h 	        TP F215/TD F114, Libre service&lt;br /&gt;
* 24 nov   14h-17h		TP F204/TD F319 Point système Cl&amp;amp;Alt (IS).&lt;br /&gt;
* 01 dec   9h-12h	        Libre Service&lt;br /&gt;
* 01 dec   14h-17h 		TP F204/TD 319 point systeme (SCB, IS, NDP)&lt;br /&gt;
* 08 dec   9h-12h 		Libre Service&lt;br /&gt;
* 08 dec  14-17h		TP F204 audit Agile (VL) et point système (IS) &lt;br /&gt;
* 15 dec   9h-12h		TP F215/TD F114 libre service&lt;br /&gt;
* 15 dec   14h-17h  	TP F204/TD F319 point system (SCB)&lt;br /&gt;
* 18 dec-22 dec		semaine bloquée libre service&lt;br /&gt;
&lt;br /&gt;
Le 22/12 soutenances tte la  journée F215/F216&lt;br /&gt;
&lt;br /&gt;
==Groupes==&lt;br /&gt;
===M2PGI Apprenti===&lt;br /&gt;
&lt;br /&gt;
===M2PGI Classique===&lt;br /&gt;
Consigne pour la constitution des groupes : Les étudiants ayant choisis l&#039;option multimobile doivent se mettre ensemble. Ils doivent constituer des groupes de 4/5 afin d&#039;avoir en tout 4 groupes (de M2 PGI classiques)&lt;br /&gt;
&lt;br /&gt;
==Soutenance==&lt;br /&gt;
===M2PGI Apprenti===&lt;br /&gt;
&lt;br /&gt;
===M2PGI Classique===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
IMPERATIF&lt;br /&gt;
* le projet doit être (MUST) géré selon la méthode Scrum : le Scrum Master devra présenter le déroulement du projet.&lt;br /&gt;
* le serveur JavaEE doit être (MUST) hébergé sur une instance de VM.&lt;br /&gt;
* un rapport de charge (benchmark) doit être (MUST) fourni : les outils JMeter ou Clif peuvent être utilisés.&lt;br /&gt;
* un rapport sur les métriques logicielles doit être (MUST) fourni : l&#039;outil Sonar peut être utilisé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&lt;br /&gt;
* Respectez l&#039;ordre établi&lt;br /&gt;
* Faites attention au temps. Vous disposez de 45 minutes par soutenance pour : votre présentation, la démo et les questions&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2017-2018.pdf]]&lt;br /&gt;
* Annexe cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Squelette du projet==&lt;br /&gt;
[http://dl.dropbox.com/u/66952950/ecom-maven.zip ecom-maven.zip] Inaccessible&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://wiki.easybeans.org/xwiki/bin/view/Main/Documentation Documentation Easybeans (conteneur EJB3 utilis&amp;amp;eacute; par Jonas)]&lt;br /&gt;
* [http://docs.oracle.com/javaee/6/tutorial/doc/ Tutorial JavaEE 6 ]&lt;br /&gt;
* [http://netbeans.org/kb/67/javaee/ejb30.html Tutorial NetBean et JEE ]&lt;br /&gt;
* [http://docs.oracle.com/javaee/6/api/ API JavaEE 6]&lt;br /&gt;
* [https://java.net/projects/javaee-spec/pages/Home Sp&amp;amp;eacute;cifications JavaEE 6]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* [http://jonas.ow2.org/JONAS_5_1_2/doc/doc-en/html/getting_started_guide.html#id1316973 Glossaire]&lt;br /&gt;
* [http://www.easybeans.net/xwiki/bin/download/Main/Documentation/ejb3-annotations.pdf Aide m&amp;amp;eacute;moire pour les annotations EJB3 ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
* Documentation et Training Kit sur Windows Azure : http://www.microsoft.com/en-us/download/details.aspx?id=8396&lt;br /&gt;
* Documentation de [http://roboconf.net/en Roboconf]&lt;br /&gt;
** Exemple avec LAMP http://roboconf.net/en/user-guide/lamp-example-part-1.html&lt;br /&gt;
http://proton.inrialpes.fr/~depalma/ecom/liens/liens.html&lt;br /&gt;
* Questionnaire pour site web : [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
* Questionnaire SUS (évaluation satisfaction) : [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Quelques livres===&lt;br /&gt;
REMARQUE: les livres sur JavaEE se periment très vite avec l&#039;évolution de la spécification&lt;br /&gt;
* Java EE6 Cookbook for securing, tuning, and extending enterprise applications: http://www.packtpub.com/java-ee6-securing-tuning-extending-enterprise-applications-cookbook/book&lt;br /&gt;
* Holly Cummins and Timothy Ward, Enterprise OSGi in Action, March, 2013, 400 pages, ISBN: 9781617290138, http://www.manning.com/cummins/ ([http://www.manning.com/cummins/EOSGI_sample_ch02.pdf chapitre 2], [http://www.manning.com/cummins/EOSGI_sample_ch10.pdf chapitre 10])&lt;br /&gt;
* Debu Panda, Reza Rahman, Derek Lane, EJB 3 in Action, Pub Mannings, 2007, http://www.manning.com/panda/&lt;br /&gt;
* Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan, EJB 3 in Action, Second Edition, Pub Mannings, 2011, http://www.manning.com/panda2/&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM_RICM5_Groupe3_2017&amp;diff=37134</id>
		<title>ECOM RICM5 Groupe3 2017</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM_RICM5_Groupe3_2017&amp;diff=37134"/>
		<updated>2017-11-07T10:09:32Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Sprint 11 : du 28 Novembre au 5 Décembre (prévisions) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page wiki a pour but de détailler l&#039;avancement du travail sur le projet eCOM du groupe 3 de la promotion 2017-2018 de RICM. &lt;br /&gt;
Le projet eCOM a pour but de développer une application de commerce en ligne par groupe de 5 étudiants. Il regroupe une partie Système ainsi qu&#039;une partie IHM qui seront toutes les deux détaillées sur cette page. &lt;br /&gt;
&lt;br /&gt;
=Résumé du projet=&lt;br /&gt;
&lt;br /&gt;
Notre projet de eCOM s&#039;appelle &#039;&#039;MySpectacle&#039;&#039;. Le but est de mettre en oeuvre un site internet servant à réserver en ligne des places de spectacle. Notre site doit proposer toute une panoplie de spectacles que l&#039;utilisateur doit pouvoir trier en fonction de ce qu&#039;il souhaite voir, du lieu, de la date...&lt;br /&gt;
&lt;br /&gt;
[https://github.com/ECOM-MySpectacle Organisation github du projet]&lt;br /&gt;
&lt;br /&gt;
=L&#039;équipe=&lt;br /&gt;
&lt;br /&gt;
Pour mener à bien ce projet l&#039;équipe est composée de : &lt;br /&gt;
&lt;br /&gt;
*BECHER Hervé : Développeur (Spécialité sécurité)&lt;br /&gt;
*DALLE Oriane : Scrum Master&lt;br /&gt;
*GEOURJON Anthony : Chef de projet, Lead Developer (Spécialiste [[OpenShift]], [[Docker]]).&lt;br /&gt;
*LACHARTRE Denis : Développeur Frontend (JSP, Twitter Bootstrap)&lt;br /&gt;
*SAVARY Rémi : Développeur ([[JavaEE]], [[Wildfly]])&lt;br /&gt;
&lt;br /&gt;
=Ressources =&lt;br /&gt;
&lt;br /&gt;
*L2 : [[Media:DCS_Myspectacle.pdf | DCS‎]]&lt;br /&gt;
*L9 : [[ECOM RICM5 Groupe3 2017 Journal|Planning]]&lt;br /&gt;
*L18 : [[Media:Soutenance_10_Octobre_MySpectacle.pdf | Slide audit 1]]&lt;br /&gt;
&lt;br /&gt;
=Les tâches prioritaires =&lt;br /&gt;
&lt;br /&gt;
Voici les tâches que nous souhaitons implementer en premier lieux : &lt;br /&gt;
&lt;br /&gt;
*Permettre à l&#039;utilisateur de consulter toutes les offres de spectacle&lt;br /&gt;
*Permettre à l&#039;utilisateur de réaliser une recherche large (avec une seule contrainte)&lt;br /&gt;
*Permettre à l&#039;utilisateur de réaliser une recherche affinée (avec plusieurs paramètres)&lt;br /&gt;
*Permettre à l&#039;utilisateur de connaître le nombre de places restantes pour le spectacle &lt;br /&gt;
*Permettre à l&#039;utilisateur de connaître le nombre de places restantes dans les différentes zones de la salle &lt;br /&gt;
*Permettre à l&#039;utilisateur de gérer son panier (Ajouter des places et/ou en enlever)&lt;br /&gt;
*Permettre à l&#039;utilisateur de payer en ligne &lt;br /&gt;
*Permettre à l&#039;utilisateur de choisir son mode de récupération des billets&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Partie IHM= &lt;br /&gt;
&lt;br /&gt;
Cette partie a pour but de décrire l&#039;aspect de l&#039;application web, elle détaillera l&#039;approche utilisée afin de développer notre interface. On y trouvera pour qui elle est développée, dans quel but et dans quel contexte. &lt;br /&gt;
&lt;br /&gt;
==Les utilisateurs visés==&lt;br /&gt;
&lt;br /&gt;
*[https://docs.google.com/forms/d/e/1FAIpQLSdZej9hLfvwITRwdplvJAMUJKID21N54CgXEBFlnxc5Bh2SiQ/viewform Lien vers notre questionnaire ]&lt;br /&gt;
&lt;br /&gt;
*L3 : [[media:Réponse_sondage_myspectacle.pdf | Toutes les réponses au sondage]]&lt;br /&gt;
&lt;br /&gt;
== Analyse des données == &lt;br /&gt;
&lt;br /&gt;
Ici nous allons reprendre les point du sondages qui nous ont parut intéressant pour le projet &lt;br /&gt;
&lt;br /&gt;
===Fréquence de commande de billet === &lt;br /&gt;
&lt;br /&gt;
[[File: Ecom_Frequence_Myspectacle.png‎ |500px]]&lt;br /&gt;
&lt;br /&gt;
Une grande partie des utilisateur ne commande que peu souvent de billet en ligne. Ce fait montre que l&#039;utilisateur ne va pas venir régulièrement passer des commande en ligne, il n&#039;y aura donc pas d&#039;apprentissage au fur et à mesure des utilisations. Il faut donc que notre interface soit fluide et intuitive.&lt;br /&gt;
&lt;br /&gt;
===Plateformes utilisés ===&lt;br /&gt;
&lt;br /&gt;
[[File: Ecom_plateforme.png‎‎ |500px]]&lt;br /&gt;
&lt;br /&gt;
On voit très clairement que les utilisateurs préfère utiliser leur ordinateur que d&#039;autres plateformes pour passer des commande de billet en ligne. &lt;br /&gt;
&lt;br /&gt;
===Temps passé sur un site de billetterie en ligne === &lt;br /&gt;
&lt;br /&gt;
[[File: Ecom_temps_myspectacle.png |500px]]&lt;br /&gt;
&lt;br /&gt;
La aussi on voit très clairement que les utilisateurs passent le moins de temps possible pour passer leur commande. Cela peut provenir du fait qu&#039;ils savent déjà quel spectacle ils souhaitent aller voir. Il faut donc encore une fois que notre interface de recherche soit clair et efficace pour permettre aux utilisateurs de trouver leur bonheur au plus vite. &lt;br /&gt;
Pour les utilisateurs qui souhaitent prendre plus de temps pour chercher un spectacle il faut aussi leurs laisser une possibilité de recherche plus large.&lt;br /&gt;
&lt;br /&gt;
===Point essentiel d&#039;un site de billetterie en ligne ===&lt;br /&gt;
&lt;br /&gt;
[[File: Ecom_preference_myspectacle.png |500px]]&lt;br /&gt;
&lt;br /&gt;
Enfin on voit sur ces résultats que les utilisateurs attendent beaucoup de l&#039;interface de recherche ainsi que de la possibilité de modifier leur commande et payer en ligne. Ils sont moins intéresser par les propositions de spectacles à venir.&lt;br /&gt;
&lt;br /&gt;
== Analyse de l&#039;existant ==&lt;br /&gt;
&lt;br /&gt;
Afin de mieux appréhender l&#039;interface utilisateur de notre application nous avons regardé ce que font les sites existants actuels. Dans un premier temps nous avons fait une analyse site par site afin d&#039;y identifier les differences. Nous sommes arrivés à la conclusion qu&#039;ils sont tous articuler de la même manière. Nous allons faire un résumé des points relevés : &lt;br /&gt;
&lt;br /&gt;
*La page d&#039;accueil met en avant les spectacles en cours. On y retrouve différentes catégories comme &#039;&#039;Coup de cœur&#039;&#039;, &#039;&#039;Top vente&#039;&#039; ou encore &#039;&#039;Actualité&#039;&#039;, &#039;&#039;A ne pas manquer&#039;&#039; &lt;br /&gt;
*On retrouve sur chaque page d&#039;accueil une bar de recherche (&#039;&#039;plus ou moins élaboré&#039;&#039;) ainsi qu&#039;une bar permettant de choisir une catégorie, les categories peuvent être le type de spectacle ou le type d’événement. &lt;br /&gt;
**Les bars de recherches peuvent être simple, comme un moteur de recherche, et l&#039;ajout de filtre se fait par la suite &lt;br /&gt;
**On peut aussi trouver directement un encadré permettant de faire une recherche détaillée dès la page d&#039;accueil&lt;br /&gt;
&lt;br /&gt;
==Arbre de tâches==&lt;br /&gt;
[[File:Arbre_de_tache_Myspectacle.jpg|800px|center|thumb|Arbre de tâches]]&lt;br /&gt;
&lt;br /&gt;
==Cas d&#039;utilisation==&lt;br /&gt;
&lt;br /&gt;
Voici les différents cas d&#039;utilisation au quel nous avons pensés &lt;br /&gt;
&lt;br /&gt;
[[File:Ecom-ricm5-g3-2017-use-case-search.png|800px|center|thumb|Recherche]]&lt;br /&gt;
[[File:Ecom-ricm5-g3-2017-use-case-booking.png|800px|center|thumb|Réservation et paiement]]&lt;br /&gt;
[[File:Ecom-ricm5-g3-2017-use-case-basket.png|800px|center|thumb|Gestion du panier]]&lt;br /&gt;
&lt;br /&gt;
==Maquette== &lt;br /&gt;
&lt;br /&gt;
Nous avons réalisés les maquettes des différentes pages du sites que nous allons développé&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
L4 : &lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
 |[[File:Maquette1_myspectacle.jpg|200px|thumb|Maquette de la page d&#039;accueil]]&lt;br /&gt;
 |[[File:Maquette2_myspectacle.jpg|200px|thumb|Maquette de la page de recherche]]&lt;br /&gt;
 |[[File:Maquette3_myspectacle.jpg|200px|thumb|Maquette de la page spectacle]]&lt;br /&gt;
 |[[File:Maquette4_myspectacle.jpg|200px|thumb|Maquette du panier]]&lt;br /&gt;
 |[[File:Maquette5_myspectacle.png|200px|thumb|Maquette des billets déjà payés]]&lt;br /&gt;
 |[[File:Maquette6_myspectacle.png|200px|thumb|Maquette de la page de connexion]]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
=Partie système=&lt;br /&gt;
&lt;br /&gt;
Cette partie aura pour but de détaillé notre avancé d&#039;un point de vue technique et d&#039;exposer les technologies utilisés. On y trouvera aussi l&#039;architecture du projet et les problèmes rencontrés.&lt;br /&gt;
&lt;br /&gt;
==Architecture du projet==&lt;br /&gt;
&lt;br /&gt;
[[File:ricm5-g3-2017-archi.png|800px|center|thumb|Architecture]]&lt;br /&gt;
&lt;br /&gt;
=SCRUM=&lt;br /&gt;
&lt;br /&gt;
Cette partie à pour but de presenter le travail effectué chaque semaine par l&#039;équipe &lt;br /&gt;
&lt;br /&gt;
==Sprint 1 : du 19 septembre au 25 Septembre == &lt;br /&gt;
&lt;br /&gt;
*Découverte du sujet&lt;br /&gt;
*Définition des rôles&lt;br /&gt;
*Rédaction des différentes tâches à réaliser&lt;br /&gt;
*Brainstorming autour des technologies à utiliser durant le projet&lt;br /&gt;
*Liste de tâches à effectuer&lt;br /&gt;
&lt;br /&gt;
===Rétrospective Sprint 1 ===&lt;br /&gt;
&lt;br /&gt;
Nous avons pris connaissance du sujet et des attentes du site. Nous avons fais un brainstorming et les idées retenus ont été validés par tout le monde. Le brainstorming à aussi permis de mettre plusieurs idées pour d’éventuelles extensions. Nous avons pu mesurer l&#039;ampleur du travail à réaliser et des technologies à maîtriser puis utiliser.&lt;br /&gt;
&lt;br /&gt;
==Sprint 2 : du 26 septembre au 3 Octobre == &lt;br /&gt;
&lt;br /&gt;
*Commencement de la redaction du Dossier de Conception Système (DCS) &lt;br /&gt;
*Préparation d&#039;un questionnaire d&#039;évaluation des besoins&lt;br /&gt;
*Réalisation d&#039;un arbre de tâches&lt;br /&gt;
*Début de mise en place de l&#039;architecture du projet&lt;br /&gt;
*Réalisation de l’architecture de la base de données &lt;br /&gt;
*Création d&#039;un diagramme de cas d&#039;utilisation&lt;br /&gt;
*Début d&#039;analyse de l&#039;existant&lt;br /&gt;
&lt;br /&gt;
===Rétrospective sprint 2 ===&lt;br /&gt;
&lt;br /&gt;
Bonne répartition des tâches, chacun à su faire sa part de travail. Globalement le travail à bien avancé sauf le DCS qui s&#039;est révélé plus complexe et long que prévue à rédiger.&lt;br /&gt;
&lt;br /&gt;
==Sprint 3 : du 4 Octobre au 9 Octobre ==&lt;br /&gt;
&lt;br /&gt;
*Finition du diagramme de cas d&#039;utilisation &lt;br /&gt;
*Elaboration du Dossier de Conception Système (DCS)&lt;br /&gt;
*Analyse du questionnaire&lt;br /&gt;
*Analyse de l&#039;existant &lt;br /&gt;
*Préparation de la première présentation&lt;br /&gt;
&lt;br /&gt;
===Rétrospective sprint 3 ===&lt;br /&gt;
&lt;br /&gt;
L’analyse du questionnaire nous a permis de bien comprendre les attentes des utilisateurs et d&#039;affiner nos idées sur le fonctionnement du site. Grâce à cela nous avons pu bien avancer la partie conception.&lt;br /&gt;
&lt;br /&gt;
==Sprint 4 : du 10 Octobre au 16 Octobre ==&lt;br /&gt;
&lt;br /&gt;
*Réunion de groupe post-soutenance&lt;br /&gt;
*Définition d&#039;un planning détaillé pour le client&lt;br /&gt;
*Définition claire des rôles pour la suite du développement -&amp;gt; séparation en un binôme front-end, un autre back-end et un développeur plus autonome qui gérera le déploiement et l&#039;administration des outils tout en aidant les binômes si besoin&lt;br /&gt;
*Choix d&#039;une charte graphique pour le front-end&lt;br /&gt;
*Essai de mise en place l’intégration continue &lt;br /&gt;
*Réalisation des schémas système (&#039;&#039;architecture et diagramme de classe&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Rétrospective sprint 4 === &lt;br /&gt;
&lt;br /&gt;
Avec la soutenance, ce sprint à été moins intense avec notamment beaucoup d&#039;autoformation et la fin de la conception.&lt;br /&gt;
&lt;br /&gt;
==Sprint 5 : du 17 Octobre au 23 Octobre ==&lt;br /&gt;
&lt;br /&gt;
*Premier embryon d&#039;application fonctionnelle&lt;br /&gt;
*Génération squelette projet avec Generjee&lt;br /&gt;
*Front-end&lt;br /&gt;
**Page d’accueil&lt;br /&gt;
**Réalisation d’éléments fixes de l&#039;IHM  (header, navbar, footer)&lt;br /&gt;
&lt;br /&gt;
===Rétrospective sprint 5 ===&lt;br /&gt;
&lt;br /&gt;
Generjee a été un peu difficile à prendre en main. Il y a vraiment peu de documentation. Le code généré est un peu obscure car il y a énormément de classes et les liens entre elles sont parfois peu évidents.&lt;br /&gt;
&lt;br /&gt;
==Sprint 6 : du 24 Octobre au 30 Octobre ==&lt;br /&gt;
&lt;br /&gt;
*Back-end&lt;br /&gt;
**Développement des fonctions d&#039;insertions de l&#039;API&lt;br /&gt;
**Insertions du jeu de données dans le système&lt;br /&gt;
*Formation AngularJS&lt;br /&gt;
*Déploiement continu&lt;br /&gt;
**Intégration circleci https://circleci.com/gh/ECOM-MySpectacle&lt;br /&gt;
**Hébergement dockerfile : &lt;br /&gt;
**Déploiement AWS&lt;br /&gt;
https://github.com/ECOM-MySpectacle/docker-MySpectacle&lt;br /&gt;
&lt;br /&gt;
https://hub.docker.com/r/geourjoa/docker-myspectacle/&lt;br /&gt;
&lt;br /&gt;
===Rétrospective sprint 6===&lt;br /&gt;
&lt;br /&gt;
Le déploiement continu à connu divers retard lié à des problèmes sur AWS et le manque de doc sur Circle CI&lt;br /&gt;
&lt;br /&gt;
==Sprint 7 : du 31 Octobre au 6 Novembre (Prévisions)  ==&lt;br /&gt;
&lt;br /&gt;
*Soutenance 2&lt;br /&gt;
**Préparation soutenance&lt;br /&gt;
**Slides&lt;br /&gt;
*Back-end&lt;br /&gt;
** A définir, la gestion de panier étant passé du coté du font-end&lt;br /&gt;
*Front-end&lt;br /&gt;
**Gestion panier&lt;br /&gt;
**Première version du front-end&lt;br /&gt;
&lt;br /&gt;
==Sprint 8 : du 7 Novembre au 13 Novembre (prévisions)  ==&lt;br /&gt;
&lt;br /&gt;
*Soutenance 2&lt;br /&gt;
**Discussion post-soutenance et &lt;br /&gt;
*Back-end&lt;br /&gt;
**Réservation spectacle fonctionnels&lt;br /&gt;
**Ecriture des tests unitaires&lt;br /&gt;
*Front-end&lt;br /&gt;
**IHM de recherche et de sélection de spectacle&lt;br /&gt;
**Correction de l&#039;IHM en fonction des retours de la soutenance&lt;br /&gt;
&lt;br /&gt;
==Sprint 9 : du 14 Novembre au 20 Novembre (prévisions) ==&lt;br /&gt;
&lt;br /&gt;
*Mise en place du serveur de mail&lt;br /&gt;
*Développement des fonctions liées au mail &lt;br /&gt;
*Tests fonctionnels&lt;br /&gt;
*Front-end&lt;br /&gt;
**version 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprint 10 : du 21 Novembre au 28 Novembre (prévisions) ==&lt;br /&gt;
&lt;br /&gt;
*Back-end&lt;br /&gt;
**Paiement à la banque fonctionnelle&lt;br /&gt;
**Génération et envoi des mails fonctionnels&lt;br /&gt;
&lt;br /&gt;
==Sprint 12 : du 28 Novembre au 5 Décembre (prévisions) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Mise en place du proxy HAProxy&lt;br /&gt;
*Mise en place d&#039;outils de monitoring &lt;br /&gt;
**Grafana&lt;br /&gt;
**InfluxDB&lt;br /&gt;
**Telegraph&lt;br /&gt;
&lt;br /&gt;
==Sprint 13 : du 6 Décembre au 12 Décembre (prévisions) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprint 14 : du 12 Décembre au 19 Décembre (prévisions) ==&lt;br /&gt;
&lt;br /&gt;
*Soutenance finale&lt;br /&gt;
**Préparation soutenance&lt;br /&gt;
**Slides&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=37101</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=37101"/>
		<updated>2017-11-07T08:40:22Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Contenu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* TR : Thomas Ropras (thomas.ropars@imag.fr)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-RICM 2017-2018===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 19/09 à 8h.&lt;br /&gt;
====Groupe 1  ====&lt;br /&gt;
*AMODRU-FAVIN Hugo&lt;br /&gt;
*CHAMBONNET Simon&lt;br /&gt;
*FU Qianqian&lt;br /&gt;
*GAMBRO Antoine&lt;br /&gt;
*RIVOAL Alice&lt;br /&gt;
[[ECOM RICM5 Groupe1 2017|Fiche de suivi]]&lt;br /&gt;
&lt;br /&gt;
====Groupe 2 ====&lt;br /&gt;
*ALLARD Estelle&lt;br /&gt;
*COCHINHO Louis&lt;br /&gt;
*DELISE Antoine&lt;br /&gt;
*GUERRY Lucas&lt;br /&gt;
*ROCHER Lambert&lt;br /&gt;
[[ECOM RICM5 Groupe2 2017|Fiche de suivi]]&lt;br /&gt;
&lt;br /&gt;
====Groupe 3 ====&lt;br /&gt;
*BECHER Hervé&lt;br /&gt;
*DALLE Oriane&lt;br /&gt;
*GEOURJON Anthony&lt;br /&gt;
*LACHARTRE Denis&lt;br /&gt;
*SAVARY Rémi&lt;br /&gt;
[[ECOM RICM5 Groupe3 2017|Fiche de suivi]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Groupe 4  ====&lt;br /&gt;
*BOISADAM Antoine&lt;br /&gt;
*DEREYMEZ Maxime&lt;br /&gt;
*LEMAIRE Timothée&lt;br /&gt;
*LESAGE Lucas&lt;br /&gt;
*ZENNOUCHE Douria&lt;br /&gt;
[[ECOM RICM5 Groupe4 2017|Fiche de suivi]]&lt;br /&gt;
&lt;br /&gt;
====Groupe 5 ====&lt;br /&gt;
*BONHOURE Gilles&lt;br /&gt;
*FERNANDES DE ALMEIDA Héloïse&lt;br /&gt;
*MARCHAND Charles&lt;br /&gt;
*MOREAU Gwenaël&lt;br /&gt;
*VIAL-GRELIER Aymeric&lt;br /&gt;
*ZEGAOUI Taquyeddine (arrivée début octobre)&lt;br /&gt;
[[ECOM RICM5 Groupe5 2017|Fiche de suivi]]&lt;br /&gt;
&lt;br /&gt;
====Groupe 6 ====&lt;br /&gt;
*AUBERTIN Alicia&lt;br /&gt;
*BROCHIER Aymeric&lt;br /&gt;
*NASSIK Ahmed Amine&lt;br /&gt;
*ODIEVRE Boris&lt;br /&gt;
*TURRIN Vincent&lt;br /&gt;
[[ECOM RICM5 Groupe6 2017|Fiche de suivi]]&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et TR).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 19/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2017.pdf|transparents]]), CM Outils de suivi de projet + JSP 3h00 [http://lig-membres.imag.fr/donsez/cours/http-ecom.pdf HTTP] &amp;amp; [[Media:RestfulServices.pdf|REST]] (DD) (F018)&lt;br /&gt;
* 19/09 15h45-18h30 : JavaEE [https://github.com/donsez/javaee7-angular-swagger-docker app JavaEE de démo]  [http://lig-membres.imag.fr/donsez/cours/javaee-ejb.pdf Cours JavaEE EJB](DD) Install [[JavaEE]] ([[Docker]] et [[Wildfly]]) Tutoriel EJB, Tutoriel Servlet/JSP/[[REST]]/WS/Filter/Docker ([[https://github.com/donsez/javaee7-angular-swagger-docker|lien]]) et [[JHipster]] pour le groupe &amp;quot;Gestion de courses sportives&amp;quot; (F202, F204). Vous pouvez générer le boilerplate de votre application avec des générateurs tel que http://www.generjee.com/.&lt;br /&gt;
&lt;br /&gt;
* 26/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P257)&lt;br /&gt;
* 26/09 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 03/10 8h00-12h15 : Travail en autonomie (F201,202)&lt;br /&gt;
* 03/10 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 10/10 8h00-12h15 : Audit 1 (F316) et travail en autonomie (F203)&lt;br /&gt;
* 10/10 15h45-18h30 :  Tests de robustesse (charges) (DD) (F203)&lt;br /&gt;
&lt;br /&gt;
* 17/10 8h00-12h15 : Travail en autonomie (F203, F217)&lt;br /&gt;
* 17/10 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 24/10 8h00-12h15 : Travail en autonomie (F203, F217)&lt;br /&gt;
* 24/10 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 07/11 8h00-12h15 : Soutenance 2 (F109) et travail en autonomie (F203)&lt;br /&gt;
* 07/11 15h45-18h30 :  Test utilisateur (SC) (F116)&lt;br /&gt;
&lt;br /&gt;
* 14/11 8h00-12h15 : Travail encadré (TR) (F216, F217)&lt;br /&gt;
* 14/11 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 28/11 8h00-12h15 : Travail encadré (TR) (F216, F217)&lt;br /&gt;
* 28/11 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 05/12 8h00-12h15 : Travail en autonomie (F202, F204)&lt;br /&gt;
* 05/12 15h45-18h30 :  Travail encadré (TR) (F216, F217)&lt;br /&gt;
&lt;br /&gt;
* 12/12 8h00-12h15 : Travail encadré (TR) (F216, F217)&lt;br /&gt;
&lt;br /&gt;
* 19/12 8h00-12h15 : Soutenances finales (F201, F217)&lt;br /&gt;
* 19/12 15h45-18h30 :  Soutenances finales (F201, F212)&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie JEE.&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]], le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 10 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 07 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 19 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
&lt;br /&gt;
===Soutenance 1 ===&lt;br /&gt;
*Salle : F316&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- groupe 6&lt;br /&gt;
&lt;br /&gt;
- groupe 3&lt;br /&gt;
&lt;br /&gt;
- groupe 1&lt;br /&gt;
&lt;br /&gt;
- groupe 2&lt;br /&gt;
&lt;br /&gt;
- groupe 4&lt;br /&gt;
&lt;br /&gt;
- groupe 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
&lt;br /&gt;
===Soutenance 2 ===&lt;br /&gt;
*Salle : F109&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL : point sur &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Beans (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- groupe 6 : 8h&lt;br /&gt;
&lt;br /&gt;
- groupe 1 : 8h30&lt;br /&gt;
&lt;br /&gt;
- groupe 5 : 9h&lt;br /&gt;
&lt;br /&gt;
- groupe 2 : 9h45&lt;br /&gt;
&lt;br /&gt;
- groupe 4 : 10h15&lt;br /&gt;
&lt;br /&gt;
- groupe 3 : 10h45&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : &lt;br /&gt;
* Durée totale : &lt;br /&gt;
* Utilisez des transparents pour présenter votre projet. Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
* une présentation globale du projet&lt;br /&gt;
* le processus de conception (illustré)&lt;br /&gt;
* la démonstration de votre application&lt;br /&gt;
* des évaluations&lt;br /&gt;
* le bilan (pédagogique ET du projet/individuel ET groupe)&lt;br /&gt;
* le temps consacré à la conception &lt;br /&gt;
* le temps consacré au développement &lt;br /&gt;
* les principales difficultés rencontrées&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 35 minutes par soutenance pour : votre présentation et les questions. Au bout de 20 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et TR pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Deux rapports doivent être rédigés pour la partie Système : un document de conception système et un document d&#039;évaluation système. Ces documents doivent être accessibles depuis le wiki (ils peuvent même être directement édités sur le wiki).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ajouter les livrables que vous jugez utiles pour présenter le travail que vous avez réalisé. Pour ces livrables : numérotez les &lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Chaque livrable est numéroté (détails du livrable ci-dessous) LX, sous une forme à respecter. Certains ont une date de rendu à respecter. Ci-dessous le résumé de ces contraintes :&lt;br /&gt;
*L2 : 09/10 minuit : Wiki&lt;br /&gt;
*L3 : 09/10 minuit : Wiki&lt;br /&gt;
*L4 : 06/11 minuit : Wiki&lt;br /&gt;
*L5 : ?&lt;br /&gt;
*L6 : 06/11 minuit : Wiki&lt;br /&gt;
*L7 : 09/10 minuit : Wiki&lt;br /&gt;
*L8 : en continu : Wiki&lt;br /&gt;
*L9 : en continu : Wiki&lt;br /&gt;
*L10 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L11 : 18/12 minuit : Lien sur Wiki&lt;br /&gt;
*L12 : 19/12 lors du passage&lt;br /&gt;
*L13 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L14 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L15 : 08/11 lors du passage &lt;br /&gt;
*L16 : 19/12 lors du passage &lt;br /&gt;
*L17 : 19/12 lors du passage : Tableaux complétés et imprimés&lt;br /&gt;
*L18 : 10/10 lors du passage&lt;br /&gt;
&lt;br /&gt;
===Contenu===&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
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&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation JEE : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;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.&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (waffle ou autre)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
Le journal doit être nominatif. Chaque membre de projet doit gérer son propre journal. Il fera l&#039;objet d&#039;une évaluation personnelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L9).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à créer un wiki qui regroupera l&#039;ensemble de vos documentations. Cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer une organisation github ou bitbucket. Ajouter les membres du projet eCOM à l&#039;organisation. Créer plusieurs projets pour les différents parties. Activer les watchs. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;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, annotations JAX-RS, [[Swagger]]). L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl, [[Swagger]] UI, jmeter, .... Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et consommateur) et exécuter certaines requêtes avec des garanties transactionnelles. Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]] pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, Oracle, HSQL ...) (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL, Oracle, HSQL ...) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via [[JMS]] et des EJBTimer (voir http://ecom.ow2.org/xwiki/bin/view/Main/fremail)&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS via [[JMS]] et des EJBTimer ([[ECOM/SMSProviders|fournisseurs SMS]])&lt;br /&gt;
&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec [[Apache Jackrabbit]] &lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Intégration de [[Memcached]]&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST.&lt;br /&gt;
** Utilisation de services tiers via leurs APIs (voir le catalogue de [[Mashape]])&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Gestion d&#039;un &#039;&#039;cloud&#039;&#039; privé avec [[OpenStack]] avec [[Fuel]]&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Kubernete]] ou [[Docker Swarm]]&lt;br /&gt;
** Conditionnement de l&#039;application mobile avec [[Apache Cordova]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers ([[AxiMAG]] par exemple).&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google)&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]], [[Gatling]], OW2 CLIF, BlazeMeter.com) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Telegraf]] + [[InfluxDB]] + [[Grafana]].&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Rolling update (Blue-Green Deployment) des composants (applications et intergiciels).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom (utiliser [https://hub.docker.com/_/glassfish/ Glassfish]).&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[CoreOS]] ou [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]],  [[Hawkular]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2017-2018.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [https://glassfish.java.net/docs/4.0/administration-guide.pdf Guide d&#039;administration de Glassfish 4]&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/tutorial/doc/ Tutorial JavaEE 7 ] ([https://svn.java.net/svn/javaeetutorial~svn/ sources des exemples])&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/api/ API JavaEE 7]&lt;br /&gt;
* [https://java.net/projects/javaee-spec/pages/Home  Java EE Platform Specification]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
* Documentation et Training Kit sur Windows Azure : http://www.microsoft.com/en-us/download/details.aspx?id=8396&lt;br /&gt;
* Documentation de [http://roboconf.net/en Roboconf]&lt;br /&gt;
** Exemple avec LAMP http://roboconf.net/en/user-guide/lamp-example-part-1.html&lt;br /&gt;
http://proton.inrialpes.fr/~depalma/ecom/liens/liens.html&lt;br /&gt;
* [[Bootstrap]]&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur JavaEE se periment très vite avec l&#039;évolution de la spécification&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* [http://www.apress.com/9781430246268 Antonio Goncalves, Beginning JavaEE 7, APress, 2013], ([https://github.com/agoncal/agoncal-book-javaee7 examples]  pour [[Glassfish]] 4)&lt;br /&gt;
* [https://www.packtpub.com/application-development/java-ee-7-developer-handbook Peter A. Pilgrim, Java EE 7 Developer Handbook, Packt, 2013, ISBN 139781849687942 ]&lt;br /&gt;
* [http://www.packtpub.com/java-ee6-securing-tuning-extending-enterprise-applications-cookbook/book Mick Knutson, Java EE6 Cookbook for securing, tuning, and extending enterprise applications, Packt Publishing, June 2012]&lt;br /&gt;
* Holly Cummins and Timothy Ward, Enterprise OSGi in Action, March, 2013, 400 pages, ISBN: 9781617290138, http://www.manning.com/cummins/ ([http://www.manning.com/cummins/EOSGI_sample_ch02.pdf chapitre 2], [http://www.manning.com/cummins/EOSGI_sample_ch10.pdf chapitre 10])&lt;br /&gt;
* [http://www.manning.com/panda2/ Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan, EJB 3 in Action, Second Edition, March 2014, ISBN: 9781935182993], ([http://www.manning.com/panda2/EJB3iA_2E_SourceCode.zip source code of examples])&lt;br /&gt;
* [http://shop.oreilly.com/product/9780596158033.do  Andrew Lee Rubinger, Bill Burke, Enterprise JavaBeans 3.1, 6th Edition, O&#039;Reilly Media, Final Release Date: September 2010, Pages]&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[AngularJS]]====&lt;br /&gt;
* Brad Green, Shyam Seshadri, AngularJS, Pub OReilly http://shop.oreilly.com/product/0636920028055.do ([https://github.com/shyamseshadri/angularjs-book source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=36926</id>
		<title>ECOM-1FO</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=ECOM-1FO&amp;diff=36926"/>
		<updated>2017-11-03T05:00:55Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: /* Soutenances */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le projet eCOM consiste à concevoir et développer une application d’échange en ligne (commerce électronique, échanges de services…). [[ECOM|suite ...]]&lt;br /&gt;
&lt;br /&gt;
=Organisation=&lt;br /&gt;
==Aide à la lecture du document==&lt;br /&gt;
===Acronymes===&lt;br /&gt;
&#039;&#039;&#039;Les enseignants :&#039;&#039;&#039;&lt;br /&gt;
* DD : Didier Donsez (didier.donsez@imag.fr)&lt;br /&gt;
* SC : Sybille Caffiau (sybille.caffiau@imag.fr)&lt;br /&gt;
* TR : Thomas Ropras (thomas.ropars@imag.fr)&lt;br /&gt;
&#039;&#039;&#039;Les réalisations :&#039;&#039;&#039; &lt;br /&gt;
* DCS : Dossier de Conception Système &lt;br /&gt;
* SAS : Schéma d&#039;Architecture Système&lt;br /&gt;
&lt;br /&gt;
==Groupes et sujets==&lt;br /&gt;
===Groupes eCOM-RICM 2017-2018===&lt;br /&gt;
Les groupes sont imposés par les enseignants et seront donnés lors de la première séance. Ils ne seront définitifs que le mardi 19/09 à 8h.&lt;br /&gt;
====Groupe 1  ====&lt;br /&gt;
*AMODRU-FAVIN Hugo&lt;br /&gt;
*CHAMBONNET Simon&lt;br /&gt;
*FU Qianqian&lt;br /&gt;
*GAMBRO Antoine&lt;br /&gt;
*RIVOAL Alice&lt;br /&gt;
[[ECOM RICM5 Groupe1 2017|Fiche de suivi]]&lt;br /&gt;
&lt;br /&gt;
====Groupe 2 ====&lt;br /&gt;
*ALLARD Estelle&lt;br /&gt;
*COCHINHO Louis&lt;br /&gt;
*DELISE Antoine&lt;br /&gt;
*GUERRY Lucas&lt;br /&gt;
*ROCHER Lambert&lt;br /&gt;
[[ECOM RICM5 Groupe2 2017|Fiche de suivi]]&lt;br /&gt;
&lt;br /&gt;
====Groupe 3 ====&lt;br /&gt;
*BECHER Hervé&lt;br /&gt;
*DALLE Oriane&lt;br /&gt;
*GEOURJON Anthony&lt;br /&gt;
*LACHARTRE Denis&lt;br /&gt;
*SAVARY Rémi&lt;br /&gt;
[[ECOM RICM5 Groupe3 2017|Fiche de suivi]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Groupe 4  ====&lt;br /&gt;
*BOISADAM Antoine&lt;br /&gt;
*DEREYMEZ Maxime&lt;br /&gt;
*LEMAIRE Timothée&lt;br /&gt;
*LESAGE Lucas&lt;br /&gt;
*ZENNOUCHE Douria&lt;br /&gt;
[[ECOM RICM5 Groupe4 2017|Fiche de suivi]]&lt;br /&gt;
&lt;br /&gt;
====Groupe 5 ====&lt;br /&gt;
*BONHOURE Gilles&lt;br /&gt;
*FERNANDES DE ALMEIDA Héloïse&lt;br /&gt;
*MARCHAND Charles&lt;br /&gt;
*MOREAU Gwenaël&lt;br /&gt;
*VIAL-GRELIER Aymeric&lt;br /&gt;
*ZEGAOUI Taquyeddine (arrivée début octobre)&lt;br /&gt;
[[ECOM RICM5 Groupe5 2017|Fiche de suivi]]&lt;br /&gt;
&lt;br /&gt;
====Groupe 6 ====&lt;br /&gt;
*AUBERTIN Alicia&lt;br /&gt;
*BROCHIER Aymeric&lt;br /&gt;
*NASSIK Ahmed Amine&lt;br /&gt;
*ODIEVRE Boris&lt;br /&gt;
*TURRIN Vincent&lt;br /&gt;
[[ECOM RICM5 Groupe6 2017|Fiche de suivi]]&lt;br /&gt;
&lt;br /&gt;
===Groupes eCOM-RICM Années précédentes===&lt;br /&gt;
* [[Groupes eCOM-RICM 2015-2016]]&lt;br /&gt;
* [[Groupes eCOM-RICM 2014-2015]]&lt;br /&gt;
&lt;br /&gt;
==Planning des séances==&lt;br /&gt;
La partie IHM et la partie Système sont menées en parallèle pendant toute la durée du projet. Pendant toutes les séances vous travaillerez en groupe, il est donc obligatoire pour tous les étudiants d&#039;être présents à toutes les séances. Celles-ci sont composées :&lt;br /&gt;
* du cours (CM)&lt;br /&gt;
* du travail encadré (TD) : séance pendant lequel l&#039;enseignant vous accompagnera pour la réalisation d&#039;une étape de votre projet&lt;br /&gt;
* du travail en autonomie : séance réservée au travail d&#039;ECOM pendant laquelle vous travaillez entre étudiants&lt;br /&gt;
* de permanences : séances pendant lesquelles vous pouvez demander l&#039;aide d&#039;un enseignant pour vous aidez à avancer. Ces séances sont également l&#039;occasion pour vos enseignants de faire le point avec vous sur votre avancé, vous devez donc IMPERATIVEMENT signaler votre lieu de travail si vous n&#039;êtes pas dans les salles prévues par ADE (par email à SC et TR).&lt;br /&gt;
&lt;br /&gt;
An cas d’incohérence de planning avec ADE ; suivre ADE. &lt;br /&gt;
* 19/09 8h00-12h15 : Introduction 1h00(DD+SC) ([[Media:presentationEcomSeance1-2017.pdf|transparents]]), CM Outils de suivi de projet + JSP 3h00 [http://lig-membres.imag.fr/donsez/cours/http-ecom.pdf HTTP] &amp;amp; [[Media:RestfulServices.pdf|REST]] (DD) (F018)&lt;br /&gt;
* 19/09 15h45-18h30 : JavaEE [https://github.com/donsez/javaee7-angular-swagger-docker app JavaEE de démo]  [http://lig-membres.imag.fr/donsez/cours/javaee-ejb.pdf Cours JavaEE EJB](DD) Install [[JavaEE]] ([[Docker]] et [[Wildfly]]) Tutoriel EJB, Tutoriel Servlet/JSP/[[REST]]/WS/Filter/Docker ([[https://github.com/donsez/javaee7-angular-swagger-docker|lien]]) et [[JHipster]] pour le groupe &amp;quot;Gestion de courses sportives&amp;quot; (F202, F204). Vous pouvez générer le boilerplate de votre application avec des générateurs tel que http://www.generjee.com/.&lt;br /&gt;
&lt;br /&gt;
* 26/09 8h00-12h15 : Des scénarios aux spécifications IHM (SC) (P257)&lt;br /&gt;
* 26/09 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 03/10 8h00-12h15 : Travail en autonomie (F201,202)&lt;br /&gt;
* 03/10 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 10/10 8h00-12h15 : Audit 1 (F316) et travail en autonomie (F203)&lt;br /&gt;
* 10/10 15h45-18h30 :  Tests de robustesse (charges) (DD) (F203)&lt;br /&gt;
&lt;br /&gt;
* 17/10 8h00-12h15 : Travail en autonomie (F203, F217)&lt;br /&gt;
* 17/10 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 24/10 8h00-12h15 : Travail en autonomie (F203, F217)&lt;br /&gt;
* 24/10 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 07/11 8h00-12h15 : Soutenance 2 (F109) et travail en autonomie (F203)&lt;br /&gt;
* 07/11 15h45-18h30 :  Test utilisateur (SC) (F116)&lt;br /&gt;
&lt;br /&gt;
* 14/11 8h00-12h15 : Travail encadré (TR) (F216, F217)&lt;br /&gt;
* 14/11 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 28/11 8h00-12h15 : Travail encadré (TR) (F216, F217)&lt;br /&gt;
* 28/11 15h45-18h30 :  Travail en autonomie (F202, F204)&lt;br /&gt;
&lt;br /&gt;
* 05/12 8h00-12h15 : Travail en autonomie (F202, F204)&lt;br /&gt;
* 05/12 15h45-18h30 :  Travail encadré (TR) (F216, F217)&lt;br /&gt;
&lt;br /&gt;
* 12/12 8h00-12h15 : Travail encadré (TR) (F216, F217)&lt;br /&gt;
&lt;br /&gt;
* 19/12 8h00-12h15 : Soutenances finales (F201, F217)&lt;br /&gt;
* 19/12 15h45-18h30 :  Soutenances finales (F201, F212)&lt;br /&gt;
&lt;br /&gt;
==Modalités d’évaluation==&lt;br /&gt;
La note d’ECOM est obtenue par l’addition de notes obtenues tout au long de la réalisation du projet, elle peut être différente pour chaque membre du groupe en fonction du travail fourni et constaté par les enseignants. Attention : elle repose sur la &#039;&#039;&#039;qualité&#039;&#039;&#039; du travail fourni autant que sur la quantité.&lt;br /&gt;
*présentation soutenance conception (3 pts) : note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*présentation soutenance finale (3 pts) :  note affectée sur la présentation (qualité des slides, discours...), les réponses aux questions &lt;br /&gt;
*conception (5 pts) : note obtenue à partir des livrables de conception, de la prise en compte des remarques faites par les enseignants pendant la soutenance de conception, du travail fourni (et observé) et du contenu de la soutenance de conception&lt;br /&gt;
*développement (5 pts) : note obtenue à partir de la qualité et quantité du code réalisé, la démo de la soutenance finale. En particulier, seront observés, la qualité de l&#039;architecture de l&#039;application, la qualité et robustesse du code et la mise en place des principaux concepts de la technologie JEE.&lt;br /&gt;
*suivi de projet (4 pts) : cette note est obtenue par rapport aux livrables (qualité, livraison dans les délais...), la mise en place et bonne utilisation des outils collaboratifs, l&#039;intégration continue, [[Continuous Delivery|Livraison en continue]], le contenu de la soutenance finale&lt;br /&gt;
&lt;br /&gt;
==Soutenances==&lt;br /&gt;
&lt;br /&gt;
Trois soutenances sont prévues (2 audits et 1 soutenance finale) : &lt;br /&gt;
* audit 1 (exigences, besoins client) : le 10 octobre 2017&lt;br /&gt;
* audit 2 (conception) : le 07 novembre 2017&lt;br /&gt;
* soutenance de fin de projet le 19 Décembre 2017&lt;br /&gt;
Dans les trois cas, les soutenances doivent présenter les parties GL, Système et IHM.&lt;br /&gt;
&lt;br /&gt;
===Soutenance 1 ===&lt;br /&gt;
*Salle : F316&lt;br /&gt;
*Durée totale : 30 min par groupe (max 20 minutes de présentation et ensuite les questions des enseignants représentant les clients)&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
* ordre de passage : &lt;br /&gt;
&lt;br /&gt;
- groupe 6&lt;br /&gt;
&lt;br /&gt;
- groupe 3&lt;br /&gt;
&lt;br /&gt;
- groupe 1&lt;br /&gt;
&lt;br /&gt;
- groupe 2&lt;br /&gt;
&lt;br /&gt;
- groupe 4&lt;br /&gt;
&lt;br /&gt;
- groupe 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039; Contenu :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL&lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (envisagé)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Besoins pour clients, avec en particulier (mais non exhaustive) :&lt;br /&gt;
* Résultats de l’analyse de l’existant&lt;br /&gt;
* Utilisateurs cibles, contexte d’utilisation et objectifs utilisateurs (ie objectifs de l’IHM)&lt;br /&gt;
&lt;br /&gt;
===Soutenance 2 ===&lt;br /&gt;
*Salle : F109&lt;br /&gt;
*Durée totale : 25 min&lt;br /&gt;
*Utilisez des transparents pour présenter votre projet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous devez présenter les étapes de conception réalisées et les résultats (choix techniques…). De plus, nous vous rappelons que pour le dimanche minuit, vous devez avoir rendu accessibles les livrables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Pour la partie GL : point sur &lt;br /&gt;
* Organisation de l&#039;équipe (roles, ...)&lt;br /&gt;
* Méthodologie de travail&lt;br /&gt;
* Planning (modifications par rapport à ce que vous aviez prévu jusqu&#039;à maintenant et le planning futur)&lt;br /&gt;
* Choix technologiques&lt;br /&gt;
&lt;br /&gt;
Pour la partie Système&lt;br /&gt;
* Architecture systeme du service&lt;br /&gt;
* Nombre de Beans (diagramme de classe, type, ...)&lt;br /&gt;
* Extensions réalisées et envisagées &lt;br /&gt;
* Etat d&#039;avancement dans les développements&lt;br /&gt;
&lt;br /&gt;
Pour la partie IHM&lt;br /&gt;
* Maquettes et squelette du site (pour la plateforme cible)&lt;br /&gt;
* Charte graphique&lt;br /&gt;
&lt;br /&gt;
Une démonstration (rapide) de votre application telle qu&#039;elle est (v0 ou v1 en fonction des groupes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- groupe 6 : 8h&lt;br /&gt;
&lt;br /&gt;
- groupe 1 : 8h30&lt;br /&gt;
&lt;br /&gt;
- groupe 5 : 9h&lt;br /&gt;
&lt;br /&gt;
- groupe 2 : 9h45&lt;br /&gt;
&lt;br /&gt;
- groupe 4 : 10h15&lt;br /&gt;
&lt;br /&gt;
- groupe 3 : 10h45&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 25 minutes par soutenance pour : votre présentation et les questions. &lt;br /&gt;
Vous devrez gérer le temps. Les remarques (d’amélioration) qui seront faites pendant cette soutenance par les enseignants devront être prises en compte pour la version finale (pris en compte dans la note finale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC et DD pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
===Soutenance de fin de projet ===&lt;br /&gt;
&lt;br /&gt;
* Salle : &lt;br /&gt;
* Durée totale : &lt;br /&gt;
* Utilisez des transparents pour présenter votre projet. Lors de votre passage vous devez présenter une démo PRÉPARÉE.&lt;br /&gt;
&lt;br /&gt;
Arrivez avec l&#039;application démarrée (on ne perd pas de temps) et 1 ou 2 scénarios (de test)&lt;br /&gt;
* Préparez vous 30 minutes avant votre soutenance pour démarrer les instances Windows Azure (ou autre plateforme de Cloud de votre choix) avec le service développé.&lt;br /&gt;
* Les démonstrations peuvent être faites sur vos machines personnelles cependant le service eCOM doit IMPERATIVEMENT s&#039;exécuter sur une ou plusieurs instances de machines virtuelles sur le Cloud de votre choix&lt;br /&gt;
* Vous devez avoir tous les documents demandés (accessibles en ligne et/ou imprimés)&lt;br /&gt;
* Vous devez fournir au début de votre passage les fiches d&#039;auto-évaluation complétées (version papier)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Contenu attendu dans votre présentation( à avoir au minimum dans vos slides) :&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
* une présentation globale du projet&lt;br /&gt;
* le processus de conception (illustré)&lt;br /&gt;
* la démonstration de votre application&lt;br /&gt;
* des évaluations&lt;br /&gt;
* le bilan (pédagogique ET du projet/individuel ET groupe)&lt;br /&gt;
* le temps consacré à la conception &lt;br /&gt;
* le temps consacré au développement &lt;br /&gt;
* les principales difficultés rencontrées&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ordre de passage :&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Respectez l&#039;ordre établi.&lt;br /&gt;
Faites attention au temps. Vous disposez de 35 minutes par soutenance pour : votre présentation et les questions. Au bout de 20 minutes de présentation vous serez interrompus pour être interrogés.&lt;br /&gt;
Les questions peuvent être posées nominativement (c&#039;est à dire que la personne qui doit répondre est désignée par l&#039;enseignant).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION : Si vous voulez modifier l&#039;un des plannings, vous devez :&lt;br /&gt;
* trouver un autre groupe avec qui échanger&lt;br /&gt;
* vous assurer que tous les membres de ce groupe acceptent l&#039;échange&lt;br /&gt;
* envoyer un mail à SC, DD et TR pour informer du changement (avec le chef de projet de l&#039;autre groupe en copie)&lt;br /&gt;
Les modifications ne sont acceptées que jusqu&#039;au dimanche précédent la soutenance.&lt;br /&gt;
&lt;br /&gt;
==Livrables==&lt;br /&gt;
Deux rapports doivent être rédigés pour la partie Système : un document de conception système et un document d&#039;évaluation système. Ces documents doivent être accessibles depuis le wiki (ils peuvent même être directement édités sur le wiki).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ajouter les livrables que vous jugez utiles pour présenter le travail que vous avez réalisé. Pour ces livrables : numérotez les &lt;br /&gt;
&lt;br /&gt;
===Rendus===&lt;br /&gt;
Chaque livrable est numéroté (détails du livrable ci-dessous) LX, sous une forme à respecter. Certains ont une date de rendu à respecter. Ci-dessous le résumé de ces contraintes :&lt;br /&gt;
*L2 : 09/10 minuit : Wiki&lt;br /&gt;
*L3 : 09/10 minuit : Wiki&lt;br /&gt;
*L4 : 06/11 minuit : Wiki&lt;br /&gt;
*L5 : ?&lt;br /&gt;
*L6 : 06/11 minuit : Wiki&lt;br /&gt;
*L7 : 09/10 minuit : Wiki&lt;br /&gt;
*L8 : en continu : Wiki&lt;br /&gt;
*L9 : en continu : Wiki&lt;br /&gt;
*L10 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L11 : 18/12 minuit : Lien sur Wiki&lt;br /&gt;
*L12 : 19/12 lors du passage&lt;br /&gt;
*L13 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L14 : 18/12 minuit : Lien Git sur Wiki&lt;br /&gt;
*L15 : 08/11 lors du passage &lt;br /&gt;
*L16 : 19/12 lors du passage &lt;br /&gt;
*L17 : 19/12 lors du passage : Tableaux complétés et imprimés&lt;br /&gt;
*L18 : 10/10 lors du passage&lt;br /&gt;
&lt;br /&gt;
===Contenu===&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L1. Composition des groupes et sujet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Le sujet doit être validé par vos enseignants dès le premier jour du projet. Envoyez une description dans un corps de mail à DD et SC. Cette description doit contenir :&lt;br /&gt;
* les membres du projet&lt;br /&gt;
* le nom du chef de projet&lt;br /&gt;
* le nom du scrum master&lt;br /&gt;
* les rôles envisagés par chaque membre&lt;br /&gt;
* le titre du sujet&lt;br /&gt;
un paragraphe descriptif du sujet dans lequel est particulièrement explicité l&#039;adéquation du sujet et les requis (quelques lignes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L2. Dossier de conception Système&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
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&#039;implémentation. Le DCS doit donc être de taille relativement limitée (5 à 10 pages, 20 pages au grand maximum).&lt;br /&gt;
Le DCS est centré sur un schéma d&#039;architecture système (SAS). Pour chaque composant et lien du SAS, le DCS doit fournir : &lt;br /&gt;
* Une description fonctionnelle : La description fonctionnelle d&#039;un composant fait apparaître les attributs qui le composent, ainsi que les méthodes qu&#039;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. &lt;br /&gt;
* Une description d&#039;implantation JEE : La description d&#039;implantation décrit l&#039;implantation du composant ou du lien dans l&#039;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.&lt;br /&gt;
&lt;br /&gt;
Le dossier de conception système doit être disponibles depuis votre page wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L3. Analyse des besoins&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Questionnaire et son analyse pour définir les besoins utilisateurs que doit satisfaire votre application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L4.Maquette&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L5.SRS&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L6.Diagramme UML&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L7.Modèle de tâches&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L8.Scrum (waffle ou autre)&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
*(Ils peuvent si vous le souhaiter être directement édités sur le wiki) &lt;br /&gt;
* Le rapport de charge (benchmark) doit être (MUST) disponible sur le wiki.&lt;br /&gt;
* Le rapport sur les métriques logicielles doit être (MUST) disponible sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L9.Journal&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Détaillez l&#039;affectation des taches effectuées ainsi le temps estimé et le temps effectif pour chaque tache et son état (Réalisée, Reportée, Abandonnée, ...)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L10.Dépôt Git&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Votre code source doit être accessible en ligne avec un lien depuis votre fiche de suivi sur le wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L11.Application en ligne&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L12. Evaluation de l&#039;IHM réalisée&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
cf cours IHM  [[Media:Cours2015-2016RICM.pdf]]&lt;br /&gt;
&lt;br /&gt;
Evaluation utilisateur : [[media:System-Usability-ScaleLogicielComplet.pdf]] &lt;br /&gt;
et/ou &lt;br /&gt;
experte : [[media:EvalEfficacite.pdf]], [[Media:Annexe1-HeuristiqueNielsen.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L13. Evaluation de la qualité du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Nombre de lignes de code (outil CLOC à minima)&lt;br /&gt;
* Métriques de qualité du code ([http://www.sonarqube.org/ SonarQute], ...)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L14. Evaluation économique du projet&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
* Utilisez les temps effectifs des taches renseignées dans le journal.&lt;br /&gt;
* Utilisez le coût du travail d&#039;un ingénieur débutant.&lt;br /&gt;
* Comparez votre coût à l&#039;évaluation [[COCOMO]] de votre projet (utiliser les valeurs de L13).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L15. Diapos de votre présentation de conception&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L16. Diapos de votre présentation finale&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L17. Auto evaluation&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
Système : [[Media:FicheEval20162017-ECOM.doc]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;L18. Diapos de votre présentation client&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Réalisations attendues=&lt;br /&gt;
==Conduite et suivi de projet==&lt;br /&gt;
Le projet eCOM est très court en durée. Vous utiliserez la méthodologie [[Scrum]] pour la conduite du projet dans chaque groupe. Vous pouvez vous inspirer de la méthode [[Lean Startup]] pour livrer rapidement votre application. Vous devez choisir un Scrum Master (unique ou tournant) : justifiez votre choix et la durée du sprint (justifiez votre choix).&lt;br /&gt;
Vous devez prévoir :&lt;br /&gt;
* product backlog&lt;br /&gt;
* sprint backlog&lt;br /&gt;
* sprint planning&lt;br /&gt;
* démos&lt;br /&gt;
* rétrospectives&lt;br /&gt;
&lt;br /&gt;
Pensez à créer un wiki qui regroupera l&#039;ensemble de vos documentations. Cela doit être une documentation Agile !!!!&lt;br /&gt;
&lt;br /&gt;
(May) mettre en place des &amp;quot;poker planning&amp;quot;&lt;br /&gt;
[[File:20121002 141359.jpg|center|400px|PokerPlanningECOM2013]]&lt;br /&gt;
&lt;br /&gt;
Ces 2 premiers critères sont fixes !!!&lt;br /&gt;
&lt;br /&gt;
Selon les principes de la méthodologie Agile, vous devez composer votre travail en fonctionnalités. Chacune fera l’objet d’une conception (système et IHM) et d’un développement. Conception ET développement constituent l’ensemble des réalisations attendues.&lt;br /&gt;
&lt;br /&gt;
==Réalisations système==&lt;br /&gt;
===Conception système===&lt;br /&gt;
La conception système est composée de deux réalisations principales :&lt;br /&gt;
le modèle de donnée : il est vivement conseillé de définir le modèle de données aussi tôt que possible et d&amp;quot;en discuter avec les enseignants.&lt;br /&gt;
le schéma d&#039;architecture système (SAS) : ce schéma doit faire apparaître les composants qui vont constituer l&#039;application, ainsi que les liens entre les beans. Un lien depuis un composant A vers un (ou plusieurs) composant(s) B signifie qu&#039;une interaction peut avoir lieu depuis A vers B. Un lien peut être monovalué ou multivalué, monodirectionnel ou multidirectionnel.&lt;br /&gt;
&lt;br /&gt;
===Développement système===&lt;br /&gt;
Pour chaque fonctionnalités conçues, le développement système sera réalisé en deux étapes. &lt;br /&gt;
====Les étapes====&lt;br /&gt;
Etape 0 :&lt;br /&gt;
Créer une organisation github ou bitbucket. Ajouter les membres du projet eCOM à l&#039;organisation. Créer plusieurs projets pour les différents parties. Activer les watchs. Ajouter les webhooks utiles.&lt;br /&gt;
&lt;br /&gt;
Etape 1 :&lt;br /&gt;
La première consiste à définir le cœur de l&#039;application, c&#039;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, annotations JAX-RS, [[Swagger]]). L&#039;application RESTful est seulement accessible par l&#039;intermédiaire de clients type cUrl, [[Swagger]] UI, jmeter, .... Il n&#039;est pas demandé, de réaliser une interface web pour interagir avec l&#039;application. L&#039;application doit cependant offrir deux modes d’utilisation (administrateur et consommateur) et exécuter certaines requêtes avec des garanties transactionnelles. Votre machine virtuelle doit être sécurisée (Security Group et/or [[UFW]] pour les ports exposés). Evitez de vous faire rançonner comme un binôme de la promo 2016-2017 (voir ci-dessous, la rançon d&#039;une BD [[MongoDB]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ db.PLEASE_READ_ME.find()&lt;br /&gt;
{ &lt;br /&gt;
    &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;58a7287db7dc324adb249fdf&amp;quot;),&lt;br /&gt;
    &amp;quot;info&amp;quot; : &amp;quot;Don&#039;t panic. Your DB is in safety and backed up (check logs). &lt;br /&gt;
              To restore send 0.1 BTC and email with your server ip or domain name. Each 48 hours we erase all the data.&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot; : &amp;quot;0.1 BTC&amp;quot;,&lt;br /&gt;
    &amp;quot;data_we_have&amp;quot; : { &lt;br /&gt;
        &amp;quot;local&amp;quot; : [ &amp;quot;startup_log&amp;quot; ],&lt;br /&gt;
        &amp;quot;first_database&amp;quot; : [ &amp;quot;users&amp;quot;, &amp;quot;preferences&amp;quot; ],&lt;br /&gt;
        &amp;quot;MyAppXXX&amp;quot; : [ &amp;quot;emails&amp;quot; ] &lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;Bitcoin Address&amp;quot; : &amp;quot;1NSz9TRBGKHKFdjdjH2Gme3LwDi5&amp;quot;, &lt;br /&gt;
    &amp;quot;email&amp;quot; : &amp;quot;xxxxx@xxxx.org&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Etape 2 : &lt;br /&gt;
La seconde étape consiste à compléter le premier prototype (étape 1) avec les objectifs suivants : &lt;br /&gt;
* Développement d&#039;une interface Web basée sur le modèle MVC (SPA ou non) ;&lt;br /&gt;
* Modification de la configuration de déploiement pour la haute disponibilité (HA) :&lt;br /&gt;
# Mise en place d&#039;un container base de données externe (MySQL, Oracle, HSQL ...) (non répliquée)&lt;br /&gt;
# Mise en place de 2 containers base de données (MySQL, Oracle, HSQL ...) en cluster ([http://assets.en.oreilly.com/1/event/2/MySQL%20Replication%20Tutorial%20Presentation%202.pdf réplication])&lt;br /&gt;
# Mise en place de 2 containers &#039;&#039;frontends&#039;&#039; load balancer [[HAProxy]] en mode SSL terminaison ([[HAProxy#Configuration_en_SSL_Terminaison|instructions]])&lt;br /&gt;
* Amélioration des fonctionnalités. En particulier, considérez les points suivants :&lt;br /&gt;
** Renseignement de la [[Privacy policy guidelines|notice relative à la protection de la vie privée]].&lt;br /&gt;
** Gestion de la concurrence et de la reprise sur panne avec des transactions ACID&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi des courriels via [[JMS]] et des EJBTimer (voir http://ecom.ow2.org/xwiki/bin/view/Main/fremail)&lt;br /&gt;
** Gestion asynchrone et transactionnelle de l&#039;envoi de SMS via [[JMS]] et des EJBTimer ([[ECOM/SMSProviders|fournisseurs SMS]])&lt;br /&gt;
&lt;br /&gt;
* Ajout éventuel de fonctionnalités non prioritaires. De façon facultative, vous pourrez ajouter au prototype précédent quelques unes des fonctionnalités suivantes :&lt;br /&gt;
** Gestion de l&#039;internationalisation (i18n) des applications web et mobiles. &#039;&#039;Remarque : vous pouvez utiliser les principes et outils appris dans l&#039;UE Communication Langagière.&#039;&#039;&lt;br /&gt;
** Gestion des contenus multimedia (photos, videos, docs ...) avec [[Apache Jackrabbit]] &lt;br /&gt;
** Stockage externalisé des contenus multimedia par des [[Content Delivery Network]]s ([[Amazon S3]], Azure, Akamaï ...) &lt;br /&gt;
** Suivi du &#039;&#039;click stream&#039;&#039; avec des Filters en vue d&#039;une analyse &#039;&#039;[[Big Data]]&#039;&#039; avec [[Spark]] (&#039;&#039;Click Analytics&#039;&#039;, [https://github.com/pmerienne/iterative-cf Recommender System]).&lt;br /&gt;
** Intégration de [[Memcached]]&lt;br /&gt;
** Gestion rudimentaire d&#039;une interface vocale avec un serveur vocal [[EA2012-Serveux Vocaux|VoiceXML]].&lt;br /&gt;
** Utilisation de [[OAuth2]] ou [[OpenID]] pour le login et l&#039;accès aux API REST.&lt;br /&gt;
** Utilisation de services tiers via leurs APIs (voir le catalogue de [[Mashape]])&lt;br /&gt;
** Chat avec un opérateur du helpdesk (texte et/ou audio avec [[WebRTC]])&lt;br /&gt;
** Gestion d&#039;un &#039;&#039;cloud&#039;&#039; privé avec [[OpenStack]] avec [[Fuel]]&lt;br /&gt;
** Gestion d&#039;un [[CaaS]] Docker privé avec [[Kubernete]] ou [[Docker Swarm]]&lt;br /&gt;
** Conditionnement de l&#039;application mobile avec [[Apache Cordova]]&lt;br /&gt;
** Traduction automatique et à la volée des champs des produits (nom, description, commentaires et avis) en fonction de la langue de l&#039;usager, au moyen d&#039;un service tiers ([[AxiMAG]] par exemple).&lt;br /&gt;
&lt;br /&gt;
Remarque: certaines fonctionnalités sont assez indépendantes du noyau du projet : elles peuvent être mis en place dès le départ de l&#039;étape 1.&lt;br /&gt;
&lt;br /&gt;
====Le déploiement en continu====&lt;br /&gt;
Dès le démarrage, votre projet devra être géré selon les principes du &#039;&#039;[[DevOps]]&#039;&#039; : chaque version devra être déployé sur votre infrastructure de production en minimum de temps et sans interuption de services. Vous devez mettre en place des procédures de mise à jour des artifacts de l&#039;application en mode rolling update et fast rollback ([http://martinfowler.com/bliki/BlueGreenDeployment.html lien]).&lt;br /&gt;
&lt;br /&gt;
Remarques pour la mise en ligne :&lt;br /&gt;
NE COMMITEZ JAMAIS vos credentials Cloud (AWS, Azure, Google ...) DANS UN DEPOT PUBLIC !!!!!&lt;br /&gt;
&lt;br /&gt;
Votre compte serait utilisé pour créer plusieurs centaines de VMs et vous serez lourdement facturés ([http://readwrite.com/2014/04/15/amazon-web-services-hack-bitcoin-miners-github bitcoins], DDoD, ...) !&lt;br /&gt;
&lt;br /&gt;
Vous devez obligatoirement mettre en place les points suivants dès le démarrage du projet :&lt;br /&gt;
* Déploiement et retrait de l&#039;application sur/de la plateforme cloud publique ou privée (UFR, Amazon, Azure, Google)&lt;br /&gt;
* Performances (résultat du injection de charge avec [[Apache JMeter]], [[Gatling]], OW2 CLIF, BlazeMeter.com) : Astuce: utiliser les images [[Docker]].&lt;br /&gt;
* Reprise sur panne simple et alerte des &#039;&#039;ops&#039;&#039; avec [[Monit]] (ie relance simple du serveur en cas de &amp;quot;plantage&amp;quot;).&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Telegraf]] + [[InfluxDB]] + [[Grafana]].&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Rolling update (Blue-Green Deployment) des composants (applications et intergiciels).&lt;br /&gt;
* Script &amp;quot;basique&amp;quot; pour le Fast forward (en cas de panne des composants dernièrement mis à jour).&lt;br /&gt;
&lt;br /&gt;
Vous devez optionnellement mettre en place les points suivants:&lt;br /&gt;
* Déploiement avec [[Docker]] (dockerfile et docker-compose) pour l&#039;application eCom (utiliser [https://hub.docker.com/_/glassfish/ Glassfish]).&lt;br /&gt;
* Préparation d&#039;images [[Docker]]&lt;br /&gt;
* Injection de pannes avec [[Netflix Simian Army]]&lt;br /&gt;
* Déploiement de l&#039;application eCOM distribuée sur plusieurs VM [[CoreOS]] ou [[Ubuntu Core]] avec [[Vagrant]] et VirtualBox, Azure, Amazon EC2, [[Google&#039;s Compute Engine]] ...&lt;br /&gt;
* Supervision des VMs du système déployé avec un de ces systèmes : [[Nagios]], [[Shinken]], [[Icinga]], [[Filter]]s, [[Tomcat Valve]]s, [[Glimpse]], [[Ganglia]], [[Elasticsearch]] + [[ElastAlert]],  [[Hawkular]] ...&lt;br /&gt;
* Validation des services REST avec [[Swagger]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations IHM==&lt;br /&gt;
===Conception===&lt;br /&gt;
La conception de la partie IHM du projet sera principalement composée : &lt;br /&gt;
* Des modèles (tâches, IHMA)&lt;br /&gt;
* De la charte graphique&lt;br /&gt;
* De l&#039;explication des choix de conception faits&lt;br /&gt;
===Développement===&lt;br /&gt;
Vous êtes libres des technologies à utiliser pour le développement de la partie IHM de l&#039;application. Cependant, vous devez être capable de justifier vos choix. La partie IHM doit être distincte du noyau fonctionnel. Les codes de la partie présentation et du contenu de l&#039;IHM doivent également être séparés. Veuillez aux noms que vous attribuerez. Les &amp;quot;zones&amp;quot; définies dans vos IHMA doivent être facilement identifiables dans le code que vous réalisez (ex : ID des DIV).&lt;br /&gt;
&lt;br /&gt;
L&#039;IHM des utilisateurs différents peut être gérée différemment. Par exemple, l&#039;IHM de l&#039;administrateur de l&#039;application peut être une Interface en ligne de commande (pour l&#039;initialisation du catalogue du service, l&#039;ajout de nouveaux produits). Vous pouvez utiliser l&#039;interface EJB facade directement ou bien une interface [[RESTful]] en utilisant directement [[Curl]]).&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
==Transparents de cours==&lt;br /&gt;
&lt;br /&gt;
* Cours JEE/EJB(NDP) [[Media:EJB-ECOM2010.pdf]]&lt;br /&gt;
* Cours JEE tiers presentation (SCB) : [https://dl.dropboxusercontent.com/u/9706615/JEE_tiers_presentation.pdf url]&lt;br /&gt;
* Cours GWT (SCB) : [https://dl.dropboxusercontent.com/u/9706615/cours_GWT.pdf url]&lt;br /&gt;
* Cours maven (DD) : [http://membres-liglab.imag.fr/donsez/cours/maven.pdf url]&lt;br /&gt;
* Cours versionning (DD) : [http://membres-liglab.imag.fr/donsez/cours/version.pdf url]&lt;br /&gt;
* Cours subversion (DD) : [http://membres-liglab.imag.fr/donsez/cours/subversion.pdf url]&lt;br /&gt;
* Cours forge (DD) : [http://membres-liglab.imag.fr/donsez/cours/forge.pdf url]&lt;br /&gt;
* Cours http (DD) : [http://membres-liglab.imag.fr/donsez/cours/http.pdf url]&lt;br /&gt;
* Cours servlet (DD) : [http://membres-liglab.imag.fr/donsez/cours/servletjsp.pdf url]&lt;br /&gt;
* Cours IHM (SC) : [[Media:ECOMCours2017-2018.pdf]]&lt;br /&gt;
* Annexe Cours IHM (SC) : [[Media:Annexe1-HeuristiqueNielsen.pdf]], [[Media:Annexe2-KMADe.pdf]], [[Media:Annexe3-Placement.pdf]], [[Media:Annnexe4-Accesssibilité.pdf]]&lt;br /&gt;
&lt;br /&gt;
==Doc utiles==&lt;br /&gt;
* [http://lig-membres.imag.fr/donsez/cours/eaumlrel.pdf Transformation UML vers Relationnel]&lt;br /&gt;
* [https://glassfish.java.net/docs/4.0/administration-guide.pdf Guide d&#039;administration de Glassfish 4]&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/tutorial/doc/ Tutorial JavaEE 7 ] ([https://svn.java.net/svn/javaeetutorial~svn/ sources des exemples])&lt;br /&gt;
* [http://docs.oracle.com/javaee/7/api/ API JavaEE 7]&lt;br /&gt;
* [https://java.net/projects/javaee-spec/pages/Home  Java EE Platform Specification]&lt;br /&gt;
* [http://www.theserverside.com/news/thread.tss?thread_id=55191 JPA implementation patterns ]&lt;br /&gt;
* Présentation sur le Cloud Computing : http://erods.liglab.fr/icar2013/programme.html&lt;br /&gt;
* Documentation et Training Kit sur Windows Azure : http://www.microsoft.com/en-us/download/details.aspx?id=8396&lt;br /&gt;
* Documentation de [http://roboconf.net/en Roboconf]&lt;br /&gt;
** Exemple avec LAMP http://roboconf.net/en/user-guide/lamp-example-part-1.html&lt;br /&gt;
http://proton.inrialpes.fr/~depalma/ecom/liens/liens.html&lt;br /&gt;
* [[Bootstrap]]&lt;br /&gt;
&lt;br /&gt;
===Quelques livres et technologies===&lt;br /&gt;
&lt;br /&gt;
REMARQUE: les livres sur JavaEE se periment très vite avec l&#039;évolution de la spécification&lt;br /&gt;
====JavaEE====&lt;br /&gt;
*  [http://shop.oreilly.com/product/0636920030614.do Arun Gupta, Java EE 7 Essentials, Enterprise Developer Handbook, O&#039;Reilly Media, August 2013] ([https://github.com/javaee-samples/javaee7-samples + 200 exemples de projets Maven])&lt;br /&gt;
* [http://www.apress.com/9781430246268 Antonio Goncalves, Beginning JavaEE 7, APress, 2013], ([https://github.com/agoncal/agoncal-book-javaee7 examples]  pour [[Glassfish]] 4)&lt;br /&gt;
* [https://www.packtpub.com/application-development/java-ee-7-developer-handbook Peter A. Pilgrim, Java EE 7 Developer Handbook, Packt, 2013, ISBN 139781849687942 ]&lt;br /&gt;
* [http://www.packtpub.com/java-ee6-securing-tuning-extending-enterprise-applications-cookbook/book Mick Knutson, Java EE6 Cookbook for securing, tuning, and extending enterprise applications, Packt Publishing, June 2012]&lt;br /&gt;
* Holly Cummins and Timothy Ward, Enterprise OSGi in Action, March, 2013, 400 pages, ISBN: 9781617290138, http://www.manning.com/cummins/ ([http://www.manning.com/cummins/EOSGI_sample_ch02.pdf chapitre 2], [http://www.manning.com/cummins/EOSGI_sample_ch10.pdf chapitre 10])&lt;br /&gt;
* [http://www.manning.com/panda2/ Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan, EJB 3 in Action, Second Edition, March 2014, ISBN: 9781935182993], ([http://www.manning.com/panda2/EJB3iA_2E_SourceCode.zip source code of examples])&lt;br /&gt;
* [http://shop.oreilly.com/product/9780596158033.do  Andrew Lee Rubinger, Bill Burke, Enterprise JavaBeans 3.1, 6th Edition, O&#039;Reilly Media, Final Release Date: September 2010, Pages]&lt;br /&gt;
* Building, Packaging, and Distributing Java EE Applications in 2017 https://dzone.com/articles/building-packaging-and-distributing-java-ee-apps-in-2017-part-2&lt;br /&gt;
&lt;br /&gt;
====REST====&lt;br /&gt;
* The RESTful CookBook, How to do stuff RESTful, http://restcookbook.com&lt;br /&gt;
* [http://shop.oreilly.com/product/0636920028925.do Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, Designing and Developing Distributed Web Services, Publisher: O&#039;Reilly Media, Final Release Date: November 2013] ([https://github.com/oreillymedia/restful_java_jax-rs_2_0 source code of examples])&lt;br /&gt;
&lt;br /&gt;
===Web===&lt;br /&gt;
====[[Responsive Web Design]]====&lt;br /&gt;
* Matthew Carver, The Responsive Web, Manning, October 2014, ISBN: 9781617291241 http://www.manning.com/carver/ ([http://www.manning.com/carver/TRWSourceCode.zip source code])&lt;br /&gt;
&lt;br /&gt;
====[[AngularJS]]====&lt;br /&gt;
* Brad Green, Shyam Seshadri, AngularJS, Pub OReilly http://shop.oreilly.com/product/0636920028055.do ([https://github.com/shyamseshadri/angularjs-book source code])&lt;br /&gt;
&lt;br /&gt;
====[[Bootstrap]]====&lt;br /&gt;
* Jake Spurlock, Bootstrap, Responsive Web Development, Pub: O&#039;Reilly Media, http://shop.oreilly.com/product/0636920027867.do ([https://github.com/whyisjake/Bootstrap source code])&lt;br /&gt;
&lt;br /&gt;
====[[Ember]]====&lt;br /&gt;
&lt;br /&gt;
====Tests unitaires====&lt;br /&gt;
* [[Selenium]]&lt;br /&gt;
&lt;br /&gt;
====Intégration en Continue====&lt;br /&gt;
* [[Jenkins]]&lt;br /&gt;
&lt;br /&gt;
====Continuous Delivery====&lt;br /&gt;
* https://continuousdelivery.com/&lt;br /&gt;
&lt;br /&gt;
====Misc====&lt;br /&gt;
* Eric Ries, The [[Lean Startup]], http://theleanstartup.com/&lt;br /&gt;
&lt;br /&gt;
====Questionnaires pour les sites web====&lt;br /&gt;
* [[Media:Questionnaire copy.pdf]]&lt;br /&gt;
&lt;br /&gt;
====Evaluations des interfaces====&lt;br /&gt;
*[[Media:Evaluation Heuristiques Nielsen.pdf]]&lt;br /&gt;
* [http://blocnotes.iergo.fr/concevoir/les-outils/sus-pour-system-usability-scale/]&lt;br /&gt;
*[[Media:System-Usability-ScaleLogicielComplet.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Organisation===&lt;br /&gt;
* [[Trello]]&lt;br /&gt;
* [[Slack]]&lt;br /&gt;
* [[Waffle.io]]&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:ECOMCours2017-2018.pdf&amp;diff=36909</id>
		<title>File:ECOMCours2017-2018.pdf</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:ECOMCours2017-2018.pdf&amp;diff=36909"/>
		<updated>2017-11-01T18:42:05Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: Sybille.Caffiau uploaded a new version of &amp;amp;quot;File:ECOMCours2017-2018.pdf&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:Evaluation_Heuristiques_Nielsen.pdf&amp;diff=36908</id>
		<title>File:Evaluation Heuristiques Nielsen.pdf</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:Evaluation_Heuristiques_Nielsen.pdf&amp;diff=36908"/>
		<updated>2017-11-01T18:34:20Z</updated>

		<summary type="html">&lt;p&gt;Sybille.Caffiau: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sybille.Caffiau</name></author>
	</entry>
</feed>