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 revisionPrevious revision
Next revision
Previous revision
2015_2016:s3:concprogobjet:td:td1 [2015/07/21 08:32] – [Un exemple de scénario :] blay2015_2016:s3:concprogobjet:td:td1 [2015/09/09 14:02] (current) – [Développement (20mn)] blay
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 08:32 by blay