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/08/14 21:35]
blay [Génération des codes (10 mn)]
2016_2017:s3:concprogobjet:td:td1 [2016/09/29 21:15] (current)
blay [EVALUATION de CE TD]
Line 1: Line 1:
 ====== TD1 : Prise en main de l'​environnement de développement ====== ====== TD1 : Prise en main de l'​environnement de développement ======
 +
 +
 +<note tip>​Commencer par lancer IntelliJ et Modelio qui sont long à charger !!</​note> ​
 +
  
 <note warning>​Ce module exige que vous utilisiez un environnement de développement pas un éditeur de texte !  <note warning>​Ce module exige que vous utilisiez un environnement de développement pas un éditeur de texte ! 
 JCreator, Notexxx ne sont pas de tels environnements de développement. JCreator, Notexxx ne sont pas de tels environnements de développement.
-Vous pouvez ​utiliser ​par exemple ​**IntelliJ** ou **Eclipse**. +Vous devez utiliser **IntelliJ**.
  
 Le téléchargement de ces outils peut être long, il doit avoir été fait avant le TD. Le téléchargement de ces outils peut être long, il doit avoir été fait avant le TD.
  
    * [[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 69: 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 94: Line 97:
 ==== Un projet java (5mn)  ==== ==== Un projet java (5mn)  ====
  
-<note important>​Les instructions sont données ici avec Eclipse Luna qui se trouve sur le disque local mais vous pouvez aussi utiliser IntelliJ qui a dû être installé sur votre ordinateur. </​note>​ 
  
-   - Créer un projet ​java "//busV1//" ​ +   - Créer un projet ​**MAVEN**  
-   ​Placez vous dans la perspective "​Java" ​(//Window ​-> Open Perspective/​/) +         - Nom du projet : busV1 
-   ​- ​Créer la classe "//​MonScenario//"​ +         - GroupID = fr.unice.iut.info.coo 
-         * En sélectionnant le projet, //clique droit, new class// +         - ArtefactID = bus 
-         * Bien sélectionner ​le  //main// et les commentaires sur la classe {{:​2014_2015:​s3:​concprogobjet:​td:​monscenario.png?​direct&​200|MonScenario}}+         - ( **voir comment faire ici [[https://mbf-iut.i3s.unice.fr/doku.php?​id=intellij#​creer_un_projet_maven|ici]]** ​)  
 +   ​- ​La structure contient ​ 
 +          - src -> main -> Java ... 
 +          - test -> java -> ... 
 +          - Exécutez ​le main sous gid et les tests... 
 +   - Ok maintenant vous êtes prêts.
  
  
Line 135: 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 158: 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 170: 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 203: 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.1471203310.txt.gz · Last modified: 2016/08/14 21:35 by blay