This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
2016_2017:s3:concprogobjet:td:td1 [2016/09/08 23:45] blay [Génération des codes (10 mn)] |
2016_2017:s3:concprogobjet:td:td1 [2016/09/09 10:54] cecchinel [Analyse : 15mn] |
||
---|---|---|---|
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 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", en particulier en ajoutant le fichier {{:javadesigner.jar|}} comme une library du projet, afin que les annotations de Modelio soient comprises. |
<html> | <html> | ||
<!-- | <!-- | ||
Line 166: | Line 165: | ||
- 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 177: | ||
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.html. La classe de test créée se trouve sous test/java/... |
- | * Changez le dossier Source folder pour //tests//. | + | |
- | * Nommez la classe ''MessageTest''. | + | |
* Cochez les cases ''setUp()'' et ''tearDown()''. | * Cochez les cases ''setUp()'' et ''tearDown()''. | ||
- | * Enfin cliquez sur //Finish//. | + | - IntelliJ a maintenant créé automatiquement le squelette de la classe de test. Il ne reste plus alors qu’à remplir cette dernière. |
- | * Eclipse va remarquer que la bibliothèque de //JUnit// est absente du projet et vous propose d’ajouter automatiquement cette dernière au projet. | + | |
- | * 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. | + | |
- 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. |