2014_2015:s3:concprogobjet:td:td6
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
2014_2015:s3:concprogobjet:td:td6 [2014/11/02 20:17] – [Capteur Passif Réactif (Simple)] blay | 2014_2015:s3:concprogobjet:td:td6 [2014/11/28 21:47] – [Refactoring et Pattern Composite] blay | ||
---|---|---|---|
Line 40: | Line 40: | ||
===== Capteurs Passifs ===== | ===== Capteurs Passifs ===== | ||
- | Les capteurs " | + | Les capteurs " |
Line 47: | Line 47: | ||
- Définir la classe CapteurPassif en lui associant un capteurPhysique. | - Définir la classe CapteurPassif en lui associant un capteurPhysique. | ||
+ | Voici les codes dont vous avez besoin : | ||
+ | | ||
+ | | ||
===== Pièce équipée ===== | ===== Pièce équipée ===== | ||
Line 91: | Line 94: | ||
- | QUESTION : | + | QUESTION |
* Définir la classe '' | * Définir la classe '' | ||
* Vous rendez ses instances observables en respectant le pattern ci-après : | * Vous rendez ses instances observables en respectant le pattern ci-après : | ||
Line 170: | Line 173: | ||
- | Vous pouvez faire le choix de continuer à tester avec EasyMock ou de faire les tests en créant les bouchons etc. | + | QUESTION (30mn) : |
+ | | ||
===== Pièce numérique " | ===== Pièce numérique " | ||
- | L' | + | L' |
- | Question | + | QUESTION (10mn) |
+ | * Vous devez définir une " | ||
Line 184: | Line 189: | ||
Lorsque l'on ajoute un capteur à une pièce de la maison on veut que le tableau de bord de la maison prenne automatiquement en compte cette évolution. | Lorsque l'on ajoute un capteur à une pièce de la maison on veut que le tableau de bord de la maison prenne automatiquement en compte cette évolution. | ||
- | Question | + | QUESTION |
+ | * Modifier vos classes pour prendre en compte cette nouvelle exigence, si vous ne l' | ||
Si vous le voulez, vous êtes autorisé à cette étape à utiliser les classes java '' | Si vous le voulez, vous êtes autorisé à cette étape à utiliser les classes java '' | ||
- | ===== Capteurs | + | ===== Capteurs |
Un capteur actif est associé à un capteur physique. Il scrute régulièrement la valeur physique du capteur physique qui lui est associé et notifie ses observeurs chaque fois qu'il détecte un changement. | Un capteur actif est associé à un capteur physique. Il scrute régulièrement la valeur physique du capteur physique qui lui est associé et notifie ses observeurs chaque fois qu'il détecte un changement. | ||
Line 194: | Line 200: | ||
Voici les éléments de code dont vous avez besoin pour le définir : | Voici les éléments de code dont vous avez besoin pour le définir : | ||
| | ||
- | public class CapteurReactif | + | public class CapteurActif |
</ | </ | ||
Line 220: | Line 226: | ||
- | QUESTION (15mn) : | + | QUESTION (30mn) : |
- | * Définir les capteurs | + | * Définir les capteurs actifs |
- | + | ||
- | + | ||
- | < | + | |
- | <!-- | + | |
- | ==== Capteurs | + | |
- | On définit ces capteurs par extension des précédents. | + | |
- | + | ||
- | Un boucle interne lancée au ... va lire dans un fichier régulièrement et fait un setValeur(). | + | |
- | + | ||
- | QUESTION (15mn) : | + | |
- | * Etendre votre diagramme de classe en conception pour lui ajouter la classe " | + | |
- | * Implémenter la. | + | |
- | * La tester. | + | |
- | + | ||
- | Leur donner la boucle de lecture dans un fichier par thread. | + | |
- | + | ||
- | + | ||
- | ==== Capteurs actifs automatiques intelligents ==== | + | |
- | Ne notifier que si la valeur a changé. | + | |
- | + | ||
- | + | ||
- | ==== Pièce numérique ==== | + | |
- | + | ||
- | Une pièce est à présent composée d'un ensemble de capteurs passifs et de capteurs actifs. | + | |
- | + | ||
- | Creer un pièce, créer les capteurs assiociés puis | + | |
- | 1- afficher les valeurs des capteurs passifs | + | |
- | 2- afficher les valeurs des capteurs actifs à chaque notification de changement de valeur | + | |
- | + | ||
- | Uniformiser pour les voir tous de la meme facon en ajoutant un boucle devant tut capteur passif etc... | + | |
- | + | ||
- | Monter au niveau de la maison | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | ==== Capteurs actifs : Test d' | + | |
- | + | ||
- | On veut vérifier que notre composant fonctionne bien en intégration, | + | |
- | + | ||
- | Pour cela on définit | + | |
- | + | ||
- | lecture dans un fichier régulièrement et notifie à chaque lecture. | + | |
- | + | ||
- | Leur donner la boucle de lecture dans un fichier par thread. | + | |
- | + | ||
- | ??? Extension : setFrequence de lecture. | + | |
- | + | ||
- | ??? Extension : notifie que si changement de valeur de lecture. | + | |
- | + | ||
- | ==== Capteurs actifs "en boucle" | + | |
- | + | ||
- | + | ||
- | + | ||
- | ===== Capteurs Actifs ===== | + | |
- | + | ||
- | Fournir les interfaces | + | |
- | + | ||
- | + | ||
- | Un bus avec des boites sur lesquels on emet des messages | + | |
- | + | ||
- | MyHighWay definit un service permettant | + | |
- | 1- d | + | |
- | + | ||
- | => get messages(troncon) | + | |
- | => emettre un message (Troncon, contenu) | + | |
- | + | ||
- | Un conducteur a la consommation de sa voiture, il demande a un service extérieur la consomation de son modele de voiture et | + | |
- | + | ||
- | + | ||
- | + | ||
- | Un service externe " | + | |
- | + | ||
- | Un message sur Twitter? | + | |
- | + | ||
- | On veut connecter un lecteur de flux RSS à notre bus. | + | |
- | Ainsi on veut faire une boite qui est connecté au flux. | + | |
- | On va vous fournir une classe qui fait cela en respectant l' | + | |
- | + | ||
- | On veut que vous étendiez les boites de messages pour ne retourner que des messages qui contiennent un mot clef. | + | |
- | + | ||
- | Vous devez tester en vérifiant que : | + | |
- | - le système n' | + | |
- | - qui permet de connaitre le nombre de messages dans le flux | + | |
- | + | ||
- | etc... | + | |
- | + | ||
- | + | ||
- | + | ||
- | https:// | + | |
- | + | ||
- | http:// | + | |
- | + | ||
- | + | ||
- | https:// | + | |
- | + | ||
- | rss reader | + | |
- | + | ||
- | + | ||
- | ====== 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 | + | ===== Refactoring et Pattern Composite |
- | * // | + | On vient de réaliser que des dispositifs |
- | 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'aborderons, hélas, pas les aspects distribués. | + | Proposer une modélisation qui préserve l'ensemble de vos " |
- | --!> | ||
- | </ |
2014_2015/s3/concprogobjet/td/td6.txt · Last modified: 2015/03/23 14:49 by blay