====== Génie Logiciel et Gestion de Projet ======
===== Objectifs du module =====
* Apprendre à gérer un projet en équipe de la définition du problème, à la réalisation de la solution.
* Définir les bonnes pratiques et outils indispensables au génie logiciel.
===== Modalités d'évaluation =====
Le module sera évalué sur les 4 axes suivants :
* Gestion de projets (GP)
* Outils pour le GL (OGL)
* Pratique du GL (PGL)
* Projet tutoré (P)
L'assiduité ainsi que la participation en cours et en TD participeront à l'évaluation de la note de GP.
Des rendus et des exposés détaillés dans la planification permettront d'évaluer l'ensemble des axes.
**Semestre 1 :**
Evaluation de Gestion de Projets /*(S1 - Coeff 1,5) */:
- Assiduité en cours TD
- Présentation de premier sprint (JIRA, Git)
- Présentation de second sprint (JIRA, Git, tests)
- Coaching et retrospective
Evaluation en Outils de GL /*(S1 - Coeff 2,5) */:
- Définition des user stories
- TD Service REST (Sprint 0)
- TD de Versioning
- TD Packaging et Intégration Continue
- Cours exploitation des design patterns
- Rapport intermédiaire (second sprint)
Evaluation en Projet Tutoré /*(S1 - Coeff 1,5) */:
- Présentation de premier sprint (code et présentation)
- Présentation de second sprint (code et présentation + prise en compte du feedback)
**Semestre 2 (peut évoluer) :**
Evaluation en Pratique du GL /*(S2 - Coeff 2)*/ :
- Utilisation des outils au cours du projet
- Présentation de quatrième sprint (JIRA, Git, tests)
- Présentation finale (JIRA, Git, tests)
Evaluation en Projet Tutoré /*(S2 - Coeff 1,5)*/ :
- Rapport de troisième sprint
- Présentation de quatrième (code et présentation + prise en compte du feedback)
- Présentation finale (code et présentation + prise en compte du feedback)
===== Intervenants =====
^ Nom ^ Affiliation ^ Adresse ^
| __[[blay@unice.fr|Mireille Blay-Fornarino]]__ (MBF) | IUT/UNS/I3S | Bureau XXX Ou Bâtiment Templiers : Bureau 449 ([[http://www.polytech.unice.fr/~blay|www]]) |
| __[[camillie@i3s.unice.fr|Cécile Camillieri]]__ (CC) | I3S | Bâtiment Templiers : Bureau 403 |
| __[[duffau@i3s.unice.fr|Clément Duffau]]__ (CD) | I3S/Axonic | Bâtiment Templiers : Bureau 402 |
| __[[lazreg@i3s.unice.fr|Sami Lazreg]]__ (SL) | I3S/Visteon | Bâtiment Templiers : Bureau 402 |
===== Planification =====
==== Première partie ====
* **06/09/16** : Introduction au module et au sujet :
* [[https://goo.gl/forms/zAReAQdQKP7unJwW2|Qui êtes-vous ?]]
* Cours **CC** & **CD** :
* {{:2016_2017:lp:idse:gl:0_introduction.pdf|Présentation du module}}
* {{:2016_2017:lp:idse:gl:1_project_management.pdf|Introduction à la gestion de projet}}
* {{:2016_2017:lp:idse:gl:2_intro_versionning.pdf|Introduction à la gestion de version}} /* {{:2015_2016:lp:idse:gl:gestion_de_version.pdf|Introduction à la gestion de version}} */
* TD **CC** & **CD** :
* {{:2016_2017:lp:idse:gl:3_project.pdf|Présentation du projet et des objectifs}} /* [[2015_2016:lp:idse:gl:sujet_projet|Présentation du projet et des objectifs]] */
* [[https://goo.gl/forms/rB3UW5G9XnC0SGGf1 | Constitution des groupes]]
* **13/09/16** : Agilité :
* Cours **CD** :
* {{:2016_2017:lp:idse:gl:4_agility.pdf|Introduction aux méthodes Agiles et User Stories}}
* TD **CD** :
* Atelier de découverte de l'agilité : Paper Plane
* Définition des Stories : Forum de discussion
* Evaluation :
* (OGL) Par équipe de projet : Users stories à rendre en **début de séance** le 20/09.
**Rendu des Users Stories sur papier en début du cours du 20/09. Pas rendu = 0.**
* **20/09/16** : Services web :
* Cours **CC** :
* {{:2016_2017:lp:idse:gl:5_ws.pdf|Architecture de services et services web}}
* {{:2016_2017:lp:idse:gl:ws-example.zip|Code d'un service web}}
* TD **CC** :
* {{:2016_2017:lp:idse:gl:td1_shapesws.pdf|Enoncé du TD}}
* {{:2016_2017:lp:idse:gl:td-shapes-ws.zip|Reprise du service web de formes}}
* (OGL) En binôme. Sprint 0: Rendre selon les consignes de l'énoncé pour le 2/10/2016.
* **27/09/16** : Versioning :
* Cours **CC/CD** :
* {{:2016_2017:lp:idse:gl:7_git.pdf|Gestion de version avancée, Git}}
* Présentation des outils Jira /*{{:2015_2016:lp:idse:gl:atlas_-_etudiant_-_g_rer_son_projet.pdf|aux outils JIRA}}*/
* Présentation sur {{:2016_2017:lp:idse:gl:8_kanban_in_practice.pdf|Kanban dans la pratique}}
* TD Git **CC** :
* {{:2016_2017:lp:idse:gl:td-git.pdf|Enoncé du TD Git}}
* (OGL) Seul. Rendu à faire pendant la séance.
* TD Jira **CD** :
* Prise en main de Jira
* Sujet du projet : {{:2016_2017:lp:idse:gl:project.pdf|Projet}}
**Fin du Sprint 0 (TD Web Services). Livraison attendue au plus tard le 2 octobre à 23h59 (heure française). Retard = 0.**
* **04/10/16** : Travail libre sur le Projet (CD)
* Cours **CD** :
* Rétrospective début d'année
* Planning Poker
* TD : Travail libre sur le Projet (CD)
* **11/10/16** : Tests :
* Cours **CD** :
* {{:2016_2017:lp:idse:gl:10__software_testing.pdf | Les tests logiciels}}
* {{:2016_2017:lp:idse:gl:11_Sprint_1_kick-off.pdf | Kick-off Sprint 1 }}
* JUNIT /*{{:2015_2016:lp:idse:gl:tests.pdf|JUNIT}}*/
* Tests et mocks /*{{:2015_2016:lp:idse:gl:tests.pdf|Tests et mocks}}*/
* Démo /*{{:2015_2016:lp:idse:gl:code-tests.zip|Exemple de tests présenté en cours}}*/
* TD **CD** :
* Mise en place de tests pour le service web de formes
* Evaluation OGL
**Mise en ligne du sprint-0 Sur Github. Livraison attendue au plus tard le 16 octobre à 23h59 (heure française). Retard = 0.**
* **18/10/16** : Packaging et Intégration continue :
* Cours **CC** :
* {{:2016_2017:lp:idse:gl:12_debrief_git_.pdf|Débrief TD Git et Sprint 0}}
* {{:2016_2017:lp:idse:gl:13_debrief_ws.pdf|Débrief TD Web Service}}
* {{:2016_2017:lp:idse:gl:14_maven_ci.pdf|Packaging, Automatisation et Integration Continue}}
* {{:2016_2017:lp:idse:gl:15_authentication_ws.pdf|Service d'authentification}}
* TD **CC** :
* Prise en main de Maven, projet de base : {{:2016_2017:lp:idse:gl:game.zip|projet.zip}}
* Connection avec Jenkins
* Evaluation OGL
/* * **11/10/16** : Tests le retour & integration continue:
* Cours & TD **CC** : */
* **25/10/16** et **01/11/16** : Vacances
* **08/11/16** : Travail sur Projet
* Séance encadrée **CC**
**Fin du Sprint 1. Livraison attendue au plus tard le 13 octobre à 23h59 (heure française). Retard = 0.**
* **14/11/16** : Introduction à UML (2h)
* Cours **MBF**
* TD sur les cas d'utilisation appliqués à l'étude de cas. (rendu)
* **15/11/16** : Fin du premier Sprint - Evaluation
* Cours **CC** & **CD**
* Release du premier Sprint (Tag Git et Release JIRA)
* Evaluation :
* Statut Jenkins
* Projet Maven
* Tickets
* Commits
* Tests
* Qualité du code
* Valeur ajouté de la solution (qu'est ce qui a été développé ?)
* **Démo Obligatoire**
* **21/11/16** : Diagrammes de classe et de séquence (4h)
* Cours **MBF**
* TD sur l'étude de cas (rendu)
* **22/11/15** : Rétrospective Sprint 1 et Kick-Off Sprint 2
* Cours **CD**
* {{:2016_2017:lp:idse:gl:17_sprint_1_retrospective.pdf|Retrospective Sprint 1}}
* {{:2016_2017:lp:idse:gl:18_sprint_2_kickoff.pdf|Kick-off Sprint 2}}
* **29/11/16** : Patrons de conception
* Cours **CC** :
* {{:2016_2017:lp:idse:gl:18_solid.pdf|Présentation des principes SOLID}}
* {{:2016_2017:lp:idse:gl:19_design-patterns.pdf|Introduction aux Design Patterns}}
* Catalogue et usages
* [[http://www.labri.fr/perso/xblanc/teaching.html | Cours de Xavier Blanc sur la COO (le cours 5 traite des design pattern)]]
* TD **CC** :
* Recherche et applications de patterns par groupe
* **06/12/16** : Travail libre sur le Projet (CC)
**Fin du Sprint 2. Livraison attendue au plus tard le 11 décembre à 23h59 (heure française). Retard = 0.**
* **12/12/16** : UML (4h)
* Cours **MBF**
* TD
* **13/12/16** : Fin du second sprint - Evaluation
* Cours **CC** & **CD**
* Présentation :
* Objectifs attendus
* Démonstration
* Etat actuel du projet (test, qualité, etc)
* Projection pour la suite
* Evaluation :
* GP (Git, JIRA, IC)
* P (code + présentation)
* **03/01/15** : Rétrospective globale et Kick-Off Sprint 3
* Cours **CC**
* {{:2016_2017:lp:idse:gl:20_sprint_2_retrospective.pdf|Retrospective premier semestre}}
* {{:2016_2017:lp:idse:gl:21_sprint_3_kickoff.pdf|Kick-off Sprint 3}} + {{:2016_2017:lp:idse:gl:21b-sprint3-appendix.pdf|Appendice (déploiement BDD)}}
* {{:2016_2017:lp:idse:gl:angular_basic_project.zip|Projet Angular de base, version corrigée}}
* TD **CC** :
* Définition des nouveaux groupes
* Mise en place et travail sur le projet
==== Deuxième partie ====
(Planning non final : des séances de cours remplaceront parfois le coaching.)
* **10/01/15** : Introduction à l'intégration
* Cours **CD**
* {{:2016_2017:lp:idse:gl:22_integration.pdf|Comment intégrer plusieurs projets?}}
* TD **CD** :
* Travail sur le projet
* **17/01/17** : Travail encadré sur le Projet et Coaching (**SL**)
* **24/01/17** : SoapUI et Sonar
* Cours **CD**
* {{:2016_2017:lp:idse:gl:23 _continuous_integration_tools.pdf| Outils et intégration continue}}
* **31/01/17** : Travail encadré sur le Projet et Coaching (**SL**)
* **07/02/17** : Travail encadré sur le Projet et Coaching (**SL**)
**Fin du Sprint 3. Livraison attendue au plus tard le 19 février à 23h59 (heure française). Release Git&Jira (sprint-3) + rapport technique. Retard = 0.**
* **21/02/17** : Travail encadré sur le Projet et Coaching (**SL**)
* **28/02/17** : Travail encadré sur le Projet et Coaching (**SL**)
* **13/03/17** :
* Cours **CC**
* {{:2016_2017:lp:idse:gl:24_test_mock_continued.pdf| Retour sur les tests unitaires et mocks}}
* **14/03/17** : Travail encadré sur le Projet et Coaching (**SL**)
* **21/03/17** : Travail encadré sur le Projet et Coaching (**SL**)
**Fin du Sprint 4. Livraison attendue au plus tard le 26 mars à 23h59 (heure française). Release Git&Jira (sprint-4). Retard = 0.**
* **28/03/16** : Fin du quatrième sprint - Evaluation
* Cours **CC** & **CD**
* Présentation :
* Objectifs attendus
* Revue de code
* Etat actuel du projet (test, qualité, etc)
* Projection pour la suite
* Evaluation :
* PGL (Git, JIRA, IC)
* P (code + présentation)
* **04/04/17** : Travail encadré sur le Projet et Coaching (**SL**)
* **25/04/17** : Travail encadré sur le Projet et Coaching (**SL**)
* **02/05/17** : Travail encadré sur le Projet et Coaching (**SL**)
* **09/05/17** : Travail encadré sur le Projet et Coaching (**SL**)
**Fin du Sprint 5. Livraison attendue au plus tard le 14 mai à 23h59 (heure française). Release Git&Jira (sprint-5) + slides soutenance. Retard = 0.**
* **16/05/17** : Fin du sprint final - Evaluation
* Cours **CC** & **CD**
* Présentation :
* Objectifs attendus
* Démonstration
* Etat du projet (test, qualité, etc)
* Prise de recul
* Evaluation :
* PGL (Git, JIRA, IC)
* P (code + présentation)
/* Liens QGL:
TDD: https://github.com/polytechnice-si/3A-OGL-TDD_Kata
Test integration (by Mireille): http://www.i3s.unice.fr/~mosser/_media/teaching/15_16/se/mbf_testintegration-2015.pdf
Crowd: Identity Management – http://atlas.i3s.unice.fr/crowd
JIRA: Project Tracker – http://atlas.i3s.unice.fr/jira
Stash: Git repository – http://atlas.i3s.unice.fr/stash
*/
/*
- **18/01/16** : Reprise de code :
* TD **SU** :
* Dispatching des anciens codes
* Réalisation de tests et fonctionnalités
* [[http://goo.gl/forms/x3s0U7jiOV|Auto-évaluation]]
- **18/01/16** : Redéfinition du projet :
* TD **SU** :
* Nouveaux objectifs :
* Réaliser un jeu de UNO avec tous les [[2015_2016:lp:idse:gl:sujet_projet|objectifs]]
* {{:2015_2016:lp:dam:gl:jira.pdf|Slides}} et {{:2015_2016:lp:dam:gl:atlas_-_etudiant_-_ge_rer_son_projet.pdf|document}} JIRA
- **25/01/16** : Développement du premier Sprint
* Fonctionnalités attendues (Rendu pour lundi 01/02/16 23h59) :
* Initialiser une partie (peut être IHM)
* Rejoindre une partie
- **02/02/16** : Fin du Sprint 1
* Démo :
* IHM : connection en tant qu'invité. Liste des parties sur le tableau de bord.
* API REST : créer une partie / rejoindre une partie / démarrer une partie / récup joueur et main joueur. Token d'authentification -> à revoir. Deux joueurs ne peuvent pas se connecter avec le même nom -> revoir la récup sur erreur. Seul le joueur qui a créé la partie peut lancer la partie. idcard : position de la carte dans la main.
* Rien niveau stat.
* Moteur : initialisation plateau et carte.
* Fonctionnalités Sprint 2 (Rendu pour lundi 08/02/16 23h59) :
* Initialisation partie niveau IHM
* Inscription et authentification utilisateur
* Jouer une partie avec toutes les règles.
* Discussion de refonte de l'API REST, structuration du code pour l'IHM
* Toujours pas de README
* Organisation du code dans le moteur
- **09/02/16** : Fin du Sprint 2
* Démo :
* IHM possible de créer une partie nb de joueurs de 2 à 6. Possible de rejoindre une partie et de la lancer. Guest géré avec un token.
* Moteur : Problème de mélange des cartes (à voir ?). Possible de poser des cartes, +2, changement de sens et passage de tour implémenté dans les cartes.
* API REST améliorée.
* Stats : base de données réalisée. Table user pour gérer les utilisateurs enregistrés. Table pour gérer la sauvegarde / import de partie. Pas de classe pour gérer la DB pour le moment.
* Fonctionnalités Sprint 3 (Rendu pour **dimanche 21/02/16 23h59**) :
* Côté IHM pouvoir jouer la partie
* Côté REST pouvoir gérer inscription des users
* Côté model faire les actions des cartes spéciales
* Faire l’inscription au jeu de bout en bout
* Faire le bump des versions (cf [[http://maven.apache.org/maven-release/maven-release-plugin/update-versions-mojo.html]])
* Attention groupe stats en chûte libre !
* IHM : faire plusieurs scripts pour gérer lancement jenkins / build complet de l'appli
* Moteur : attention à la structuration du code et aux tests
* REST : attention à ne pas ajouter du code sans savoir ce qu'il fait exactement
- **23/02/16** : Sprint 3
* Démo :
* Inscription possible à partir de l'interface (unicité de l'email et du login)
* Cas d'erreur pris en compte si l'utilisateur existe déjà
* Cas d'erreur pour un login/password incorrect
* Connection à partir d'un user
* Rafraîchissement des infos de la partie toutes les 5 secondes
* Possibilité de jouer :
* Affichage du tour du joueur suivant
* Cartes spéciales non fonctionnelles
* API REST : méthodes prennent un token d'authentification
* Moteur de jeu :
* Accès aux classes de règles : possibilité de créer des variantes
* Base de données :
* Inscription utilisateur
* Structure réalisée pour la gestion des stats
* Participation au projet (1 min / personne)
* Fonctionnalités Sprint 4 :
* Déconnection d'un user
* Sortie d'une partie non commencée
* Sortie d'une partie en cours -> suppression de la partie
* Variante de base + autre variante
* IA Basique
* Release attendue pour le **dimanche 13 mars à 23h 59**
- **01/03/16**
* Cours : début du cours sur l'automatisation du déploiement
- **15/03/16**
* Fin du cours {{:2015_2016:lp:idse:gl:deploiement.pdf|automatisation du déploiement}}
* [[http://www.telecom-valley.fr/workshop-docker-birthday-celebration-3/|Journée Docker organisée par Telecom Valley le 23/03/16]]
* Fonctionnalités attendues pour le Sprint 5 :
*
* Prochaine release attendue pour le **dimanche 20/03/16 23h 59**
- **22/03/16** : Sprint 5
* Démo :
* Interface d'administration : affichage des stats sur les parties en cours
* Langue cassée sur le serveur
* Bot implémenté mais pas lié à l'IHM
* Variante de jeu idem
* Sauvegarde pas intégrée dans le moteur
* Ergonomie pioche : changement de curseur pour la pioche et effet sur les cartes
* Bug +2 et +4 résolus
* Fonctionnalités attendues pour le Sprint 6 :
* Admin : liste des parties : pouvoir voir joueur et pouvoir détruire partie
* Test IA
* Refactoring BDD
* User BDD
* Refactoring board/game dans une branche feature/refacto
* Variante 7
* Release attendue pour le **lundi 28/03/16 12h 00**
- **29/03/16** : Sprint 6
* Utilisation Log4J : http://www.mkyong.com/logging/log4j-hello-world-example/
* Utilisation Selenium : http://www.seleniumhq.org/docs/02_selenium_ide.jsp
* Démo :
* Relance : pas de tests
* Administration : connection réalisée aux WS
* Debug effectué pour la traduction côté IHM
* Suppression de partie possible dans l'admin : pas de notifs pour les users présents
* Prise en compte dans l'affichage du fait que le joueur ne peut pas interragir avec ses cartes quand ce n'est pas son tour
* Fonctionnalités attendues pour le Sprint 7
* Refactoring moteur game/board
* Correction bugs IHM
* Admin : voir tous les joueurs / filtres pour la recherche de joueurs
* Admin : changement de rôles pour les joueurs (+ bannir)
* Possibilité de choisir la variante à la création de la partie
* Possibilité de choisir d'autres connecteur pour la BD (+ tests)
* Relance et sauvegarde d'une partie (moteur)
* Tests du player
* Tests de l'IA
* Ajout des logs
* Release attendue pour le **dimanche 17 Avril 23h 59**
- **19/04/16** : Sprint 7
* Présentation Globale du projet (20 min) :
* Présent : Jérémie Elbaz, Jérémy Froment, Baptise Etienne, Damien Clémenceau, Marina Helie-Zadeh
* Contexte du projet
* Fonctionnalités attendues / Fonctionnalités réalisées
* Organisation au sein du projet
* Architecture logicielle
* Points forts / points faibles
* Planning
* Présentations par équipes :
* Organisation de l'équipe (interne / externe)
* Travail réalisé + Focus technique
* Points forts / Points faibles
* IHM (10 min) : Jérémy Froment, Téva Locandro, Nicolas Claisse
* Moteur / IA / Règles (10 min) : Baptiste Etienne, Kevin Detti, Tom Phily, Pierre-Antoine Charpentier, Régis Parpex, Stéphanie Carrie, Nassim Omrani
* Sauvegarde / REST (10 min) : Damien Clémenceau, Jocelin Heinen, Jérémie Elbaz
* BDD (10 min) : Marina Helie-Zadeh, Ugo Paneccasio, Pierre Echardour, Mehdi Ibnettalib, Loic Monot
- **26/04/16** : Sprint 8
* Objectifs :
* Recherche d'utilisateur dans l'admin
* Tests IA
* Tests relance / sauvegarde
* Intégration des variantes
* Démo :
* Erreur dans la démo (bug aléatoire - Effet démo)
* DAO intégré mais pas totalement
* Démo : uniquement le moteur de recherche sur le nom du joueur
* Prévue pour la release du 03/05/16 :
* Intégration IA
* Intégration Variantes
* Intégration sauvegarde
- **26/04/16** : Sprint 8
* Démo :
* IA pas intégrée mais tests ajoutés.
* Correction des "token not found" lorsque l'on quittait une partie
* Sauvegarde à intégrer
* Amélioration Javadoc + tests IA
- **02/05/15** : Exposé final :
* Sprint final attendu pour le **15/05/16 23h 59**
* Critères des présentations :
* Contexte (du projet ou si équipe, au sein du projet)
* Fonctionnalités attendues / réalisées / abandonnées
* Organisation (interne à l'équipe et externe) + Utilisation des outils
* Architecture logicielle (gros grain et fin grain)
* Quels sont les points forts / points à améliorer
* Comment vous referiez les choses ?
* **8h30** -> **9h05** : Présentation Globale du projet (25 min + 10 min de questions)
* Jérémie Elbaz, Jérémy Froment, Baptise Etienne, Damien Clémenceau, Marina Helie-Zadeh
* Retour sur les Sprint
* **9h 10** -> **9h 50** : Présentation du moteur (30 min + 10 min de questions)
* Partie "Cœur" : Baptiste Etienne, Kevin Detti, Nassim Omrani
* Partie Règle : Tom Phily, Pierre-Antoine Charpentier
* Partie IA : Régis Parpex, Stéphanie Carrié
* **10h** : Présentation BDD (20 min + 5-10 min de questions)
* Marina Helie-Zadeh, Ugo Paneccasio, Pierre Echardour, Mehdi Ibnettalib, Loic Monot
* **10h 30** : Présentation Sauvegarde / REST (20 min + 5-10 min de questions)
* Damien Clémenceau, Jocelin Heinen, Jérémie Elbaz
* **11h** : Présentation IHM (20 min + 5-10 min de questions)
* Jérémy Froment, Téva Locandro, Nicolas Claisse
*/