Usage de BoUML : organisation et nommage

Les fichiers de BoUML

Tous les modeleurs UML manipulent un grand nombre d'informations structurées variées (modèles eux-mêmes, contenu et organisation des figures, configurations pour la génération de code, etc). Beaucoup de constructeurs d'outils ont choisi de sauvegarder toutes ces informations dans des archives (le plus souvent de format propriétaire et non documenté), ce qui donne une impression de simplicité (un seul fichier correspond à un projet), mais ne permet pas la récupération aisée d'informations et rend dépendant de l'outil utilisé.

BoUML a fait le choix de gérer ces informations dans un répertoire de projet qui contient en fait une collection de fichiers texte. Un projet manipulé par BoUML se présente comme suit :

proto2
|-- 128002
|-- 128002.diagram
|-- ....              : plusieurs fichiers suivant projet
|-- 2.session
|-- cpp_includes
|-- generation_settings
|-- idl_includes
|-- java_imports
|-- proto2.prj        :  fichier de description du projet
|-- stereotypes
`-- tools

Le projet BoUML "proto2"

Le nombre et la dénomination des fichiers présents dans le projet dépendent de la complexité de ce dernier. En tout état de cause, l'utilisation normale de BoUML ne nécessite aucunement de connaître le détail de tous ces fichiers. Le seul fichier que vous avez à connaître est le fichier de description du projet qui a l'extension «.prj» (c'est lui que vous devez sélectionner pour ouvrir un projet existant).

BoUML impose que le répertoire qui contient le projet et le fichier de description aient le même nom de base (ici «proto2») ; si vous voulez renommer votre projet, il faudra non seulement renommer le répertoire, mais aussi le fichier de description en utilisant le même non de base.

Il est vivement déconseillé de manipuler directement les fichiers contenus dans un répertoire de projet BoUML. Si vous en modifiez le contenu (avec un éditeur de texte par exemple), vous risquez de rendre votre projet illisible par BoUML, donc de le perdre.

Gérer l'évolution d'un modèle

Pendant l'élaboration d'un logiciel, le modèle de représentation du programme évolue et passe par plusieurs étapes :

  • modèle de spécification,
  • modèle d'analyse,
  • un ou plusieurs modèles de conception,
  • modèle d'implantation

Tous ces modèles appartiennent évidemment à la même conception et vont concerner les même artéfacts (classes, objets, relations, etc). Cependant, il est tout à fait possible, même probable, qu'un même artéfact, une classe par exemple, soit présent dans plusieurs modèles avec des caractéristiques (attributs et méthodes) qui ont évolué. On pourrait faire tout le processus de conception en utilisant un seul projet BoUML, mais à ce moment là on aurait pour chaque artéfact une description qui correspond au dernier état modélisé, ce qui interdirait tout retour en arrière en cas de détection de problème.

Pour éviter cette difficulté, il est conseillé de créer autant de projets BoUML qu'il y a d'étapes dans la modélisation et de placer tous ces répertoires dans un répertoire dédié à la modélisation du projet.

proto/
|-- ant/           : scripts d'automatisation
|-- build/         : délivrables fabriqués
|-- docsrc/        : source de documentation
|-- java/          : sources java
|-- uml/           : répertoire des modèles
|   |-- proto1/       premier état (prj BoUML)
|   |-- proto2/       second état (prj BoUML)
|   |-- ....          états suivants
|   `-- <images du modèle>
`-- ww/            : répertoire de travail

Structure d'un projet Java avec modélisation

Si on intègre cette organisation dans la structure d'un projet de développement en Java on obtient la figure ci-dessus : la gestion des modèles se fait dans un répertoire «uml» qui contient autant de sous-répertoires/projets BoUML qu'il y a d'étapes dans la modélisation. Ces projets BoUML sont nommés comme le projet de base (ici «proto») avec un nom postfixé par le numéro d'étape de modélisation. Le répertoire «uml» sert également à sauvegarder les originaux des diagrammes (en .png ou .svg) fabriqués par BoUML.

Quand on a terminé une étape, pour créer le modèle de la nouvelle étape, il suffit dans BoUML, après avoir fait une dernière sauvegarde du projet en cours (Ctrl-S), de faire une sauvegarde avec l'item «Save As …» du menu «Fichier».

Sauvegarde et nommage des figures générées

BoUML permet de sauvegarder les diagrammes construits, soit au format PNG soit au format SVG ; chacun de ces formats présente des avantages et des inconvénients :

  • PNG : est un format très courant que l'on pourra intégrer dans des pages web et utiliser avec de très nombreux traitements de texte ; cependant, c'est un format bitmap qui ne supportera pas facilement les changement d'échelle, certaines lignes peuvent disparaître à la réduction, des textes peuvent rester illisibles même si on agrandit.
  • SVG : nouveau standard de graphique vectoriel du W3C, n'est pas encore supporté par tous les outils d'édition ou de visualisation ; par contre il supporte très bien les changements d'échelle sans perte d'information et ses sources peuvent être facilement repris pour modification à l'aide d'éditeurs graphiques tels que Inkscape.

Il est conseillé de sauvegarder les diagrammes BoUML dans les deux formats, ce qui donnera ensuite le maximum de possibilités d'exploitation.

La dernière difficulté est qu'un grand nombre de diagrammes est fabriqué pendant une modélisation, il est donc indispensable d'adopter une règle de nommage qui permettra de retrouver à coup sûr le diagramme cherché. La règle que nous suggérons est la suivante :

      <nom_projet><etape>-<id_diagramme>-<type_diag>.<extension>

Où les différents éléments sont définis ainsi :

<nom_projet>
le nom du projet,
<numero_etape>
numéro de l'étape de modélisation dans le projet,
<id_diagramme>
nom libre donné au diagramme,
<type_diag>
libellé conventionnel indiquant le type du diagramme construit,
<extension>
extension indiquant le type de fichier graphique (.png ou .svg)

Les libellés proposés pour les différents types de diagramme sont :

  • -ucd : pour les diagrammes de cas d'utilisation (Use Case Diagram),
  • -cld : pour les diagrammes de classes (CLass Diagram),
  • -sd  : pour les diagrammes de séquence (Sequence Diagram),
  • -cod : pour les diagrammes de communication (Communication Diagram),
  • -od  : pour les diagrammes d'objets (Object Diagram),
  • -std : pour les diagrammes d'état (STate Diagram),
  • -acd : pour les diagrammes d'activité (ACtivity Diagram),
  • -cpd : pour les diagrammes de composants (ComPonent Diagram),
  • FIXME à continuer

Ainsi, un diagramme de classe correspondant à la deuxième étape du projet proto sera nommé :

proto2-distributeur-cld.png

et un diagramme de séquence correspondant à la première étape du même projet :

proto1-retrait_argent-sd.png
bouml/bien_gerer_les_projets_bouml.txt · Dernière modification: 2009/03/30 16:59 par deveaux.daniel

Informations sur la pratique du Wiki -- Mention légale
Copyright © 2005-07 UBS - IUT de Vannes - Dept Informatique
Creative Commons License Valid XHTML 1.0 Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed