CSI
- DESS CCI Réseaux
Année 2003-2004
Dernière mise
à jour :
15/01/04 17:09
TP1-2
Quelques précisions sur le passage de l'expression des besoins à l'analyse
Une fois que chaque cas d'utilisation est décrit par un nombre suffisant de
scénarios (au moins un), vous allez pouvoir passer à l'analyse.
Pour cela :
- créer un package appelé "analyse" dans la vue logique
- y créer un diagramme de classe appelé "domaine->analyse", qui servira à
exprimer les relations de dépendance entre les classes du modèle du domaine
et celle du modèle d'analyse
- y créer un diagramme de classe appelé "classes d'analyse", qui servira à
intégrer toute l'information de l'analyse (les relations entre classes, les
opérations, etc.) et qui en sera le résultat principal
Dans le diagramme "domaine->analyse, faire apparaitre chaque classe du modèle
du domaine (ex. DPret), et créer pour chacune une classe du modèle d'analyse
(Pret). Recopier dans cette dernière les attributs nécessaires. Mettre une relation
de dépendance entre les classes de domaine et d'analyse (ex. Pret -> DPret).
Dans le diagramme "classes d'analyse", faire apparaitre toutes les classes
d'analyse, et recopier les relations entre elles à partir du modèle du domaine.
Pour chaque scénario de chaque cas d'utilisation, créer un diagramme de séquence
et/ou de collaboration (pour passer de l'un à l'autre : F5) décrivant comment
le scénario est réalisé à l'aide d'objets issus des classes d'analyse. Evidemment,
vous pouvez rajouter de nouvelles classes d'analyse si vous avez besoin de nouveaux
objets. Une fois satisfait de chaque collaboration, vous pouvez reporter dans
le diagramme de classe les opérations nécessaire (qui correspondent à des messages),
les nouveaux attributs, etc.
Remarques :
- Numérotation des séquences : aller dans les propriétés du modèle (Model
Properties), sélectionner l'onglet Diagram, cocher "sequence numbering" et
"Hierarchical messages". Vous pouvez désormais gérer, à partir des diagrammes
de séquences, les liens hiérchiques de numérotation entre messages (en utilisant
les "boites" sur les lignes de temps des objets).
Quelques précisions sur la génération de code JAVA et
le codage
Comme on l'a dit en TP, on ne fera finalement pas de diagramme de conception,
mais on générera les classes JAVA directement à partir
du diagramme d'analyse.
On gérera au niveau du diagramme de classes 3 paquetages :
- le paquetage monTP (qui contient tout ce qui concerne le fonctionnement
bancaire),
- le paquetage gestionUtilisateurs, qui contient une classe Identification
(donc la doc peut être téléchargée ci-dessus),
- le paquetage gestionCourrier, qui contient une classe ISMTP, que
vous allez fabriquer (elle possèdera une méthode Envoi(), qui
ne fera pas grand chose, si ce n'est afficher "J'ai bien envoyé
le mail").
Remarques :
- lorsque l'on utilise les classes Identification ou ISMTP dans le diagramme
de classe, on doit mettre en place une association navigable : Banque les
utilise, et elles n'ont pas à savoir par qui elles sont utilisées.
- la classe Compte sera sans aucun doute une classe abstraite (on n'a jamais
d'instance directe de Banque, mais des instances de CompteCourant ou CompteEpargne).
Comme une classe abstraite contient toujours au moins une méthode abstraite,
vous devrez en définir une dans Compte, qui sera effectivement codée
dans les deux sous-classes. Rose permet de spécifier qu'une opération
ou une classe sont asbtraites.
La gestion du code se fera dans trois dossiers sur votre compte :
- src contiendra le code source (.java)
- classes contiendra les classes issues de la compilation (.class)
- doc contiendra la documentation des packages (en HTML)
On gérera dans la vue des composants trois packages
- le package monTP, qui contient les composants correspondants au classes
du package d'analyse monTP
- le package gestionUtilisateurs, qui contient un composant Identification
réalisant la classe Identification
- le package gestionCourrier qui contient un composant ISMTP
réalisant la classe ISMTP
Vous expliciterez dans le diagramme de composant appelé Main dans la
vue des composant les liens de dépendance entre packages et entre classes
(ce sont des relations qui en java se traduiront par des instructions import
soit de package, soit de classes).
Remarques :
- attention : vous devrez générer le code (.java) pour tous
les composants, sauf Identification, puisque le package gestionUtilisateurs
vous est fourni déjà compilé (ce qui signifie
qu'il faut mettre les fichiers .class du package dans le dossier classes/gestionUtilisateurs.
- remarquer à la génération de code comment Rose traduit
les associations par des attributs dans les classes :
- au niveau des noms (si vous avez nommé l'association, mis un
nom de rôle, ou rien du tout)
- au niveau des multiplicités
- pour compiler : java -classpath chemin1 -d chemin2 fichiers.java
avec
- chemin1 = chemin dans lequel aller chercher les classes pour compiler
(par exemple, il faudra utiliser cette option de javac, en spécifiant
le dossier classes pour que le compilateur puisse aller vérifier
que Identification est bien utilisée dans Banque)
- chemin2 = chemin pour indiquer le dossier où mettre les classes
générées
- fichiers.java = fichiers qu'il faut compiler.
- pour exécuter une classe qui contient une méthode Main, se
placer dans le dossier classes et appeler la classes en passant par
son paquetage (ex. java monTP/Banque)
Si vous estimez qu'il manque des informations dans cette page, ou que des choses
seraient à préciser, merci d'envoyer un courrier à yprie@bat710.univ-lyon1.fr