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:49] – [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 19: | Line 17: | ||
- Auto-Evaluer vos capacités de production. | - Auto-Evaluer vos capacités de production. | ||
+ | |||
+ | **Ce que nous allons faire** | ||
+ | |||
+ | // | ||
+ | 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** ([[2014_2015: | **Déroulement** ([[2014_2015: | ||
- | - (10mn) Explication | + | - (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 | - (5mn) Choisir 4 étudiants (PO) qui auront la charge de valider les US | ||
* leur distribuer les fiches de suivi | * leur distribuer les fiches de suivi | ||
Line 30: | Line 39: | ||
* 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**. | - (40 mn) Exécutez **5 sprints** de programmation de **7 min**. | ||
- | * Pendant le Sprint de programmation, | + | * Pendant le Sprint de programmation, |
+ | * Crier " | ||
+ | * Vous la présentez | ||
* Il peut la rejeter si elle ne correspond pas à ce qui a été défini avec lui. | * Il peut la rejeter si elle ne correspond pas à ce qui a été défini avec lui. | ||
* S'il l' | * S'il l' | ||
- | * Le PO note la US livrée et le temps par exemple 3eme minute du Sprint. | + | * Le PO note la US livrée et le temps par exemple |
- | * Evidemment vous avez compris qu'une livraison " | + | * Evidemment vous avez compris qu'une livraison " |
+ | * En mémorisant les tests, vous vous assurez de ne rien casser! | ||
* À la fin de chaque sprint, le chrono retentit pour signaler que l'on passe au Sprint suivant. Le Chrono ne s' | * À la fin de chaque sprint, le chrono retentit pour signaler que l'on passe au Sprint suivant. Le Chrono ne s' | ||
* 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 US? | + | - (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? |
- | + | * Jusqu' | |
- | + | | |
- | < | + | |
- | <!-- | + | |
- | ===== Distinguer Classe et Instances ===== | + | * qui a géré tous les états état? |
- | + | * qui a géré les remises? | |
- | + | * Visualiser | |
- | TROP COMPEXE... je pense que on a un pattern commande ou strategie dans ma modelisation on oublie. | + | * Savez-vous mieux vous estimer |
- | + | * Constatez-vous une évolution | |
- | Une consommation est caractérisée par une valeur et une unité de consommation | + | * Les PO comment avez-vous vécu la séance? |
- | Une vitesse est caractérisée par une valeur et une unité de vitesse qui peut être km/heure ou mile/heure. | + | * Pour les développeurs : comment ça a été ? |
- | + | * Quelle | |
- | On veut fournir un convertisseur de ces mesures. | + | * Tour de salle : Qu’avez-vous appris |
- | + | * D’autres questions ou réflexions ? | |
- | - 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.1409233789.txt.gz · Last modified: 2014/08/28 13:49 by blay