User Tools

Site Tools


2018_2019:s2:td:td_classe_code

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
2018_2019:s2:td:td_classe_code [2019/02/16 18:35] – [2) Je sais passer du modèle d'une classe avec un attribut au code] blay2018_2019:s2:td:td_classe_code [2019/02/27 14:25] (current) – [Des modèles aux codes et vis-versa] blay
Line 5: Line 5:
 **Objectifs :**  **Objectifs :** 
      - Faire un lien direct entre la modélisation des classes et les codes correspondants.      - Faire un lien direct entre la modélisation des classes et les codes correspondants.
- + <note important>Nous faisons le lien entre modèles et codes.  
-<note important>Nous faisons le lien entre modèles et codes.  +Vous pouvez travailler les codes uniquement au niveau du papier (mais c'est peut-être dommage).
-Vous pouvez travailler les codes uniquement au niveau du papier.+
 Vous devez essentiellement comprendre les grands principes. Vous devez essentiellement comprendre les grands principes.
 </note> </note>
  
 +<alert type="success" icon="glyphicon glyphicon-time" dismiss="true">
 +TD de 4 h.\\
 +Il n'y a pas de rendus associé à ce TD, cependant il doit faire partie du carnet de bord.
 +Donc notez bien les points qui vous semblent difficiles, les remarques qu'il vous semble important de diffuser, etc.
 +</alert>
 +
 +
 +<note tip>**ObjectAid**
 +sous Install new software > add > http://www.objectaid.com/update/current ...
 +
 +Puis après avoir relancé Eclipse, sous New > Other > Object Aid..> Classes .... ensuite vous posé simplement les classes à visualiser sur votre diagramme.
 +</note>
 ===== Je comprends ===== ===== Je comprends =====
  
Line 61: Line 72:
  
 <accordion  collapsed="true"> <accordion  collapsed="true">
-<panel title="Les codes correspondants">+<panel icon="glyphicon glyphicon-download"  title="Les codes correspondants">
 Le concept d'"Engin" modélisé ici sous la forme d'une classe contient à présent un attribut qui permet d'exprimer la puissance. Il sera représenté par le code suivant :  Le concept d'"Engin" modélisé ici sous la forme d'une classe contient à présent un attribut qui permet d'exprimer la puissance. Il sera représenté par le code suivant : 
  
Line 99: Line 110:
  
 <accordion  collapsed="true"> <accordion  collapsed="true">
-<panel title="Ajout des accesseurs">+<panel icon="glyphicon glyphicon-download" title="Ajout des accesseurs">
  
 Le code de la classe Engin en java devient : Le code de la classe Engin en java devient :
Line 144: Line 155:
 ==== 3) Je sais passer du modèle d'une classe avec un attribut et une méthode au code ==== ==== 3) Je sais passer du modèle d'une classe avec un attribut et une méthode au code ====
 {{:2017_2018:s2:td:engine-stop.png?200|}} {{:2017_2018:s2:td:engine-stop.png?200|}}
 +
 +<accordion  collapsed="true">
 +<panel icon="glyphicon glyphicon-download" title="Les codes correspondants">
  
 **Code généré en java** **Code généré en java**
Line 178: Line 192:
 </code> </code>
  
 +</panel> 
 +</accordion>
 Une proposition d'implémentation en java pour ''stop'' Une proposition d'implémentation en java pour ''stop''
  
Line 266: Line 282:
 {{:2017_2018:s2:td:14450576294_886eb4b940_b.jpg?300 |}} {{:2017_2018:s2:td:14450576294_886eb4b940_b.jpg?300 |}}
 {{:2017_2018:s2:td:capture_d_e_cran_2018-02-11_a_01.14.10.png?500|}} {{:2017_2018:s2:td:capture_d_e_cran_2018-02-11_a_01.14.10.png?500|}}
 +
 +<accordion  collapsed="true">
 +<panel icon="glyphicon glyphicon-download" title="Les codes correspondants">
 +
  
 **Code java correspondant ** **Code java correspondant **
Line 300: Line 320:
 </code> </code>
  
 +</panel>  
 +</accordion>
  
 Complétons la classe ''Engine'' pour manipuler les pilotes. Complétons la classe ''Engine'' pour manipuler les pilotes.
 +<accordion  collapsed="true">
 +<panel icon="glyphicon glyphicon-download" title="Les codes correspondants">
 +
 <code java> <code java>
 public class Engine { public class Engine {
Line 342: Line 366:
 </code> </code>
  
 +</panel> 
 +</accordion>
 On ajoute des tests On ajoute des tests
 <code java> <code java>
Line 384: Line 410:
 La classe ''Pilot'' générée est donc modifiée. La classe ''Pilot'' générée est donc modifiée.
 Remarquez que la multiplicité de 1 cette fois-ci crée un attribut simple de type Engine Remarquez que la multiplicité de 1 cette fois-ci crée un attribut simple de type Engine
 +
 +<accordion  collapsed="true">
 +<panel icon="glyphicon glyphicon-download" title="Les codes correspondants">
  
 <code java> <code java>
Line 406: Line 435:
 } }
 </code> </code>
 +</panel> 
 +</accordion>
  
 Pour tester nous ajoutons à présent l'engin defiance comme celui conduit par l'amiral //nammo// Pour tester nous ajoutons à présent l'engin defiance comme celui conduit par l'amiral //nammo//
Line 413: Line 444:
 </code> </code>
  
-Nous décidons à présent que l'on ne veut pas que n'importe qui affecte un engin à un pilote (on passe la méthode setDrivenEngine en Protected) et que lorsque l'on affecte un pilote à un engin alors il en devient pilote. Nous modifions nos codes comme suit.+Nous décidons à présent que l'on ne veut pas que n'importe qui affecte un engin à un pilote (on passe la méthode setDrivenEngine en Protected) et que lorsque l'on affecte un pilote à un engin alors il en devient pilote. Nous modifions nos codes. 
 +<accordion  collapsed="true"> 
 +<panel icon="glyphicon glyphicon-download" title="Les codes correspondants"> 
 + 
  
 <code java> <code java>
Line 472: Line 507:
 </code> </code>
  
 +</panel> 
 +</accordion>
 Nous testons ce code. Nous testons ce code.
 <code java> <code java>
Line 495: Line 532:
  
 </code> </code>
-===== A vous  =====+===== 6) A vous : appliquez tout seul ce qui précède =====
    
 {{:2017_2018:s2:td:capture_d_e_cran_2018-01-21_a_23.23.59.png?200|}} {{:2017_2018:s2:td:capture_d_e_cran_2018-01-21_a_23.23.59.png?200|}}
Line 521: Line 558:
    - Quel code correspond au diagramme de classe UML ci-dessus ?    - Quel code correspond au diagramme de classe UML ci-dessus ?
 */ */
-===== Je sais passer du modèle d'une relation d'héritage au code ====+===== 7) Je sais passer du modèle d'une relation d'héritage au code ====
  
 {{:2017_2018:s2:td:star-wars-the-old-republic-girl-warrior-lightsabers-battle-smoke-wallpaper-hd.jpg?300 |}} {{:2017_2018:s2:td:star-wars-the-old-republic-girl-warrior-lightsabers-battle-smoke-wallpaper-hd.jpg?300 |}}
 {{:2017_2018:s2:td:weapons.png?400|}} {{:2017_2018:s2:td:weapons.png?400|}}
 +
 +<accordion  collapsed="true">
 +<panel icon="glyphicon glyphicon-download" title="Les codes correspondants au diagramme">
  
  
Line 561: Line 601:
 </code> </code>
  
 +</panel> 
 +</accordion>
  
 Je peux accéder au propriétaire d'une arme quelconque. Je peux accéder au propriétaire d'une arme quelconque.
Line 569: Line 611:
  excaLight.setBelongsTo(Revan);  excaLight.setBelongsTo(Revan);
 </code> </code>
-===== A vous ====+===== 8) A vous ====
  
 /*  /* 
Line 580: Line 622:
    - Quel code correspond au diagramme de classe UML ci-dessus ?    - Quel code correspond au diagramme de classe UML ci-dessus ?
    - Imaginez que l'on veuille pouvoir demander à une ''Armada'' d'attaquer, quelle méthode devez-vous ajouter?    - Imaginez que l'on veuille pouvoir demander à une ''Armada'' d'attaquer, quelle méthode devez-vous ajouter?
 +   - <accordion  collapsed="true">
 +<panel icon="glyphicon glyphicon-download" title="Voici le code de cette nouvelle méthode, si besoin">
 +
    - Voici le code de cette nouvelle méthode :     - Voici le code de cette nouvelle méthode : 
 <code java> <code java>
Line 601: Line 646:
  sithArmada.attack();  sithArmada.attack();
 </code> </code>
-===== Je sais passer du code au modèle =====+ 
 +</panel>  
 +</accordion> 
 +===== 9) Je sais passer du code au modèle =====
  
 <code> <code>
Line 646: Line 694:
  
 ===== Complétez le diagramme de séquence ===== ===== Complétez le diagramme de séquence =====
-Compléter les deux diagrammes pour introduire : +Compléter les diagrammes de classes et séquence pour introduire : 
       - les armadas attaquent. Chaque armada demande à ses engins d'attaquer.       - les armadas attaquent. Chaque armada demande à ses engins d'attaquer.
  
2018_2019/s2/td/td_classe_code.1550342156.txt.gz · Last modified: 2019/02/16 18:35 by blay