2014_2015:s3:concprogobjet:td:td2
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
2014_2015:s3:concprogobjet:td:td2 [2014/08/28 13:02] – [SMARTIE Party ! Savoir décomposer un problème] blay | 2014_2015:s3:concprogobjet:td:td2 [2014/08/28 15:58] (current) – [SMARTIE Party !] blay | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== TD2 : Soyons Pragmatique ! ====== | + | ====== TD2 : Savoir décomposer un problème |
- | **Objectifs :** Travailler sur de petits exemples différents points d'un développement pragmatic. | ||
- | <note warning> | + | ===== SMARTIE Party ! ===== |
- | + | ||
- | ===== SMARTIE Party ! Savoir décomposer un problème | + | |
Line 12: | Line 9: | ||
**L' | **L' | ||
+ | [[http:// | ||
**Nos objectifs sont :** | **Nos objectifs sont :** | ||
Line 20: | Line 18: | ||
- | **Déroulement** | + | **Ce que nous allons faire** |
- | - (10mn) Explication | + | |
- | - (5mn) Choisir 4 étudiants (PO) qui auront la charge de valider les US et leur distribuer les fiches de suivi | + | // |
+ | Construire une application simple en 40 minutes de développement, | ||
+ | Beaucoup développeraient cette application en découpant en 2-3 tranches, nous la découperons en 15-20 tranches. | ||
+ | Elephant Carpaccio = tranches très fines, chacune a quand même la forme de l’éléphant, | ||
+ | |||
+ | **Déroulement** | ||
+ | - (15mn) Explications | ||
+ | * sur l' | ||
+ | * Présenter l' | ||
+ | * Discuter le principe des user-stories. | ||
+ | * Tous les ordinateurs sont " | ||
+ | - (5mn) Choisir 4 étudiants (PO) qui auront la charge de valider les US | ||
+ | * leur distribuer les fiches de suivi | ||
+ | * les verres à mettre devant les équipes | ||
+ | * les smarties à distribuer | ||
- (5mn) Former des équipes de 2 à 3 étudiants => ~8 groupes => 2 groupes par étudiant PO | - (5mn) Former des équipes de 2 à 3 étudiants => ~8 groupes => 2 groupes par étudiant PO | ||
* Dans chaque équipe un seul ordinateur. | * Dans chaque équipe un seul ordinateur. | ||
* Environnement et langage de développement libre. | * Environnement et langage de développement libre. | ||
* Entre les 2 équipes d'un PO, et encore moins entre les groupes, il ne doit pas y avoir d' | * Entre les 2 équipes d'un PO, et encore moins entre les groupes, il ne doit pas y avoir d' | ||
- | - (10mn) Présenter l' | + | - (20 mn) |
- | - (15 mn) | + | * Les équipes découpent l' |
- | * Les équipes découpent l' | + | |
- | * estimées programmables dans un temps de 3 à 8 minutes chacune, | + | * Elles sont estimées programmables dans un temps de 2 à 6 minutes chacune, |
- | | + | |
+ | * Une US n’est valide que si elle comprend UI, entrée sortie et est visuellement distincte d'une autre US. Une UI peut être une simple console. | ||
+ | * Aucune US n’est composée que d’une maquette ou d’une interface, d’un jeu de données ou d’un test. | ||
* On n' | * On n' | ||
* Les PO vérifient qu'ils comprennent bien les US, qu'ils sauront les estimer, etc. | * Les PO vérifient qu'ils comprennent bien les US, qu'ils sauront les estimer, etc. | ||
* Les équipes décident des US qu' | * Les équipes décident des US qu' | ||
- | - (5 mn) Chaque PO enregistre sur sa fiche ou au tableau | + | - (5 mn) Chaque PO enregistre |
- | - (40 mn) Exécutez 5 sprints de programmation de 7 min. (Voir recommandation | + | - (40 mn) Exécutez |
- | * Pendant | + | * Pendant le Sprint de programmation, |
+ | * Crier " | ||
+ | * Vous la présentez au PO. | ||
+ | | ||
+ | * S'il l' | ||
+ | * Le PO note la US livrée et le temps par exemple //3eme minute du Sprint//. | ||
+ | * Evidemment vous avez compris qu'une livraison " | ||
+ | * En mémorisant les tests, vous vous assurez de ne rien casser! | ||
+ | * | ||
* Une US livrée correspond à 3 smarties, mais que si le PO décide qu' | * Une US livrée correspond à 3 smarties, mais que si le PO décide qu' | ||
- | - (15 mn) Partages entre équipes | + | - (7 mn) Partages entre équipes |
* Chaque équipe d'un PO fait une démonstration à une équipe d'un autre PO et inversement. | * Chaque équipe d'un PO fait une démonstration à une équipe d'un autre PO et inversement. | ||
- | * Aviez-vous | + | |
- | * Avez-vous développer les mêmes | + | - (20 mn) Débriefing |
- | - (15 mn) Débriefing | + | * Qui passe le test donné au tableau par le professeur? |
- | * Visualiser la différence entre les prévisions et la réalité | + | |
- | * Constatez vous une évolution du nombre de US traitées? | + | * Tout le monde trouve pareil? |
- | * Avez-vous raté des livraisons pour non correspondance avec les critères d' | + | * Jusqu' |
- | Run Five 7- to 10-minute programming sprints. At the end of each sprint, ring a bell or similar, each team shows its latest program running to another team. Clock does not stop between iterations, demos cost programming time. (Yes, truly, teams have done this successfully with /7/ minute iterations!) | + | |
- | + | | |
- | + | | |
- | < | + | * qui a géré tous les états état? |
- | <!-- | + | * qui a géré les remises? |
- | ===== Distinguer Classe et Instances ===== | + | * Visualiser |
- | + | * Savez-vous mieux vous estimer | |
- | + | * Constatez-vous une évolution | |
- | TROP COMPEXE... je pense que on a un pattern commande ou strategie dans ma modelisation on oublie. | + | * Les PO comment avez-vous vécu la séance? |
- | + | * Pour les développeurs : comment ça a été ? | |
- | Une consommation est caractérisée par une valeur et une unité de consommation qui peut être litre/km ou Galon/ | + | * Quelle |
- | Une vitesse est caractérisée par une valeur et une unité de vitesse qui peut être km/heure ou mile/ | + | * Tour de salle : Qu’avez-vous appris |
- | + | * D’autres questions ou réflexions ? | |
- | On veut fournir un convertisseur de ces mesures. | + | |
- | + | ||
- | - Proposer un modèle. | + | |
- | - Est-il extensible? Puis-je ajouter une nouvelle unité de vitesse telle que //Noeud//(( [[http:// | + | |
- | - Est-ce que les comportements précédents sont modifiés | + | |
- | --!> | + | |
- | </ | + | |
- | ===== Responsabilités et Couplages ===== | + | |
- | + | ||
- | On distingue deux formes | + | |
- | * la consommation moyenne sur route ou urbaine [[http:// | + | |
- | * la consommation en fonction de la vitesse | + | |
- | < | + | |
- | Si une voiture roule à '' | + | |
- | < | + | |
- | Avec un coefficient de '' | + | |
- | + | ||
- | <note warning> | + | |
- | + | ||
- | - Pour certains modèles de voitures, nous disposons de ces informations. Quelle modélisation proposez-vous pour répondre | + | |
- | * quelle est la consommation moyenne du modèle Clio sur Route (rep. 6,3)? urbaine(rep. 8,1)? | + | |
- | * quelle est la consommation moyenne d'une Clio à 150km/h? (mettons 3,85*10^-4 et donc une réponse de quasi 10, ... ce qui n'est pas du tout la réalité!!! ). | + | |
- | - Réfléchissez à l' | + | |
- | - On intègre à présent la consommation " | + | |
- | - On vient d' | + | |
- | - Comment est-il possible de créer un modèle de voiture? Quel est le diagramme de séquence associé (sur papier | + | |
- | | + | |
- | - Que retenez-vous? | + | |
- | + | ||
- | + | ||
- | + | ||
- | <box round rgb(150, | + | |
- | * Dans votre répertoire de projet, sous TD2, se trouvent: | + | |
- | - Un document contenant | + | |
- | * votre modèle final (Tout le monde n' | + | |
- | * des explications sur les raisons de ce modèle (dont vous êtes très fiers) | + | |
- | - Les codes et les tests. Pensez bien que le service externe ne doit pas être implémenté. Une fonction qui pour l' | + | |
- | </ | + | |
- | + | ||
- | ===== Refactoring et Duplication ===== | + | |
- | + | ||
- | Le bus est maintenant composée de boîtes à messages. | + | |
- | Plusieurs producteurs peuvent émettre | + | |
- | + | ||
- | //Exemples de scénario :// | + | |
- | - La voiture A a choisi d' | + | |
- | - La voiture B demande combien il y a de messages dans la boite "Etat Des Routes" | + | |
- | - La voiture B demande les messages qui se trouvent dans la boite "Etat des Routes" | + | |
- | - La voiture A efface le message qui se trouve dans la boite "Etat Des Routes" | + | |
- | - L' | + | |
- | + | ||
- | + | ||
- | **A FAIRE :** | + | |
- | | + | |
- | - Vérifier que tous les scénarios sont " | + | |
- | - Vérifier les propriétés vues en cours : orthogonalité? | + | |
- | - Implémenter et tester votre code sur les scénarios donnés. | + | |
- | + | ||
- | - On sait que l'on a très souvent besoin de connaître le nombre de messages dans une boîte que proposez-vous? | + | |
- | ===== Donnez-nous des exemples ===== | + | |
- | + | ||
- | Prenez le cours et vos codes passés un peu " | + | |
- | Rendu noté sur la pertinence des réponses. | + | |
- | + | ||
- | + | ||
- | ===== Polymorphisme ===== | + | |
- | + | ||
- | Le bus supporte à présent différents types de messages : Rémanent, Ephemere, Fondamental, | + | |
- | + | ||
- | A INTEGRER : Rearmamble : il s' | + | |
- | + | ||
- | Chacun de ces types de messages répond aux exigences suivantes concernant leur cycle de vie | + | |
- | + | ||
- | ^ ^ Création ^ Lecture ^ MiseAJour ^ Destruction^ | + | |
- | ^ Rémanent| Il connait son créateur | | Peut être mis à jour par son créateur| Ne peut être détruit que pas son créateur| | + | |
- | ^ Ephemere| | Est automatiquement retiré de sa boîte dès qu'il est lu| Ne peut pas être mis à jour| Ne peut être détruit que s'il n'est plus dans une boite| | + | |
- | ^Temporel|Il connait la date où il a été créé et sa durée |Il ne peut être lu que s'il n'est pas périmé. S'il est périmé, il est détruit lorsque l'on demande à le lire|Peut être mis à jour| Est automatiquement détruit quand il est périmé| | + | |
- | ^ Intelligent|Il connait son créateur|N' | + | |
- | + | ||
- | + | ||
- | **A FAIRE** | + | |
- | - Proposer un modèle de classes en conception | + | |
- | - Vérifier que tous les scénarios sont " | + | |
- | - Vérifier les propriétés vues en cours | + | |
- | - Implémenter et tester votre code sur les scénarios donnés. | + | |
- | - Vérifier que tous vos scénarios précédents sont toujours fonctionnels, | + | |
- | - Quel impact sur le calcul | + | |
- | + | ||
- | + | ||
- | + | ||
- | ===== Responsabilités ===== | + | |
- | + | ||
- | En fonction des mots clefs qui constituent le contenu des messages, ils sont automatiquement associés à une boîte de message. Si aucune correspondance n'est détectée une boîte " | + | |
- | + | ||
- | Exemples : | + | |
- | - " | + | |
- | - " | + | |
- | - "photo " conduit à poster le message dans la boite " | + | |
- | + | ||
- | **A FAIRE** | + | |
- | - Qui crée les messages? | + | |
- | - Qui est responsable de filtrer les mots clefs? | + | |
- | - Quel est la complexité du filtrage? | + | |
- | - Déterminer le couplage | + | |
- | + | ||
- | + | ||
- | ===== Abstraction ===== | + | |
- | + | ||
- | Si maintenant, on veut créer une nouvelle boîte qui reçoit les messages contenant contenant " | + | |
- | + | ||
- | Si maintenant on veut que tout message dans la boite SNAPCHAT soit ephemere ? | + | |
- | + | ||
- | + | ||
- | ===== Estimation | + | |
- | + | ||
- | + | ||
- | Une route est définie par des Tronçons. Un tronçon est défini par deux Positions et une longueur. Une Position est définie par un nom. | + | |
- | + | ||
- | Calculer le plus cours chemin entre deux positions. | + | |
- | Déterminer la complexité | + | |
- | + | ||
- | + | ||
- | => Outils de recherche de code dupliqué? | + | |
- | + | ||
- | + | ||
- | ===== Suites prévues pour ce projet ===== | + | |
- | + | ||
- | * // | + | |
- | Le bus gère des " | + | |
- | Dans le scénario de base, la voiture A a choisi d' | + | |
- | * //Objectifs : Apprentissage d'une famille courante de patterns (fabrique, builder) mais uniquement par l' | + | |
- | * //Objectifs : Prise en compte des IHMs et mise en place du pattern MVC à tous les niveaux// : Définir les interfaces graphiques qui nous permettraient d' | + | |
- | * //Objectifs : Prise en considération des responsabilités uniques// : Routage en fonction des messages : La voiture A emet un message et le bus décide | + | |
- | * // | + | |
- | * Il est assez surprenant d' | + | |
- | - Il sera possible de définir différentes formes de souscription. | + | |
- | + | ||
- | Nous n' | + |
2014_2015/s3/concprogobjet/td/td2.1409230953.txt.gz · Last modified: 2014/08/28 13:02 by blay