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/07 14:41]
blay [TD1 : Prise en main de l'environnement de développement]
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érer ​les codes  +  - 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 Eclipse, sous la perspective Java, et faîtes un //refresh// (clique droit sur le projet). 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 utilisant simplement ​les petites boules jaunes sur le côtémais **ne passez pas à l'implémentation**, nous ferons cela un peu plus tard.+  - 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 166: Line 168:
   - afficher le contenu des message.   - afficher le contenu des message.
  
-Ce programme ne peut pas tourner puisque quasi rien n'est implémenté,​ par contre vous pouvez vous aider d'Eclipse ​pour que au moins il soit "​syntaxiquement"​ juste et créer les bonnes méthodes si elles n'​existent pas déjà, ou les appeler! ​+Ce programme ne peut pas tourner puisque quasi rien n'est implémenté,​ par contre vous pouvez vous aider d'IntelliJ ​pour qu'au moins il soit "​syntaxiquement"​ juste et créer les bonnes méthodes si elles n'​existent pas déjà, ou les appeler! ​
  
-Vous pouvez à présent l'​exécuter et il vous signale les méthodes non encore implémentées. ​A la fin de ce TD, évidemment,​ il fonctionnera.+A la fin de ce TD, évidemment,​ il fonctionnera.
  
  
Line 178: Line 180:
 Notre objectif est à présent de préparer les tests qui accompagneront notre développement. Pour cela, nous utiliserons l'​environnement JUNIT. La structuration du projet en une partie principale et une partie test est, elle, exigée pour toute la suite de ce module. Notre objectif est à présent de préparer les tests qui accompagneront notre développement. Pour cela, nous utiliserons l'​environnement JUNIT. La structuration du projet en une partie principale et une partie test est, elle, exigée pour toute la suite de ce module.
  
 +/*
     - Ajoutez un nouveau dossier de sources nommé //tests// au même niveau d’arborescence que src     - Ajoutez un nouveau dossier de sources nommé //tests// au même niveau d’arborescence que src
          * 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 |}} +*/ 
-          * Sélectionnez le bouton radio //New JUnit 4 test//. +    ​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/... 
-          * Changez le dossier Source folder pour //tests//. +          * Cochez les cases ''​setUp()'' ​((est exécutée avant tout test)) ​et ''​tearDown()'' ​((est exécutée après tout test))
-          * Nommez la classe ''​MessageTest''​+    -  ​IntelliJ ​a maintenant créé automatiquement le squelette de la classe de test. Il ne reste plus alors qu’à remplir cette dernière. ​ 
-          * Cochez les cases ''​setUp()''​ et ''​tearDown()''​+    - Par exemple 
-          * Enfin cliquez sur //​Finish//​. +     <​code java> 
-          * 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 Message mToTest; 
-          * Dans le panneau qui apparaît, cliquez sur OK+ protected String content; 
-    -  ​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 211: 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.1473252117.txt.gz · Last modified: 2016/09/07 14:41 by blay