2014_2015:s3:concprogobjet:td:td3
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:td3 [2014/10/01 05:58] – [Responsabilités et Couplages] blay | 2014_2015:s3:concprogobjet:td:td3 [2015/02/16 07:45] (current) – [Responsabilités] blay | ||
---|---|---|---|
Line 68: | Line 68: | ||
- Et si maintenant, on veut afficher les messages en fonction de l' | - Et si maintenant, on veut afficher les messages en fonction de l' | ||
- | <box round rgb(150, | + | <box round rgb(150, |
- | * Dans votre répertoire de projet, sous TD3, se trouvent: | + | * Mettez un mail à votre encadreur avec soit l' |
+ | * Le rendu consiste en : | ||
- Un document contenant | - Un document contenant | ||
* votre modèle final (Tout le monde n' | * votre modèle final (Tout le monde n' | ||
* des explications sur les raisons de ce modèle, les choix que vous avez faits et les leçons apprises. | * des explications sur les raisons de ce modèle, les choix que vous avez faits et les leçons apprises. | ||
- | | + | |
+ | - Il est préférable que les codes soient commentés en respectant les consignes d'une javadoc ((utilisez simplement eclipse pour générer la stucture des commentaires par exemple)) | ||
Dans cet exercice nous évaluons votre capacité à concevoir les bons modèles et la " | Dans cet exercice nous évaluons votre capacité à concevoir les bons modèles et la " | ||
Line 112: | Line 115: | ||
===== Responsabilités et Couplages ===== | ===== Responsabilités et Couplages ===== | ||
- | On distingue deux formes de consommation pour un même modèle de voiture : | + | Déplacé |
- | * la consommation moyenne sur route, urbaine ou mixte [[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 à des questions comme : | + | |
- | * 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 que le coefficient est de 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 a minima)? Quel est le code? | + | |
- | - En fait, pour certains modèles de voiture (par exemple, les Renaults), les consommations moyennes sont obtenues par des requêtes à un service externe qui, en fonction des informations sur le modèle (on se limite au nom et à l' | + | |
- | - 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) et les leçons apprises. | + | |
- | - Les codes et les tests. Pensez bien que le service externe ne doit pas être implémenté. Une fonction qui pour l' | + | |
- | </ | + | |
- | + | ||
- | < | + | |
- | <!-- | + | |
- | + | ||
- | AJOUTER la gestion de l' | + | |
- | + | ||
- | ===== Refactoring et Duplication ===== | + | |
- | + | ||
- | Le bus est maintenant composée de boîtes à messages. | + | |
- | Plusieurs producteurs peuvent émettre des messages vers une même boîte, plusieurs consommateurs peuvent lire les messages dans une boite. | + | |
- | + | ||
- | //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 :** | + | |
- | - 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 : 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, | + | |
- | + | ||
- | 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' | + | |
- | ^ Re-armable | --- | --- | Il peut être réactivé | Il disparait en lecture au bout d'un temps donné, il doit alors être réactivé et s'il n'est pas re-armé, au bout d'un certain temps il est détruit| | + | |
- | + | ||
- | **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 du nombre de messages dans une boîte ? | + | |
- | + | ||
- | Proposer un modele d'IHM de reception des messages pour les aider à comprendre... ou les laisser faire? | + | |
- | ou la leur donner et les laisser la connecter? | + | |
- | + | ||
- | + | ||
- | + | ||
- | ===== 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 de vos classes | + | |
- | + | ||
- | + | ||
- | ===== 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 de performance ===== | + | |
- | + | ||
- | + | ||
- | 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é de votre algorithme. | + | |
- | + | ||
- | + | ||
- | => 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 de la ou des boîtes à messages concernées. | + | |
- | * //Objectifs : mise en oeuvre du pattern DAO + différents modèles de persistance + intégration par les interfaces + travail en équipe// : Les messages seront rendus persistants. Pour certaines boîtes les messages sont persistants, | + | |
- | * Il est assez surprenant d' | + | |
- | - Il sera possible de définir différentes formes de souscription. | + | |
- | + | ||
- | Nous n' | + | |
- | + | ||
- | --!> | + | |
- | </ | + |
2014_2015/s3/concprogobjet/td/td3.1412143136.txt.gz · Last modified: 2014/10/01 05:58 by blay