This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
2017_2018:s3:concprogobjet:td:td7 [2017/11/24 09:15] blay [Pièce équipée] |
2017_2018:s3:concprogobjet:td:td7 [2017/12/01 08:14] blay [Maison numérique] |
||
---|---|---|---|
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 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 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. |
<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 225: | ||
- | Voici la maison que vous devez modéliser : | + | |
- | - Un RDC, Un étage et un extérieur. | + | <code> |
- | - Un étage avec 2 chambres, chacune avec son thermometre et un thermostat global à l'étage | + | maison = new Maison(); |
- | - etc. | + | rdc = new PartieMaison("RDC"); |
- | {{ :2015_2016:s3:concprogobjet:td:maisonnumerique.png?direct&300 |}} | + | cuisine = new Piece("Cusine"); |
+ | sam = new Piece("Salle e manger"); | ||
+ | rdc.addLieu(cuisine); | ||
+ | rdc.addLieu(sam); | ||
+ | |||
+ | etage = new PartieMaison("Etage"); | ||
+ | chambre1 = new Piece("Chambre1"); | ||
+ | chambre2 = new Piece("Chambre2"); | ||
+ | etage.addLieu(chambre2); | ||
+ | etage.addLieu(chambre1); | ||
+ | |||
+ | exterieur = new PartieMaison("Exterieur"); | ||
+ | maison.addLieu(rdc); | ||
+ | maison.addLieu(etage); | ||
+ | maison.addLieu(exterieur); | ||
+ | |||
+ | </code> | ||
===== Tableaux de Contrôle ===== | ===== Tableaux de Contrôle ===== | ||
Line 445: | Line 461: | ||
<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 > | ||
- | * 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. |