User Tools

Site Tools


2015_2016: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
2015_2016:s3:concprogobjet:td:td1 [2015/07/21 10:32]
blay [Un exemple de scénario :]
2015_2016:s3:concprogobjet:td:td1 [2015/09/09 16:02] (current)
blay [Développement (20mn)]
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 warning>​SVN OU GIT A PRIORI PAS FAIT AVANT CETTE ANNE</​note>​+
  
 **Objectifs :** Par le développement d'un mini-bus à messages nous mettons en place notre environnement de travail et rappelons les notions de base de la COO. **Objectifs :** Par le développement d'un mini-bus à messages nous mettons en place notre environnement de travail et rappelons les notions de base de la COO.
Line 8: Line 8:
 ===== Présentation de l'​application ===== ===== Présentation de l'​application =====
  
-<​note>​Un **bus à messages** permet à un "​producteur"​ d'​envoyer un "​message"​(texte,​ contenu multimedia, ...)  ​à ​des destinataires nommésCeux-ci ​peuvent lire les messages quand ils le veulent. Selon les modèles de bus, les destinaires ​sont notifiés immédiatement du message (twitter par exemple), ou bien doivent aller eux-même chercher leurs messages (email par exemple). +<​note>​Un **bus à messages** permet à un "​producteur"​ d'​envoyer un "​message"​(texte,​ contenu multimedia, ...) vers des consommateursLes consommateurs ​peuvent lire les messages quand ils le veulent. Selon les modèles de bus, les consommateurs ​sont notifiés immédiatement du message (//twitter par exemple//), ou bien doivent aller eux-même chercher leurs messages (//email par exemple//). 
-Ces modèles d'​architectures sont très utilisés pour faciliter des communications asynchrones et l'​envoi d'​informations à un groupe de destinataires (pensez au principe des tags sous Twitter par exemple).+ 
 +Il existe beaucoup de modèles de "​bus"​ : choix des consommateurs par filtrage sur le message, abonnement des consommateurs à des boîtes spécialisées,​ envoi des messages à la demande des consommateurs,​ dés qu'un message est lu, il n'est plus accessible aux autres consommateurs,​ ... Ces modèles d'​architectures sont très utilisés pour faciliter des communications asynchrones et l'​envoi d'​informations à un groupe de destinataires (pensez au principe des tags sous Twitter par exemple).
  
 [[http://​docs.oracle.com/​cd/​E19798-01/​821-1841/​bnced/​index.html| en savoir plus]] [[http://​docs.oracle.com/​cd/​E19798-01/​821-1841/​bnced/​index.html| en savoir plus]]
 </​note> ​ </​note> ​
  
-Il s'agit de construire les bases "​rudimentaires"​ d'un "bus à messages"​.+Il s'agit de construire les **bases "​rudimentaires"​ d'un "bus à messages"​**, //pensez flux d'​informations par exemple (flux RSS).//
   * Un agent peut créer un bus.   * Un agent peut créer un bus.
   * Des producteurs émettent des messages vers un bus.    * Des producteurs émettent des messages vers un bus. 
Line 50: Line 51:
 ==== Analyse : 15mn  ==== ==== Analyse : 15mn  ====
  
-  - Sous Visual ​Paradigme, commencer par créer un "​modèle"​ : //​bus-analyse//​. Pour cela, vous pouvez par exemple, ouvrir le volet "​Explorateur de modèles"​ //​(Apercu->​Volet)//​ qui est très utile. ​ Cette approche nous permettra de clairement identifier les éléments produits par l'​analyse et ceux produits par la conception. ​+  - Sous Visual ​Paradigm, commencer par créer un "​modèle"​ : //​bus-analyse//​. Pour cela, vous pouvez par exemple, ouvrir le volet "​Explorateur de modèles"​ //​(Apercu->​Volet)//​ qui est très utile. ​ Cette approche nous permettra de clairement identifier les éléments produits par l'​analyse et ceux produits par la conception. ​
     {{:​2014_2015:​s3:​concprogobjet:​td:​vueexplorateurmodeles.png?​direct&​200|Visualisation partielle de la vue "​Explorateur de modèles"​ à la fin de ce TD }}     {{:​2014_2015:​s3:​concprogobjet:​td:​vueexplorateurmodeles.png?​direct&​200|Visualisation partielle de la vue "​Explorateur de modèles"​ à la fin de ce TD }}
-  - Définissez un modèle à 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 "​Call"​ qui vous permettent d'​identifier les méthodes d'​appels et mettent automatiquement à jour vos diagrammes de classes {{:​2014_2015:​s3:​concprogobjet:​td:​creationoperation.png?​direct&​200|}}   - 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 "​Call"​ qui vous permettent d'​identifier les méthodes d'​appels et mettent automatiquement à jour vos diagrammes de classes {{:​2014_2015:​s3:​concprogobjet:​td:​creationoperation.png?​direct&​200|}}
  
Line 63: Line 64:
 ==== Conception : 15mn  ==== ==== Conception : 15mn  ====
  
-   - **Dérivation du diagramme** : Pour bien différencier votre modèle d'​analyse du modèle de conception, **dériver** votre diagramme. Pour cela vous vous placez dans le diagramme de classes, par un clique droit, vous sélectionnez "//​utilities//"​ tout en bas -> //Transitez vers un nouveau diagramme// {{ :​2014_2015:​s3:​concprogobjet:​td:​transiterdiagrammeanalyseconception.png?​direct&​200 |}} puis créez un modèle //​Bus-Conception// ​ pour bien distinguer vos éléments. Attention à présent de bien travailler dans le modèle en conception {{:​2014_2015:​s3:​concprogobjet:​td:​deuxmodeles.png?​direct&​200|}} 
   - Compléter votre modèle à classes pour préparer l'​implémentation :    - Compléter votre modèle à classes pour préparer l'​implémentation : 
         * Réfléchir au sens des relations         * Réfléchir au sens des relations
Line 84: Line 84:
          * En sélectionnant le projet, //clique droit, new class//          * En sélectionnant le projet, //clique droit, new class//
          * Bien sélectionner le  //main// et les commentaires sur la classe {{:​2014_2015:​s3:​concprogobjet:​td:​monscenario.png?​direct&​200|MonScenario}}          * Bien sélectionner le  //main// et les commentaires sur la classe {{:​2014_2015:​s3:​concprogobjet:​td:​monscenario.png?​direct&​200|MonScenario}}
 +
 +
 +
 +
 +<​html>​
 +<​!-- ​
  
 ==== Un projet sous le gestionnaire de version (10mn) ==== ==== Un projet sous le gestionnaire de version (10mn) ====
Line 100: Line 106:
   - Vérifier que votre fichier est bien, à présent, accessible depuis la forge, pour cela connectez vous sur la forge si ce n'est pas encore fait.   - Vérifier que votre fichier est bien, à présent, accessible depuis la forge, pour cela connectez vous sur la forge si ce n'est pas encore fait.
   - Evidemment, l'​autre étudiant du binôme peut se connecter au même répertoire et faire un "​checkout"​ de cet espace.   - Evidemment, l'​autre étudiant du binôme peut se connecter au même répertoire et faire un "​checkout"​ de cet espace.
 +
 +
 +
 +--!>
 +</​html>​
  
  
Line 113: Line 124:
   - 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 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.)
   - 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 utilisant simplement les petites boules jaunes sur le côté, mais **ne passez pas à l'​implémentation**,​ nous ferons cela un peu plus tard.
 +<​html>​
 +<!--
   - Quand il n'y a plus d'​erreurs,​ mémoriser les codes dans SVN (pour s'​entraîner ;-) ) . Donc cette fois-ci simplement, //clique droit// sur le package (car évidemment,​ vous travaillez bien dans un package), puis //Team// puis //commit//. Il vous propose directement les fichiers à ajouter au commit. N'​oublier de mettre un message.   - Quand il n'y a plus d'​erreurs,​ mémoriser les codes dans SVN (pour s'​entraîner ;-) ) . Donc cette fois-ci simplement, //clique droit// sur le package (car évidemment,​ vous travaillez bien dans un package), puis //Team// puis //commit//. Il vous propose directement les fichiers à ajouter au commit. N'​oublier de mettre un message.
 +--!> 
 +</​html>​
  
  
Line 123: Line 137:
   - créer un bus de nom "​Nice-Circulation",​   - créer un bus de nom "​Nice-Circulation",​
   - créer un message annonçant "une attente de 5mn"   - créer un message annonçant "une attente de 5mn"
-  - publier le message sur le bus, 
   - créer un message annonçant "un accident"​   - créer un message annonçant "un accident"​
-  - publier le message sur le bus, 
   - lire les messages,   - lire les messages,
   - afficher le contenu des message.   - afficher le contenu des message.
Line 152: Line 164:
 {{ :​2014_2015:​s3:​concprogobjet:​td:​testok.png?​direct&​200 |}} {{ :​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 ​et en n'​oubliant pas de commiter.+  - Terminez la mise en oeuvre du bus en complétant les tests au fur et à mesure.
  
  
Line 166: Line 178:
  
 ===== EVALUATION de CE TD =====  ===== EVALUATION de CE TD ===== 
-  - Tous les étudiants ont donné accès à leur professeur sur un de leur espace. +
-  - Tous les étudiants ont bien sauvegardé dans leur espace SVN. +
-  - Tous les étudiants ont au moins une fois fait un commit dans cet espace de travail.+
   - Le programme est fonctionnel et le scénario de base est bien réalisé.   - Le programme est fonctionnel et le scénario de base est bien réalisé.
 +  - Les modèles sont cohérents avec le code.
  
  
 +http://​jalon.unice.fr/​cours/​blay/​Cours.blay.2011-10-10.3543/​BoiteDepot-blay-20150731120912764725?​mode_etudiant=true&​menu=sujets
 ===== Je sais ===== ===== Je sais =====
    
Line 177: Line 189:
   * Créer un projet sous Eclipse, et le structurer correctement.   * Créer un projet sous Eclipse, et le structurer correctement.
   * Générer le code à partir d'un modèle de classes en UML.   * Générer le code à partir d'un modèle de classes en UML.
-  * Connecter mon code à un répertoire SVN. 
   * Structurer mon projet pour intégrer les tests unitaires. ​   * Structurer mon projet pour intégrer les tests unitaires. ​
   * Utiliser Eclipse pour améliorer mon développement en utilisant les outils d'aide au développement.   * Utiliser Eclipse pour améliorer mon développement en utilisant les outils d'aide au développement.
 </​box>​ </​box>​
  
2015_2016/s3/concprogobjet/td/td1.1437467548.txt.gz · Last modified: 2015/07/21 10:32 by blay