====== TDs : M3301- Méthodologie de la production d’applications ======
Ce [[2014_2015:s3:methodo:start|module]] s'appuie sur une [[2014_2015:s3:etudedecas:etudedecas|étude de cas : Système de transport intelligent (ITS : Intelligent Transport System)]].
Il est mené en coordination avec le [[2014_2015:s3:concprogobjet:start|module : Conception et Programmation Objet Avancées]]. Les contenus ciblés par ces TDs sont notés en fonction du module principal ''Cx'' et de ce module secondaire ''CooX''.
===== Construction des équipes =====
Chaque groupe d'étudiants se divise en quadrinômes, pour former des sous-projets.
Chacun choisit son chef de projet.
===== Outils de suivi de projet =====
[[https://forge-iutinfo.unice.fr/|La forge de l'IUT]] qui est un redmine avec plusieurs modules additionnels sert d'outil au suivi de projet.
===== Déroulement =====
TOUTES les livraisons se font dans la forge !
Chaque livraison fait l'objet d'un document déposé dans la forge sous un répertoire LIVRABLES. Le document est numéroté conformément à la planification (pour 2015) et a une page de couverture qui précise la nature du livrable, les auteurs, l'IUT, l'année, ...
==== Phase 1 : Analyse ====
**Durée :** semaines du 1/9 au 15/9 incluse\\
** Objectifs : ** C2, C3, C4, C5b, C6, C8, Coo1, Coo4\\
A la fin de cette phase, le premier sprint est prêt à démarrer.
**Outils ** : \\
Les outils a utilisé pour cette phase sont Visual Paradigm, La forge (Redmine) de l'IUT et le Kanban associé.
** Organisation** : \\
- [[https://mbf-iut.i3s.unice.fr/doku.php?id=2014_2015:s3:methodo:td:organisation:startseance_1decouverte_du_sujet|TD en Phase 1 : Séance 1 : découverte du sujet (S3T : 1/9) (S3A : 2/9)]]
- [[https://mbf-iut.i3s.unice.fr/doku.php?id=2014_2015:s3:methodo:td:organisation:startseance_2travail_sur_le_us|TD en Phase 1 : Séance 2 : Travail sur les US (S3T : 8/9) (S3A : 2/9)]]
- [[https://mbf-iut.i3s.unice.fr/doku.php?id=2014_2015:s3:methodo:td:organisation:startseance_3planification_initiale_des_us|TD en Phase 1 : Séance 3 : Planification (S3T : 15/9) (S3A : 12/9)]]
**Artefacts de livraison** :\\
- Un //document// contenant :
- un glossaire
* Evaluation en fonction de la pertinence et de la complétude des termes explicités
- les cas d'utilisation,
* Evaluation en fonction de la pertinence, de la complétude et de la justesse des notations : les erreurs de notation induisent des points négatifs,
- Un ou des diagrammes de classes de niveau analyse,
* Evaluation en fonction de la pertinence, de la complétude et de la justesse des notations : les erreurs de notation induisent des points négatifs,
- des diagrammes de séquence
* Evaluation en fonction de la pertinence, de la complétude et de la justesse des notations : les erreurs de notation induisent des points négatifs,
- un ou des diagrammes d'activités
* Evaluation en fonction de la pertinence, de la complétude et de la justesse des notations : les erreurs de notation induisent des points négatifs,
- une étude sur les risques envisagés sur le projet, vous établirez cette partie à "l'instinct", nous reviendrons dessus plus tard (peut etre une ref aussi)
- une image du gant obtenu dans la forge,
- les propriétés qu'il vous semble essentiel de traiter telles que : sécurité, persistance, robustesse, en expliquant pourquoi. Vous pouvez vous appuyer sur le [[http://en.wikipedia.org/wiki/FURPS. |classement FURPS]], nous reviendrons dans le cours plus tard sur ce point.
- un //Kanban// contenant les US détaillées du premier sprint, celles du 2nd Sprint un peu moins détaillées et celles prévues pour gérer les intégrations mais à gros grain;
* pour chaque US nous avons :
* sa valeur métier attribuée par le PO
* sa valeur du point de vue développement (Story Points) élaborée par le groupe.
- un répertoire de projet dans la forge bien organisé avec tous les //documents// demandés.
- Le chef de projet explicite dans un document à sa convenance comment son groupe s'intégrera aux autres projets.
**Date de livraison** : **S3T : 19 septembre 20h & S3A : 3 octobre 20h **
==== Phase 2 : Sprints de développement ====
**Durée :** semaines du 22/9 au 10/11 incluse\\
** Objectifs :** C6, Coo1,Coo2,Coo3,Coo4 \\
** Outils** : \\
Les outils sont ceux utilisés dans le module[[2014_2015:s3:concprogobjet:start|M3105]], c'est à dire Eclipse, Visual Paradigm, la forge, ....
** Organisation** : \\
[[https://mbf-iut.i3s.unice.fr/doku.php?id=2014_2015:s3:methodo:td:organisation:startphase_2de_la_conception_au_code|Voir ici pour l'organisation du temps dans une séance.]]
* **Sprint 1** du 22 septembre au 13 octobre
- [[https://mbf-iut.i3s.unice.fr/doku.php?id=2014_2015:s3:methodo:td:organisation:startseance_1passage_en_conception|TD en Phase 2 : séance 1 : Passage en conception]] **(S3T : 22/9)**
- [[https://mbf-iut.i3s.unice.fr/doku.php?id=2014_2015:s3:methodo:td:organisation:startseance_2codage_de_la_partie_metier|TD en Phase 2 : séance 2 : Codage du "core"]] **(S3T : 29/9)**
- [[https://mbf-iut.i3s.unice.fr/doku.php?id=2014_2015:s3:methodo:td:organisation:startseance_3codage_et_preparation_des_demonstrations|TD en Phase 2 : séance 3 : Codage et préparation des démos]] **(S3T : 6/10)**
- [[https://mbf-iut.i3s.unice.fr/doku.php?id=2014_2015:s3:methodo:td:organisation:startseance_4livraisons_1_retrospective_preparation_du_sprint_2|TD en Phase 2 : séance 4 : Livraisons 1, rétrospective, Préparation du Sprint) 2]] **(S3T : 13/10)** **(S3A : 24/11)**
* **Sprint 2** du 20 octobre au 11 novembre inclus
- [[https://mbf-iut.i3s.unice.fr/doku.php?id=2014_2015:s3:methodo:td:organisation:startseance_5fin_des_livraisons_1_codage_des_us_du_sprint_2| TD en Phase 2 : séance 5 : codage des US du Sprint 2]] **(S3T : 20/10)**
- [[https://mbf-iut.i3s.unice.fr/doku.php?id=2014_2015:s3:methodo:td:organisation:startseance_6livraisons_2|TD en Phase 2 : séance 6 : Codage des US, Phase 2 & travail sur la livraison finale]] **(S3T : 3/11) **
- [[https://mbf-iut.i3s.unice.fr/doku.php?id=2014_2015:s3:methodo:td:organisation:startseance_7fin_des_livraisons_2_travail_sur_la_livraison_finale|TD en Phase 2 : séance 7 : Livraisons 2]] **(S3T : 10/11)**
**Artefacts de livraison** :
* Pour chaque livraison en cours des Sprint 1 et 2
- Une présentation et démonstration en séance, la durée maximum est de 1/4 d'heure.
* Evaluation en fonction de la clarté de la présentation, de la pertinence du travail réalisé en regard des US, de la qualité de la démonstration (choix des exemples, explications, fluidité) ((Une démonstration doit toujours être préparée en avance!))
* Le 1/4 d'heure est organisé comme suit :
* Présentation des US livrées (5mn) maximum
* Démonstration
* Discussions et choix des US qui seront développées au Sprint suivant
- Un document précisant
- les US qui ont été livrées (juste la référence)
- Un diagramme de classes de niveau conception
- les diagrammes UML jugés pertinents
* Evaluation en fonction de la pertinence des diagrammes choisis ou de leur absence
- une synthèse de ce qui s'est passé en bien ou en mal, les progrès éventuellement réalisés, l'organisation du projet.
- Les US bien placées dans le Kanban et complétes
- Les codes dans la forge sous la forme d'une "release"
* Chaque code respecte les consignes "classiques" : entête des fichiers en précisant le ou les auteurs
* Les tests unitaires.
- Une démonstration facultative sous la forme d'une video, d'un mode d'emploi, ..
* A la fin de la phase 2, Livraison dite finale.
- Un document contenant :
- Un diagramme de packages (S3A au 1e sprint)
- Un diagramme de classes en conception faisant la synthèse des développements, il peut être obtenu par reverse-enginering (S3A au 1e Sprint)
- Une explication des objectifs d'intégration en utilisant les outils aux choix, diagrammes de classes, interfaces, mocks déjà mis en place,.... ou simplement texte.
- Un retour sur l'étude du risque : leçons apprises et nouvelle estimation.
- Les codes dans la forge
* Les commits sont utilisés pour déterminer les étudiants qui ne participent pas à la gestion des codes
* Les entêtes des fichiers pour déterminer les contributions. Si tous les étudiants ont participé à tous les fichiers, il y aura sanction pour mauvaise gestion de projet.
- Utilisation des tâches et du Kanban
**Dates de livraison** : Aucune livraison ne sera prise en compte si elle n'est pas accompagnée d'une présentation à l'enseignante.
* **Sprint 1** :
- **Semaine du 13 octobre** : Tous les Groupes (livraison des artefacts associés le **17/10** à 20h)
* **Sprint 2** :
- **Semaine du 10 novembre** : Tous les Groupes (livraison des artefacts associés le **14/11** à 20h)
* **Rendu final** :
- le **14/11** à 20h (28/11 pour les S3A)
==== Phase 3 : Qualité du logiciel et Rétrospective ====
**Durée :** semaine du 17 novembre\\
** Objectifs :** //C4, C5, C7, Coo3//
**Outils ** :
**Organisation** :
- [[ https://mbf-iut.i3s.unice.fr/doku.php?id=2014_2015:s3:methodo:td:organisation:startseance_1qualite_et_retrospective |TD en Phase 3 : Séance 1 : Qualité et Rétrospective ]] **(S3T : 17/11)**
**Artefacts de livraison** :
- retour sur le cahier des charges initial : Avons-nous atteint nos objectifs? Qu'écririons nous différemment ?
- analyse critique en terme d'organisation dans le temps, dans les codes, dans l'évaluation des charges
**Date de livraison** : 22 novembre à 20h.
http://www.infoq.com/fr/news/2013/05/agile-scrum-retrospectives
==== Phase 4 : Integration ====
**Durée :** semaines du 24/11 au 15/12 incluse\\
** Objectifs :** C3, Coo4 \\
**Outils et Organisation** :
- TD en Phase 4 : séance 1 **(S3T : 24/11)** Ecriture des US des cas d'intégration
- Travail en sous groupes reformés pour répondre aux US qui ont été dégagées
- Des étudiants peuvent être placés sur des tâches d'intégration (par exemple des IHMs, ...)
- TD en Phase 4 : séance 2 **(S3T : 1/12)** Mise en place des tests d'intégration
- TD en Phase 4 : séance 3 **(S3T : 8/12)** Intégration
- TD en Phase 4 : séance 4 **(S3T : 15/12)** Rendu final par une démonstration du groupe
- La séance est globale pour tous les groupes. [[2014_2015:s3:methodo:td:S3AExposés|Pour les S3A, voir ici, le 20/1/2015]]
- Chaque groupe a 20 minutes maximum pour présenter son travail. Dans ce qui suit les points sont donnés à titre indicatif.
- Plusieurs étudiants participent à la présentation mais pas tous les étudiants.
- participation du groupe à la présentation (1pt)
- respect des temps (1pt), le non respect du temps fait perdre 1 point à partir de 5mn, 3 pts au delà de 10mn et ensuite vous êtes coupé.
- On attend (l'ordre est libre) :
- des supports de qualité (2pts), fautes d'orthographes (-1pt)
- une démonstration qui montre le logiciel intégré
- qualité du scénario : données réelles, pertinence, ... (2pts)
- qualité du déroulement : compréhension, fluidité, place des acteurs (2pts)
- qualité de l'interface : quelles interactions, design, .... (2pts)
- une présentation
- sur les objectifs ciblés par le groupe (il peut s'agir des US) (1,5pts)
- les critères d'acceptation envisagées et atteints (1,5pts)
- sur l'architecture résultante (2pts)
- une évaluation
- sur la "qualité" des codes (y compris les erreurs éventuelles qui persistent et les solutions que vous auriez aimé apporter)(2pts);
- sur la gestion du projet (3pts) :
- Comment avez-vous procédé pour "gérer" l'intégration ? A-t-elle été anticipée ou gérée comme un "rachat" d'entreprises?
- Comment vous êtes vous partagé le travail entre vous et dans le temps? Pensez à quantifier le travail.
- Quelles utilisations du dépôt? de la forge ?
- sur l'expérience acquise, les améliorations depuis le début du projet, les erreurs commises,... (1pt)
- 15 minutes de questions (5 pts) de la salle et des enseignants
- Une note sur 10 des autres groupes établie comme suit :
- chaque étudiant note les autres groupes (sur 10) avec une fiche expliquant sa note et des commentaires pour ses camarades.
- Ces fiches seront remises aux différents groupes pour les aider à s'améliorer.
- Elles peuvent être anonymes.
- Chaque groupe fait la moyenne des notes attribuées aux autres groupes et les remet aux enseignants. Une trop grande distance avec les notes des enseignants entrainera des pénalités.
- La moyenne des notes des groupes est ajouté à la note des étudiants.
**Artefacts de livraison (esquisses) ** :
- La présentation ci-dessus, avec éventuellement un video de la démo sont livrées dans la forge.
- La forge est utilisée pour évaluer :
- les activités de chacun :
- implication dans les US (1pt)
- commits & commentaires associés (1,5pt)
- entête des fichiers (1pt)
- l'organisation dans le temps :
- comment les tâches ont-elles été gérées dans le temps
- Temps de création des tâches (0,5pt)
- Suivi des tâches (0,5pt)
- Répartition des tâches sur les membres du groupe (1 pt)
- Temps des membres sur les tâches (1 pt)
- Les histoires ou cas d'utilisation correspondant aux intégrations, qui apparaissent sous forme de US (1 pt)
- Association des tâches aux US (1 pt)
- Les codes dont
- l'organisation des codes en packages (1pt)
- l'organisation sous forme de répertoires séparant les tests (1pt)
- Présence des Tests d'intégration réalisés en amont pour permettre le développement et plan de tests s'il y a lieu.(1pt)
- Un document "Livrable" avec la bonne structuration présentant le projet réalisé dans sa globalité : (0,5 pt)
- les histoires d'intégration ((vous pouvez faire référence à la forge)): scénarios, critères d'acceptation, complexité BV et SP (3 pts)
- Diagrammes UML montrant les interactions entre les sous-projets, l'architecture, ... (2pts)
- Rétrospectives (2pts):
- quelles modifications qui ont dû être réalisées pour supporter les intégrations?
- quelle gestion du projet avez-vous mis en place?
- Rétrospective : une par étudiant intégrée au document : (3pts)
- Qu'avez-vous appris? Que retenez-vous? Que ferez-vous de mieux dans l'avenir?
- qu'avez-vous bien réussi et dont vous êtes fiers!
**Dates de livraison** :
19/12 **(23/1 3/2 à 23h59 pour les S3A)**
===== Evaluation des TDs =====
- Coefficient 0,5 : Une note de suivi de projet est attribué à chaque étudiant en fonction de son implication dans le projet. Elle est déterminée en grande partie par son activité mémorisée dans la forge.
- Coefficient 1,5 : Note de Projet composée comme suit:
- Une note correspondant à la phase 1, coefficient 1.
- Une note correspondant aux livraisons de la phase 2, coefficient 2.
* Chaque livraison fait l'objet d'une seule note.
* Une livraison ne peut pas dépasser la fin de la phase.
*La note est calculée en fonction du nombre de livraisons prévues, c'est à dire 3 (Livraisons 1 et 2 et Livraison finale), et non pas en fonction des livraisons donc une livraison non faîte équivaux à un 0.
- Une note correspondant à la phase 3, coefficient 1. Il ne s'agit pas tant de juger de la qualité des codes que de la capacité du groupe à évaluer son code, à analyser son évolution et à proposer des améliorations.
- Une note correspondant aux intégrations de la phase 4, coefficient 1. Cette note est déterminée en fonction des livraisons, de leur complexité et de la multiplicité des relations, des "commits", de l'utilisation de la forge, ..
- Une note correspondant à la démonstration de la phase 4, coefficient 1. voir en fonction des informations données sur la démonstration.
- Une note est attribuée au chef de projet de chaque sous-groupe. Dans le cas où le travail a bien été réalisé, elle n'est considérée que si elle est un bonus pour l'étudiant.
- Une note est attribuée au chef de projet de chaque groupe. Dans le cas où le travail a bien été réalisé, elle n'est considérée que si elle est un bonus pour l'étudiant.