This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
2018_2019:s2:td:td_classe_code [2019/02/16 19:39] blay [4) Je sais passer du modèle d'une association au code] |
2018_2019:s2:td:td_classe_code [2019/02/27 15:25] blay [Des modèles aux codes et vis-versa] |
||
---|---|---|---|
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 146: | Line 157: | ||
<accordion collapsed="true"> | <accordion collapsed="true"> | ||
- | <panel title="Les codes correspondants"> | + | <panel icon="glyphicon glyphicon-download" title="Les codes correspondants"> |
**Code généré en java** | **Code généré en java** | ||
Line 273: | Line 284: | ||
<accordion collapsed="true"> | <accordion collapsed="true"> | ||
- | <panel title="Les codes correspondants"> | + | <panel icon="glyphicon glyphicon-download" title="Les codes correspondants"> |
Line 314: | Line 325: | ||
Complétons la classe ''Engine'' pour manipuler les pilotes. | Complétons la classe ''Engine'' pour manipuler les pilotes. | ||
<accordion collapsed="true"> | <accordion collapsed="true"> | ||
- | <panel title="Les codes correspondants"> | + | <panel icon="glyphicon glyphicon-download" title="Les codes correspondants"> |
<code java> | <code java> | ||
Line 399: | 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 421: | 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 428: | 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 487: | Line 507: | ||
</code> | </code> | ||
+ | </panel> | ||
+ | </accordion> | ||
Nous testons ce code. | Nous testons ce code. | ||
<code java> | <code java> | ||
Line 510: | 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 536: | 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 576: | 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 584: | Line 611: | ||
excaLight.setBelongsTo(Revan); | excaLight.setBelongsTo(Revan); | ||
</code> | </code> | ||
- | ===== A vous ==== | + | ===== 8) A vous ==== |
/* | /* | ||
Line 595: | 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 616: | 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 661: | 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. | ||