User Tools

Site Tools


2016_2017:s3:concprogobjet:td:td1

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
2016_2017:s3:concprogobjet:td:td1 [2016/09/09 00:18]
blay [Un projet sous tests (15mn)]
2016_2017:s3:concprogobjet:td:td1 [2016/09/29 21:15] (current)
blay [EVALUATION de CE TD]
Line 12: Line 12:
  
    * [[https://​www.jetbrains.com/​idea/​|IntelliJ]]    * [[https://​www.jetbrains.com/​idea/​|IntelliJ]]
-   * [[http://​www.eclipse.org/​downloads/​packages/​eclipse-ide-java-developers/​marsr|Eclipse]] ​ 
  
 Et pour GIT, vous devez déjà l'​avoir sur vos ordinateurs. Et pour GIT, vous devez déjà l'​avoir sur vos ordinateurs.
Line 73: Line 72:
 ==== Analyse : 15mn  ==== ==== Analyse : 15mn  ====
  
-  - Sous [[:​modelio|MODELIO]],​ commencer par créer un projet ​+  - Sous [[:​modelio|MODELIO]],​ commencer par créer un projet ​(Attention à bien sélectionner **Java Project**)
   - Définissez un diagramme de classes de niveau Analyse.   - Définissez un diagramme de classes de niveau Analyse.
   - Définissez,​ par cas d'​utilisation,​ un diagramme de séquence élémentaire mettant en jeu les objets de votre système **et compléter** votre diagramme de classes au fur et à mesure. Pour cela utilisez, évidemment des lignes de vie qui font référence à des classes et les messages qui vous permettent d'​identifier les méthodes et mettre à jour vos diagrammes de classes.   - Définissez,​ par cas d'​utilisation,​ un diagramme de séquence élémentaire mettant en jeu les objets de votre système **et compléter** votre diagramme de classes au fur et à mesure. Pour cela utilisez, évidemment des lignes de vie qui font référence à des classes et les messages qui vous permettent d'​identifier les méthodes et mettre à jour vos diagrammes de classes.
Line 143: Line 142:
 Aujourd'​hui nous faisons le choix de générer les codes puis de travailler ces derniers sans chercher, au moins pour l'​instant,​ à maintenir les modèles en cohérence. Aujourd'​hui nous faisons le choix de générer les codes puis de travailler ces derniers sans chercher, au moins pour l'​instant,​ à maintenir les modèles en cohérence.
  
-  - Générez les codes (voir [[https://​mbf-iut.i3s.unice.fr/​doku.php?​id=modelio#​generer_les_codes|ici]] et choisissez comme répertoire de génération celui sous src/​main/​java+  - Générez les codes (voir [[https://​mbf-iut.i3s.unice.fr/​doku.php?​id=modelio#​generer_les_codes|ici]] et choisissez comme répertoire de génération celui sous src/​main/​java/​fr/​unice/​iut/​info/​coo
   -       - Sélectionner votre diagramme de classe en conception;   -       - Sélectionner votre diagramme de classe en conception;
       - Vérifier que vous avez bien toutes les classes prévues; ​       - Vérifier que vous avez bien toutes les classes prévues; ​
-      - Préciser si vous voulez travailler avec des vecteurs ou autres (Réfléchissez!!),​ **et** **préciser bien comme répertoire pour la génération votre répertoire ​src sous Eclipse** {{ :​2014_2015:​s3:​concprogobjet:​td:​generationcodejava.png?​direct&​200 |}}+      - Préciser si vous voulez travailler avec des vecteurs ou autres (Réfléchissez!!),​ **et** **préciser bien comme répertoire pour la génération votre répertoire** ​(si besoin, spécifiez le nom du package fr.unice.iut.info.coo directement dans le code généré) ​{{ :​2014_2015:​s3:​concprogobjet:​td:​generationcodejava.png?​direct&​200 |}}
   - Retourner sous IntelliJ. Si votre répertoire est mal organisé (nouveau package par exemple, déplacer simplement les codes comme vous le voulez, par glisser/​coller.)   - Retourner sous IntelliJ. Si votre répertoire est mal organisé (nouveau package par exemple, déplacer simplement les codes comme vous le voulez, par glisser/​coller.)
-  - Corriger vos codes pour qu'ils soient "​compilables", ​en particulier en ajoutant le fichier ​{{:​javadesigner.jar|}} comme une library du projet, afin que les annotations de Modelio soient comprises.+  - Corriger vos codes pour qu'ils soient "​compilables" ​:  
 +          -  Afin que les annotations de Modelio soient comprisesajouter ​{{:​javadesigner.jar|}} comme une library du projet ​ 
 +                - déposer sous idea/​libraries... puis sélectionner le .jar et l'​enregistrer comme une librairie utilisée par le projet 
 +                - **ou bien** placez vous sur le projet puis avec le menu contextuel (clique droit) > Open module Setting > Librairies et ajouter le .jar
 <​html>​ <​html>​
 <!-- <!--
Line 182: Line 184:
          * sur le projet, faire un //new source-folder//,​ et l'​appeler //tests// {{ :​2014_2015:​s3:​concprogobjet:​td:​newsourcefolder.png?​direct&​200 |}}           * sur le projet, faire un //new source-folder//,​ et l'​appeler //tests// {{ :​2014_2015:​s3:​concprogobjet:​td:​newsourcefolder.png?​direct&​200 |}} 
 */ */
-    - Dans le menu contextuel de, par exemple la classe //​Message//, ​cliquez sur //New – JUnit Test Case//​((Cette partie du TD reprend en partie le tutoriel JUNIT : http://www.junit.fr/2011/11/20/tutoriel-eclipse-junit-mon-premier-test-automatique/​)){{ :​2014_2015:​s3:​concprogobjet:​td:​junittestcase.png?​direct&​200 |}} Dans le panneau qui s'​affiche {{ :​2014_2015:​s3:​concprogobjet:​td:​messagetest.png?​direct&​200 |}} +    - Pour créer des tests sur votre classe //​Message//, ​suivez les instructions sous https://www.jetbrains.com/help/idea/2016.2/creating-tests.htmlLa classe de test créée se trouve sous test/java/... 
-          * Sélectionnez le bouton radio //New JUnit 4 test//. +          * Cochez les cases ''​setUp()'' ​((est exécutée avant tout test)) ​et ''​tearDown()'' ​((est exécutée après tout test))
-          * Changez le dossier Source folder pour //tests//. +    -  ​IntelliJ ​a maintenant créé automatiquement le squelette de la classe de test. Il ne reste plus alors qu’à remplir cette dernière. ​ 
-          * Nommez la classe ''​MessageTest''​+    - Par exemple 
-          * Cochez les cases ''​setUp()''​ et ''​tearDown()''​+     <​code java> 
-          * Enfin cliquez sur //​Finish//​. +        protected Message mToTest; 
-          * Eclipse va remarquer que la bibliothèque de //​JUnit// ​est absente du projet et vous propose d’ajouter automatiquement cette dernière au projet. + protected String content; 
-          * Dans le panneau qui apparaît, cliquez sur OK+ 
-    -  ​Eclipse ​a maintenant créé automatiquement le squelette de la classe de test. Il ne reste plus alors qu’à remplir cette dernière. ​+ @Before 
 + public void setUp() throws Exception { 
 + content = "mon message";​ 
 + mToTest = new Message(content,​b);​ 
 +
 + 
 + @Test 
 + public void setContenu() throws Exception { 
 + String nv = "​newValue";​ 
 + mToTest.setContenu("​newValue"​);​ 
 + assertEquals("​ message contents is as expected",​nv,​mToTest.getContenu());​ 
 + assertFalse("​ message contents has been modified",​ mToTest.getContenu().equals(content));​ 
 +
 + 
 +     </​code>​
     - Dans le menu contextuel, cliquez sur //Run As – JUnit test//.     - Dans le menu contextuel, cliquez sur //Run As – JUnit test//.
 Enfin, le premier rapport de tests s’affiche !  Enfin, le premier rapport de tests s’affiche ! 
-{{ :​2014_2015:​s3:​concprogobjet:​td:​testok.png?​direct&​200 |}}+
 ====  Développement (20mn) ​ ==== ====  Développement (20mn) ​ ====
   - Terminez la mise en oeuvre du bus en complétant les tests au fur et à mesure.   - Terminez la mise en oeuvre du bus en complétant les tests au fur et à mesure.
Line 213: Line 229:
   - Les modèles sont cohérents avec le code.   - Les modèles sont cohérents avec le code.
  
- +[[http://​jalon.unice.fr/​cours/​blay/​Cours-blay-20160929210709/​BoiteDepot-blay-20160929210839376812?​mode_etudiant=false|Jalon de dépôt pour Mme Fornarino : donner comme nom du dépot : Gr<​NumeroGroupe><​Noms des étudiants>​]]
-http://​jalon.unice.fr/​cours/​blay/​Cours.blay.2011-10-10.3543/​BoiteDepot-blay-20150731120912764725?​mode_etudiant=true&​menu=sujets+
 ===== Je sais ===== ===== Je sais =====
    
 <box round rgb(255,​204,​153) rgb(255,​255,​204) 97%|Je sais  :   > <box round rgb(255,​204,​153) rgb(255,​255,​204) 97%|Je sais  :   >
   * Créer un projet sous un IDE avancé, et le structurer correctement.   * Créer un projet sous un IDE avancé, et le structurer correctement.
-  * Générer ​le code à partir d'un modèle de classes en UML. +  * (Rappel) Faire correspondre ​le code java et un modèle de classes en UML. 
-  * Structurer mon projet pour intégrer les tests unitaires.  +  * Mettre en place des tests unitaires.  
-  * Utiliser ​Eclipse ​pour améliorer mon développement en utilisant les outils d'aide au développement.+  * Utiliser ​un IDE pour améliorer mon développement en utilisant les outils d'aide au développement.
 </​box>​ </​box>​
  
2016_2017/s3/concprogobjet/td/td1.1473373127.txt.gz · Last modified: 2016/09/09 00:18 by blay