User Tools

Site Tools


2018_2019:s3:concprogobjet:td:td3

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
Last revision Both sides next revision
2018_2019:s3:concprogobjet:td:td3 [2018/09/30 17:50]
blay [RENDU]
2018_2019:s3:concprogobjet:td:td3 [2018/10/30 13:19]
blay [RETOURS SUR LES RENDUS de l'an dernier]
Line 2: Line 2:
 Basé sur TP3 de l'​Université Montpellier II — L3 Informatique 2008/09 Programmation par objets en Java Basé sur TP3 de l'​Université Montpellier II — L3 Informatique 2008/09 Programmation par objets en Java
  
-<​note ​warning> Vous avez <color blue/​lightgrey>​2 heures.</​color>​\\ +<​note ​tip> Vous avez <color blue/​lightgrey>​2 heures.</​color>​\\ 
-Vous rendrez ce que vous avez fait à la fin des 2 heures.</​note>​. ​+Vous rendrez ce que vous avez fait à la fin des 2 heures. 
 +</​note>​. ​
  
  
Line 40: Line 41:
 ==== Question 2 : Implémenter tout ce qui concerne les véhicules avec les tests associés (20mn) ==== ==== Question 2 : Implémenter tout ce qui concerne les véhicules avec les tests associés (20mn) ====
     * {{:​2018_2019:​s3:​concprogobjet:​td:​convoitest.java|Voici un code de test}}. ​     * {{:​2018_2019:​s3:​concprogobjet:​td:​convoitest.java|Voici un code de test}}. ​
-       ​* ​Commentez ​les tests pour lesquels les codes ne sont pas encore implémentés.+       ​* ​Mettez en commentaires ​les tests pour lesquels les codes ne sont pas encore implémentés, vous les utiliserez au fur et à mesure.
        * Adaptez-le (ou votre code) pour tester vos codes.        * Adaptez-le (ou votre code) pour tester vos codes.
 ==== Question 3 : Implémenter la notion de convoi (20mn max) ==== ==== Question 3 : Implémenter la notion de convoi (20mn max) ====
Line 53: Line 54:
  
 ==== Question 5 : Extension un peu moins facile (20mn) ==== ==== Question 5 : Extension un peu moins facile (20mn) ====
-Les ingénieurs de l'​entreprise ​ ont mis au moins un calculateur (//Class Simulator//​) qui  permet de calculer la consommation moyenne en carburant d'un engin, il expose donc la méthode statique : public static double consumption (Machine machine, int speed), par exemple+Les ingénieurs de l'​entreprise ​ ont mis au moins un calculateur (//Class Simulator//​) qui  permet de calculer la consommation moyenne en carburant d'un engin, il expose donc la méthode statique : public static double consumption (Machine machine, int speed), par exemple((Le code ci-dessous présente des constantes qui doivent être éliminées dans une bonne version.)).
 <code java> <code java>
  
Line 90: Line 91:
 ==== RENDU ==== ==== RENDU ====
  
-A la fin du TD, en l'​état,​ un document contenant les Diagrammes UML (essentiellement un diagramme de classes) ​et les remarques éventuelles,​ réponses aux questionsles codes et tests associés.+**A la fin du TD, en l'​état,​**  
 +    - un document contenant ​ 
 +             ​- ​les Diagrammes UML (essentiellement un diagramme de classes) 
 +             ​- ​les remarques éventuelles,​ réponses aux questions 
 +             - une copie d'​écran de la couverture de test comme par exemple {{ :​2018_2019:​s3:​concprogobjet:​td:​capture_d_e_cran_2018-10-01_a_08.15.24.png?​direct&​200|}} 
 +    - les codes et tests associés.
  
-Dépôt sur [[http://​jalon.unice.fr/​cours/​blay/​Cours-blay-20150930110548/​BoiteDepot-blay-20171008181551623837|jalon]] avec comme nom : GroupeNumero - Noms des etudiants+Dépôt sur [[http://​jalon.unice.fr/​cours/​blay/​Cours-blay-20150930110548/​BoiteDepot-blay-20171008181551623837|jalon]] avec comme nom : GroupeNumero - Noms des etudiants ​
  
  
  
-==== RETOUR ​SUR LES RENDUS ====+==== RETOURS ​SUR LES RENDUS ​de l'an dernier ​====
  
-ON évite ou on ne fait pas :  +<note warning>​ 
-  ​la duplication de code par exemple des setCharge + ​**On ​ne fait pas :**  
-  ​* nom de variable d'​instance, méthode ​en majuscule !!!+  ​- dupliquer les variables EMPTY_WEIGHT 
 +  - la //duplication de code// par exemple des setCharge 
 +  ​- Des noms de variable d'​instance ​ou des méthodes ​en majuscule !!!
   * Définir une classe abstraite et implementer toutes ses méthodes de manière absurde : on ne sait même pas ce qui doit être redéfini (eg. vitesseMax à 0)!    * Définir une classe abstraite et implementer toutes ses méthodes de manière absurde : on ne sait même pas ce qui doit être redéfini (eg. vitesseMax à 0)! 
-  * Des tests sous forme de toString +  * Des tests sous forme de toString ​! imaginez le coût d'une modification d'un toString !! et que testez-vous vraiment? 
-  * aVOIR UNE CHARGE MAX ET NE PAS EN TENIR COMPTE en chargeant le véhicule +  * AVOIR UNE CHARGE MAX ET NE PAS EN TENIR COMPTE en chargeant le véhicule ​!! 
-  * passer ​la charge à un vehicule qui a déjà une charge ! +  * Passer ​la charge à un vehicule qui a déjà une charge ! 
-  * recopier ​les un sur les autres des codes pas très malins ou qui datent d'une vieille version de java +  * Recopier ​les un sur les autres des codes pas très malins ou qui datent d'une vieille version de java ou pire d'une vieille version du sujet ! 
-  * prévoir ​une méthode d'​accès à la vitesse max et accéder directement à une variable "​constante"​... dans convoi et ne même pas s'en rendre compte dans les tests!! +  * Prévoir ​une méthode d'​accès à la vitesse max et accéder directement à une variable "​constante"​... dans convoi et ne même pas s'en rendre compte dans les tests!! 
-  * Pas de S à la fin du nom d'une classe comme Vehicule. +  * Mettre unS à la fin du nom d'une classe comme Vehicule. 
-  * ne pas savoir calculer le min d'un ensemble et ne pas faire de tests! +  * Ne pas savoir calculer le min d'un ensemble et ne pas faire de tests! 
-  * BANIR LES toString dans vos assert.. imaginez le coût d'​une ​modification d'un toString ​!! et que testez-vous vraiment? +  * Mettre un attribut à la place d'​une ​association ​! Ne pas mettre les cardinalités ! 
-  * Ne mettez ​pas un attribut quand vous pouvez ​mettre ​une association ! Mettez ​les cardinalités ! +  * Utilisez une valeur ​arbitraire ​comme 150... si demain vous gérez des convois de ferrari, vous devrez aller modifier votre code de convoi !! Integer.MAX_VALUE ​résout ​votre problème par exemple.
-  * N'​utilisez pas des toString dans vos codes pour gérer les cas d'​erreur : mettez votre gestion des cas d'​erreur en commentaire par exemple add-charge ne fait rien si... et METTEZ des tests pour vérifier que vous faites bien ce que vous dites. ​ Si vraiment vous en avez besoin, mettez un logger ! +
-  * aTTENTION AU CHOIX ARBITRAIRE D4UNE valeur ​max comme 150... si demain vous gérez des convois de ferrari, vous devrez aller modifier votre code de convoi !! Integer.MAX_VALUE ​résoud ​votre problème par exemple. +
-  * cOMMENT FAIRE POur qu'un véhicule soit un engin???? Il faut répondre à cette question en TD. +
-  * Mettez le toString en facteur surtout quand vous le recopiez partout! +
-  * Prévoir en dure le calcul de la vitesse max et autoriser la modification de la charge !!+
   * Ne définissez pas toutes vos variables en public ou même protected, simplement parce que vous ne savez pas utiliser des cascades de constructeurs ou des accesseurs! Et réfléchissez à la cohérence de votre code même sur un exemple aussi simple !   * Ne définissez pas toutes vos variables en public ou même protected, simplement parce que vous ne savez pas utiliser des cascades de constructeurs ou des accesseurs! Et réfléchissez à la cohérence de votre code même sur un exemple aussi simple !
   * Sur PAPIER, POUR NOTER QU'UNE CLASSE EST abstraite, vous pouvez simplement écrire <​abstract>,​ idem pour une méthode. ​   * Sur PAPIER, POUR NOTER QU'UNE CLASSE EST abstraite, vous pouvez simplement écrire <​abstract>,​ idem pour une méthode. ​
Line 143: Line 146:
     }     }
    </​code>​    </​code>​
 +   
 +</​note>​
2018_2019/s3/concprogobjet/td/td3.txt · Last modified: 2018/11/02 08:02 by blay