BOUML : suite d’outils UML 2

Fiche PLUME
  • Création ou MAJ importante : 20/10/2010
  • Correction mineure : 19/04/2013
  • Auteur : Pascal Dayre - IRIT (CNRS et Institut National Polytechnique de Toulouse)
  • Responsable thématique : Laurent Perochon (METAFORT)
  • Relecteur 1 : Véronique Baudin
  • Relecteur 2 : Laurent Tiercin
Mots clés
Description
Fonctionnalités générales

BOUML est une suite d’outils UML 2 comprenant un modeleur avec un ensemble d'extensions permettant de modéliser les différents aspects d'un projet avec les diagrammes UML usuels (http://bouml.free.fr/screenshots.html).
BOUML peut également générer du code C++, Java, Idl, PHP et Python. BOUML peut faire la rétro-ingénierie de l’ensemble des sources d’une JDK (java, javax, com...) tout comme l'import des classes de toute bibliothèque java dans un projet. La rétro-ingénierie fonctionne également avec PHP et C++.

Agréable à utiliser car très rapide, les outils de dessin de diagrammes sont bien conçus. De plus, BOUML est peu gourmand en mémoire et en CPU.
Sa licence GPL l'a fait adopter par une communauté importante qui le porte sur de nombreuses plateformes. De nombreuses versions sont disponibles chaque année.
Par contre, il n'est pas intégrable aux IDEs tels qu’Eclipse ou Netbeans. Il utilise QT pour son environnement graphique.

Autres fonctionnalités

Il est possible de l'utiliser avec un système de gestion de version tel que SVN. Nativement, il supporte la synchronisation de plusieurs utilisateurs sur le même projet.

BOUML offre une API permettant de faire des extensions et prendre d'autres langages ou d'autres fonctionnalités telles que la génération de codes spécifiques. Il se compose d'un coeur appelé modeleur et d'extensions appelées plug-out.

Cet outil génère une documentation UML (http://www.projet-plume.org/fr/ressource/uml) au format HTML, ce qui peut être intéressant (présentation modélisation au client).

Interopérabilité

BOUML offre le support de Xmi 1.2 et Xmi 2.1 pour l'export et de Xmi 2.1 pour l'import ainsi que l'import des projets Rational Rose (seul le modèle est importé correctement, les diagrammes sont créés vides).

Il est possible d'importer au format XMI 2.1. Pour les imports au format 1.x, il y a un risque de perte de données notamment les représentations graphiques (incompatibilité entre les version XMI 1.x et 2.x).

Contexte d'utilisation dans mon laboratoire/service

Utilisation des différents diagrammes pour modéliser les différents aspects d'un projet.

En plus de modéliser les différents aspects d’un projet, BOUML fait le lien avec l’implémentation (création des diverses classes (simple squelette) à partir du diagramme de classes).

Limitations, difficultés, fonctionnalités importantes non couvertes

A ce jour, BOUML n'existe pas en tant qu'extension à un environnement de développement de référence tels qu'Eclipe ou Netbeans.

BOUML est moins intuitif que StarUML.

Le code généré lors de la modélisation (exemple, java) ne s’affiche pas en même temps que la modélisation UML. Ceci peut être gênant.

Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré

Le paquetage Debian (Ubuntu) se trouve sur le site http://packages.debian.org/fr/sid/bouml.

Plates-formes

Différents Linux, MAC OS, Windows

Logiciels connexes
Autres logiciels aux fonctionnalités équivalentes
Environnement de développement
Type de structure associée au développement

Communauté du libre

Un auteur principal (Bruno Pagès) aidé de 2 personnes pour les aspects MacOS pour le coeur de l’outil, complété par des contributeurs qui développent de plug-out spécifiques (http://bouml.sourceforge.net/contrib.html)

Eléments de pérennité

Licence GPL, forte communauté (2 milions de visiteurs sur le site officiel)

Modélisateur respectant la norme UML 2.0 édictée par l’OMG ( http://www.omg.org/spec/UML/2.0/ )

Environnement utilisateur
Liste de diffusion ou de discussion, support et forums
Documentation utilisateur
Divers (astuces, actualités, sécurité)

BOUML est très utile pour la rétro-ingénierie. Il est de plus bien plus rapide que beaucoup de produits payants. Il permet également de gérer la synchronisation entre le modèle UML et le code source en java et en C++

Une autre fonctionnalité très intéressante de BOUML est son générateur de machine à état à partie d'un diagramme d'état (UML state diagram).