S2T
- TDs première période
Eléments de Correction
Eléments de Correction
Objectif : Faire un lien direct entre la modélisation des classes et les codes correspondants.
Un taille haie est caractérisé par sa cadence de coupe, typiquement 4500 coupes/minute.
TailleHaie
.main
et votre test peut ressembler à ce qui suit.public class TestOutils { public static void main(String[] args) { TailleHaie monTailleHaie = new TailleHaie(); System.out.println("Taille Haie crée : " + monTailleHaie); System.out.println("==> Test init : " + (monTailleHaie.getCadence() == 0) ); monTailleHaie.switchOn(); System.out.println("Cadence du Taille Haie en fonctionnement : " + monTailleHaie.getCadence()); System.out.println("==> Test fonctionnement : " + (monTailleHaie.getCadence() == 4500) ); monTailleHaie.switchOff(); System.out.println("Cadence du Taille Haie à l'arret : " + monTailleHaie.getCadence()); System.out.println("==> Test Arret : " + (monTailleHaie.getCadence() == 0) ); } }
Sur le même modèle, une tondeuse est caractérisée par la vitesse de rotation de sa lame, typiquement 1000 Tour/minute. On prévoira
System.out.println("=========================TESTS TONDEUSE==================="); Tondeuse maTondeuse = new Tondeuse(); System.out.println("Tondeuse crée : " + maTondeuse); System.out.println("==> Test init : " + (maTondeuse.getCadence() == 0) ); maTondeuse.switchOn(); System.out.println("Cadence de Tondeuse en fonctionnement : " + maTondeuse.getCadence()); System.out.println("==> Test fonctionnement : " + (maTondeuse.getCadence() == 1000) ); maTondeuse.switchOff(); System.out.println("Cadence de Tondeuse à l'arret : " + maTondeuse.getCadence()); System.out.println("==> Test Arret : " + (maTondeuse.getCadence() == 0) );
OutilElectrique
.TailleHaie
et Tondeuse
. La tondeuse a plusieurs vitesses de traction possibles : arret, lent, moyen ou rapide. Il est possible de changer la vitesse de la tondeuse. Au démarrage, sa vitesse est toujours à moyenne. Lorsque l'on éteint la tondeuse sa vitesse passe à arrêt.
enumerate literal
arret, … v = Vitesse.arret;
System.out.println("=========================TESTS TONDEUSE ETENDU ==================="); //La tondeuse a plusieurs vitesses de traction possibles : arret, lent, moyenne ou rapide. maTondeuse.switchOff(); System.out.println("Vitesse de Tondeuse à l'arret attendue "+ Vitesse.arret +"==>" + maTondeuse.getVitesse()); //Il est possible de changer la vitesse de la tondeuse. maTondeuse.switchOn(); System.out.println("Vitesse de Tondeuse au démarrage attendue "+ Vitesse.moyen +"==>" + maTondeuse.getVitesse()); maTondeuse.setVitesse(Vitesse.rapide); System.out.println("Vitesse de Tondeuse attendue "+ Vitesse.rapide +"==>" + maTondeuse.getVitesse()); //Au démarrage, sa vitesse est toujours à l'arrêt. Lorsque l'on éteint la tondeuse sa vitesse passe à arrêt. maTondeuse.switchOff(); System.out.println("Vitesse de Tondeuse à l'arret attendue "+ Vitesse.arret +"==>" + maTondeuse.getVitesse()); maTondeuse.setVitesse(Vitesse.rapide); maTondeuse.switchOn(); System.out.println("Vitesse de Tondeuse au démarrage attendue (alors que on a modifie sa vitesse "+ Vitesse.moyen +"==>" + maTondeuse.getVitesse()); maTondeuse.switchOff();
Il s'agit de développer à présent un robot “Jardinier”. On peut donner un outil à un jardinier, lui demander de travailler ou d'arrêter de travailler.
Jardinier
.=========================TESTS Jardinier =================== Bonjour Je suis R2-D2 : je n'ai pas d'outil Début du travail pour le jardinier : Donnez-moi un outil! On lui a donné la tondeuse : Je suis R2-D2, je tiens : Tondeuse [vitesse=arret, cadence=0] Debut du travail pour le jardinier : Je démarre : Tondeuse [vitesse=moyen, cadence=1000] Arret du travail pour le jardinier : Merci, la journée a été dure! La tondeuse doit être à l'arrêt : Tondeuse [vitesse=arret, cadence=0] Le jardinier n'a plus d'outil : Je suis R2-D2 : je n'ai pas d'outil
A présent notre robot peut utiliser un véhicule.
Un véhicule
a une position
(X, Y en entier).
Il peut se déplacer sur l'axe des x ou des y.
Il peut être initialisé, ce qui le place en position (0,0).
Un charriot
est un véhicule qui se déplace d'un delta de 10 à chaque demande de déplacement : s'il est en (0,0), déplacer le chariot sur X l'amène en (10,0), puis en déplacement sur XY l'amène en (20,10).
Une fusee
est un véhicule qui se déplace d'un delta de 100 à chaque demande de déplacement.
On peut donner un véhicule au robot. Il l'initialise quand il le reçoit. On peut demander au robot de se déplacer selon un schéma donné : “XYXX”. Le robot déplacera alors le véhicule de X puis de Y puis de X puis de X.
Quand le robot arrête de travailler il ramène le véhicule en position initiale.
Voici un exemple de trace obtenue en testant ce qui est demandé.
=========================TESTS Jardinier & Vehicule =================== ===================TESTS Vehicules =================== Chariot => Vehicule [position=[0,0]] Avance sur X : Chariot => Vehicule [position=[10,0]] Avance sur Y : Chariot => Vehicule [position=[10,10]] Fusee => Vehicule [position=[0,0]] Avance sur X : Fusee => Vehicule [position=[1000,0]] Avance sur Y : Fusee => Vehicule [position=[1000,1000]] ===================TESTS jardinier & Vehicules =================== Pas de vehicule : Je suis R2-D2 : je n'ai pas d'outil je n'ai pas de vehicule Avec un charriot : Je suis R2-D2 : je n'ai pas d'outil , j'ai ce vehicule Chariot => Vehicule [position=[0,0]] Deplacement du jardinier en XYX, on attend (0,0),(10,0) (10,10) (20,10) [0,0] [10,0] [10,10] [20,10] Debut du travail pour le jardinier : Je démarre : Tondeuse [vitesse=moyen, cadence=1000] Position du charriot attendue en (0,0): [0,0] Deplacement du jardinier en YYX on l'attend en (10,20) avec la tondeuse Je suis R2-D2, je tiens : Tondeuse [vitesse=moyen, cadence=1000], j'ai ce vehicule Chariot => Vehicule [position=[10,20]] Arret du travail pour le jardinier : Merci, la journée a été dure! Je suis R2-D2 : je n'ai pas d'outil , j'ai ce vehicule Chariot => Vehicule [position=[0,0]]
TD Noté facultatif: remis à votre encadreur par mail ayant pour sujet4) “[S2] modeles : Groupe : Membres du binôme” avec en attachement un document contenant vos diagrammes et votre code. Le fichier des diagrammes sera nommé TP_N_NumeroduTP_NomEtudiant1_NomEtudiant2 sans compression : 8 mai 2015 23h59
Point
correspondante. Vous pouvez aussi procéder par reverse engineering (classe Point)Un polygone est composé d'un ensemble de points.
Polygone
en UML. ToString
addPoint
qui ajoutera un point à ceux déjà présents. Polygone
en UML.
private
et donc ne rien dire, soit le mettre en protected
, soit mieux utiliser les accesseurs.