User Tools

Site Tools


2017_2018:s3:concprogobjet:td:td7

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
2017_2018:s3:concprogobjet:td:td7 [2017/11/24 09:12]
blay [Pièce équipée]
2017_2018:s3:concprogobjet:td:td7 [2017/12/06 10:42] (current)
blay [Rendu]
Line 3: Line 3:
  
 ====== Digital Home : application des DP ====== ====== Digital Home : application des DP ======
-<note warning>​DRAFT</​note>​+
 Objectifs de ce TD :  Objectifs de ce TD : 
   - Appréhender une petite application dans sa totalité   - Appréhender une petite application dans sa totalité
Line 59: Line 59:
  
 QUESTION (5 mn):  QUESTION (5 mn): 
-  * Récupérer le code "​bouchon"​ du capteur Physique. **VOUS n'avez pas le droit de le modifier !!** +  * Récupérer le code "​bouchon"​ du {{:​2017_2018:​s3:​concprogobjet:​td:​physicalsensor.jar|capteur Physique}}. **VOUS n'avez pas le droit de le modifier !!** ; vérifiez que les tests passent bien avant de passer à la suite.
 <note tip>​Attention de manière générale on ne fait pas des tests sur des "​string"​ pour tester l'​état des objets. ​ <note tip>​Attention de manière générale on ne fait pas des tests sur des "​string"​ pour tester l'​état des objets. ​
  
Line 76: Line 76:
    - Tester vos capteurs logiciels.    - Tester vos capteurs logiciels.
  
- 
- 
-Voici le diagramme de classe concernant cette partie, pour vous aider éventuellement. 
- 
-{{ :​2015_2016:​s3:​concprogobjet:​td:​iut.capteurs.jpg?​direct&​300 |}} 
  
 ===== Capteurs logiciels à état ===== ===== Capteurs logiciels à état =====
Line 103: Line 98:
  
  StateLazy sl;  StateLazy sl;
- PhysicalSensor ​ps = new PhysicalSensor("​mySensorLux"​);+ Sensor ​ps = ....;
   
  @Before  @Before
Line 124: Line 119:
  
 QUESTION (15 mn):  QUESTION (15 mn): 
-   - Mettez à jour votre diagramme de classe si besoin.+   - Mettez à jour votre diagramme de classe si besoin ​en identifiant bien les éléments de design pattern.
    - Définissez la classe ''​CapteurOnOffLazy''​    - Définissez la classe ''​CapteurOnOffLazy''​
    - Testez votre classe, voici des exemples si cela peut vous aider.    - Testez votre classe, voici des exemples si cela peut vous aider.
Line 195: Line 190:
  
 QUESTION (10 mn):  QUESTION (10 mn): 
-   ​- ​Compléter ​ou corriger ​si besoin votre diagramme de classe. +   ​- ​Complétez ​ou corrigez ​si besoin votre diagramme de classe. 
-   ​- ​Définir ​la classe ''​Piece''​ +   ​- ​Implémentez ​la classe ''​Piece''​ 
-   ​- ​Créer ​un jeu de tests vous permettant de tester votre classe ''​Piece''​. ​+   ​- ​Créez ​un jeu de tests vous permettant de tester votre classe ''​Piece''​. ​
  
-Exemple de trace :+Exemple de l'​appel d'​affichage suite à l'​appel à ''​toString''​ sur une pièce:
 <​code>​ <​code>​
 Salon Salon
Line 207: Line 202:
 ===== Maison numérique ===== ===== Maison numérique =====
  
-Une maison numérique est une composition de lieux dont certaines ​parties sont des composions ​de lieux (l'​étage est composé de la partie enfant et du bureau) et d'​autres sont des pièces (bureaux, chambres, ..).+Une maison numérique est une composition de parties ​dont certains ​parties sont elles-même ​des compositions ​de parties ​(l'​étage est composé de la partie enfant et du bureau) et d'​autres sont des pièces (bureaux, chambres, ..).
  
-Il doit être possible d'​interroger une partie de la maison pour connaitre tous les capteurs qu'​elle contient : Pour une pièce, les capteurs qui lui sont associés, pour une partie, ses propres capteurs (par exemple, le thermostat de l'​étage) + les capteurs des parties qui la compose.+Il doit être possible d'​interroger une partie de la maison pour connaitre tous les capteurs qu'​elle contient : Pour une pièce, les capteurs qui lui sont associés, pour une partie ​composite, ses propres capteurs (par exemple, le thermostat de l'​étage) + les capteurs des parties qui la compose.
  
  
  
 +Voici la maison que vous devez modéliser : 
 +  - Un RDC, un étage et un extérieur.
 +  - Un étage avec 2 chambres, chacune avec son thermometre et un thermostat global à l'​étage ​
 +  - etc.
 +{{ :​2015_2016:​s3:​concprogobjet:​td:​maisonnumerique.png?​direct&​300 |}}
  
 QUESTION (25 mn):  QUESTION (25 mn): 
-  * Modéliser ​la classe ''​MaisonNumerique''​ et **tout** ce qui est nécessaire pour répondre aux exigences.+  * Modélisez ​la classe ''​MaisonNumerique''​ et **tout** ce qui est nécessaire pour répondre aux exigences.
   * Avez-vous utilisé un ou des DP? Si oui, annotez vos classes avec des "​stéréotypes"​ permettant d'​identifier les différents rôles joués par vos classes.   * Avez-vous utilisé un ou des DP? Si oui, annotez vos classes avec des "​stéréotypes"​ permettant d'​identifier les différents rôles joués par vos classes.
-  * Implémenter ​et tester ​la.+  * Implémentez ​et testez ​la
 +  * Implémentez la maison donnée ci-après, et vérifiez que vous êtes bien capable de la représenter.
  
 <note tip>Oui oui, l'​énoncé n'est pas mâché... Il est possible que vous deviez réécrire des codes, mais maintenant ce n'est plus un problème n'​est-ce pas?  <note tip>Oui oui, l'​énoncé n'est pas mâché... Il est possible que vous deviez réécrire des codes, mais maintenant ce n'est plus un problème n'​est-ce pas? 
Line 225: Line 226:
  
  
-Voici la maison ​que vous devez modéliser :  + 
-  - Un RDCUn étage et un extérieur+Voici une nouvelle ​maison, ​décrite ​un peu différemment
-  - Un étage avec 2 chambres, chacune avec son thermometre et un thermostat global à l'​étage ​ + 
-  - etc+<​code>​ 
-{{ :​2015_2016:​s3:​concprogobjet:​td:​maisonnumerique.png?​direct&​300 |}}+maison = new Maison(); 
 +rdc = new PartieMaison("​RDC"​);​ 
 +cuisine = new Piece("​Cusine"​);​ 
 +sam = new Piece("​Salle e manger"​);​ 
 + 
 +parentalPart = new PartieMaison("​Partie Parentale"​);​ 
 +chambreParents = new Piece("​parents"​);​ 
 +sdbParent = new Piece("​salle de bain des parents"​);​ 
 +parentalPart.addLieu(chambreParents);​ 
 +parentalPart.addLieu(sdbParent);​ 
 +parentalPart.addSensor(thermostatParental);​ 
 + 
 +rdc.addLieu(cuisine);​ 
 +rdc.addLieu(sam);​ 
 +rdc.addLieu(parentalPart);​ 
 + 
 + 
 +etage = new PartieMaison("​Etage"​);​ 
 +chambre1 = new Piece("​Chambre1"​);​ 
 +chambre2 = new Piece("​Chambre2"​);​ 
 +etage.addLieu(chambre2);​ 
 +etage.addLieu(chambre1);​ 
 + 
 +exterieur = new PartieMaison("​Exterieur"​);​ 
 +exterieur.addSensor(externeDetecteurLumiere);​ 
 +maison.addLieu(rdc);​ 
 +maison.addLieu(etage);​ 
 +maison.addLieu(exterieur);​ 
 + 
 +</​code>​
 ===== Tableaux de Contrôle ===== ===== Tableaux de Contrôle =====
  
Line 444: Line 474:
 ===== Rendu ===== ===== Rendu =====
  
-<box round rgb(150,​290,​190) rgb(198,​226,​150) 75%|Rendu en fonction du groupe de TD >  +<box round rgb(150,​290,​190) rgb(198,​226,​150) 75%|Rendu en fonction du groupe de TD : 15 décembre 2017  ​>  
-  * Mettez un mail à votre encadreur pour Mme Lecat ou [[http://​jalon.unice.fr/​cours/​blay/​Cours-blay-20150930110548/​BoiteDepot-blay-20151205174816497430?​mode_etudiant=false|par dépôt ​sur Jalon]] pour Mme Blay-Fornarino avec une archive à vos Noms, qui contient : +  *  [[http://​jalon.unice.fr/​cours/​blay/​Cours-blay-20150930110548/​BoiteDepot-blay-20161122213044309075?​mode_etudiant=true&​tab=deposit|Dépôt ​sur Jalon]] pour Mme Blay-Fornarino avec une archive à vos Noms, qui contient : 
   * Un document contenant ​   * Un document contenant ​
-             * votre modèle de classe final intégré dans un document pour que nous n'​ayons pas à ouvrir différents modèles dans différentes versions de l'​outil,​ +             * votre **modèle de classe final** intégré dans un document pour que nous n'​ayons pas à ouvrir différents modèles dans différentes versions de l'​outil,​
-             * les évolutions du modèle+
              * des explications sur les raisons de ce modèle (dont vous êtes très fiers) et les leçons apprises.              * 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. ​   * Les codes et les tests. ​
2017_2018/s3/concprogobjet/td/td7.1511511174.txt.gz · Last modified: 2017/11/24 09:12 by blay