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 revision | ||
2014_2015:s3:concprogobjet:td:td6 [2014/11/28 21:47] – [Refactoring et Pattern Composite] blay | 2014_2015:s3:concprogobjet:td:td6 [2015/03/23 14:49] (current) – [Capteurs Passifs] blay | ||
---|---|---|---|
Line 41: | Line 41: | ||
Les capteurs " | Les capteurs " | ||
+ | A votre convenance un capteur passif peut modifier la valeur lue dans le capteur physique pour lui associer une unité. | ||
Line 236: | Line 237: | ||
Proposer une modélisation qui préserve l' | Proposer une modélisation qui préserve l' | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | <box round rgb(150, | ||
+ | * Mettez un mail à votre encadreur avec soit l' | ||
+ | * Dans votre répertoire de projet 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. | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | < | ||
+ | < | ||
+ | ==== Capteurs actifs automatiques ==== | ||
+ | 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 ? | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== 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/td6.1417211246.txt.gz · Last modified: 2014/11/28 21:47 by blay