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 revisionPrevious revision
Next revision
Previous revision
2018_2019:s3:concprogobjet:td:td3 [2018/09/30 15:40] blay2018_2019:s3:concprogobjet:td:td3 [2018/11/02 07:02] (current) – [RETOURS SUR LES RENDUS de l'an dernier] blay
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 35: Line 36:
  
  
-==== Question 1 : Modéliser le système  ====+==== Question 1 : Modéliser le système (10mn) ====
    * La modélisation peut se faire sur papier si vous êtes sûr de vous. Pensez dans ce cas à en faire une photo à intégrer dans le rendu final.    * La modélisation peut se faire sur papier si vous êtes sûr de vous. Pensez dans ce cas à en faire une photo à intégrer dans le rendu final.
        
-==== Question 2 : Implémenter tout ce qui concerne les véhicules avec les tests associés ==== +==== Question 2 : Implémenter tout ce qui concerne les véhicules avec les tests associés (20mn) ==== 
-    * 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 ====+==== Question 3 : Implémenter la notion de convoi (20mn max) ====
     * Quelle est la couverture de tests?     * Quelle est la couverture de tests?
     * Améliorez les tests pour avoir une plus grande couverture.     * Améliorez les tests pour avoir une plus grande couverture.
          
-==== Question 4 : Extension facile ====+==== Question 4 : Extension facile (10mn max) ====
  
-Un nouveau type de véhicule est apparu, les "voitures sans permis" pour lesquels la vitesse maximale est de 50 km et le poids à vide de 425kg, pas de chargement possible. Savez-vous calculer la vitesse maximale d'un convoi qui contient des voitures sans permis sans écrire une seule ligne de code dans la classe convoi? +Un nouveau type de véhicule est apparu, les "voitures sans permis" pour lesquels la vitesse maximale est de 50 km et le poids à vide de 425kg, pas de chargement possible.  
 +  * Mettez à jour votre modèle 
 +  * Savez-vous calculer la vitesse maximale d'un convoi qui contient des voitures sans permis sans écrire une seule ligne de code dans la classe convoi? 
  
-==== Question 5 : Extension un peu moins facile ==== +==== 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 77: Line 80:
  
  
- {{fa>arrow-circle-right?24}} On veut pouvoir calculer + {{fa>arrow-circle-right?24}} On veut pouvoir calculer la consommation totale d'un convoi allant à sa vitesse maximale (c'est-à-dire, on le rappelle, à la plus petite des vitesses maximales des véhicules du convoi).
-   la consommation totale d'un convoi allant à sa vitesse maximale (c'est-à-dire, on le rappelle, à la plus petite des vitesses maximales des véhicules du convoi).+
     * **Vous n'avez pas le droit de modifier** l'interface ou le simulateur.     * **Vous n'avez pas le droit de modifier** l'interface ou le simulateur.
     * On considère que le poids d'un véhicule est son poids à vide plus sa charge s'il en a une.     * On considère que le poids d'un véhicule est son poids à vide plus sa charge s'il en a une.
Line 87: Line 89:
  
 Que feriez-vous si l'on vous disait que l'on veut pouvoir créer des véhicules à partir de leur poids à vide, charge maximale, etc... ? Que feriez-vous si l'on vous disait que l'on veut pouvoir créer des véhicules à partir de leur poids à vide, charge maximale, etc... ?
- 
 ==== 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éposnes 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.1538322017.txt.gz · Last modified: 2018/09/30 15:40 by blay