Archyno
ExportsPratique de la modélisation

Exporter UML vers XMI

Le format d'échange que chaque outil UML prétend parler, et le récit honnête de la moitié de votre modèle qui survit au voyage.

6 min de lectureXMI 2.5.11 sur 3

La réponse courte

  • XMI transporte le modèle - classes, attributs, opérations, relations - et non son image.
  • La mise en page disparaît parce que l'échange des diagrammes est resté optionnel presque toute la vie de XMI, et chaque outil a comblé le manque à son dialecte.
  • Exportez-le quand c'est le modèle qu'il faut déplacer. Remettre un diagramme en page prend un après-midi ; retaper quatre cents classes prend quinze jours.
  • Pour une image, exportez du SVG ou du PNG. XMI est l'option indépendante d'un éditeur pour le modèle, et rien d'autre.

01Ce qu'est réellement XMI#

XMI signifie XML Metadata Interchange, et le mot qui compte est métadonnées. C'est une règle mécanique pour sérialiser en XML n'importe quel métamodèle fondé sur MOF, et UML est l'un de ces métamodèles - un fichier XMI est donc votre modèle exprimé en éléments et attributs qui suivent la structure du métamodèle UML lui-même. Une classe devient un packagedElement avec xmi:type="uml:Class", ses attributs deviennent des éléments ownedAttribute imbriqués, et une relation devient une Association avec deux références memberEnd.

C'est toute l'idée, et elle explique à la fois la force et la fameuse faiblesse. La force : n'importe quel outil qui implémente le métamodèle UML sait lire ces éléments, parce qu'ils ne sont pas l'invention d'un éditeur. La faiblesse suit immédiatement : rien dans le métamodèle UML ne dit où une classe se situe sur une zone de dessin. Les coordonnées ne font pas partie de ce que XMI a été conçu pour porter.

02Ce qui passe, et ce qui ne passe pas#

ÉlémentNotationCe que cela signifie
ClassifieursFiableClasses, interfaces, composants, acteurs, cas d'utilisation : le nom, le stéréotype et le placement dans le paquet arrivent tous.
Attributs et opérationsFiableY compris types, visibilité et multiplicité. La moitié la plus précieuse du fichier, et celle que personne ne veut ressaisir.
RelationsFiableAssociations avec leurs deux extrémités, généralisations, réalisations, dépendances.
Mise en page du diagrammePeu fiablePositions et tailles voyagent dans une extension propriétaire que l'outil destinataire ignore le plus souvent. Prévoyez de refaire la mise en page.
Notes et contraintesVariableLes commentaires survivent généralement ; les contraintes OCL dépendent du fait que les deux outils analysent la même version d'OCL.
Données propres à l'outilPerduCouleurs, propriétés personnalisées, liens vers les exigences, cas de test. Rien de tout cela n'est de l'UML, donc rien n'est dans le XMI.

Le schéma mérite d'être dit une fois : XMI porte ce qu'UML définit, et rien d'autre. Chaque déception vis-à-vis du format vient de l'attente qu'il porte quelque chose que le métamodèle n'a jamais décrit. Ce n'est pas tant un défaut de XMI que la réponse à une question que l'on ne savait pas poser.

03L'utiliser sans mauvaise surprise#

Trois habitudes suppriment l'essentiel de la douleur. Exportez d'abord un petit modèle et ouvrez le XML dans un éditeur de texte. Dix minutes de lecture vous en apprennent plus sur ce que produit votre outil que n'importe quelle documentation - et c'est là que vous découvrez que la mise en page se trouve dans un bloc d'extension vers la fin.

Importez dans un projet jetable, jamais par-dessus un vrai. Un import qui correspond partiellement à un modèle existant est bien plus difficile à défaire que celui qui arrive dans un conteneur vide que l'on peut jeter.

Budgétez la remise en page plutôt que d'espérer. Réorganiser un modèle de cent classes en vues lisibles représente une journée de travail, et il vaut mieux la chiffrer que la traiter comme un échec le jour venu. S'il faut que les images survivent à l'identique, la réponse n'est pas XMI mais un format de fichier natif ou un export en image.

En une ligne chacun

  1. 01XMI sérialise le métamodèle UML : il porte le modèle, pas l'image.
  2. 02Classifieurs, membres et relations passent de façon fiable entre outils conformes.
  3. 03La mise en page voyage dans des extensions propriétaires et survit rarement - budgétez-la.
  4. 04Tout ce qui n'est pas de l'UML - couleurs, champs personnalisés, liens d'exigences - n'est pas dans le fichier.
  5. 05Lisez un fichier exporté dans un éditeur de texte avant de compter sur le format.

04Questions fréquentes#

À quoi sert XMI ?

À déplacer un modèle UML entre des outils qui ne partagent pas de format de fichier. C'est une sérialisation XML du métamodèle UML : il transporte donc le modèle - classes, attributs, opérations et relations - et non son image.

Pourquoi ma mise en page disparaît-elle à l'import XMI ?

Parce que l'échange des diagrammes est resté une partie optionnelle du standard pendant l'essentiel de la vie de XMI, et les outils ont comblé le manque par leurs propres extensions. Les éléments arrivent ; les coordonnées qui les plaçaient étaient écrites dans un dialecte que l'outil récepteur ne lit pas.

Vaut-il encore la peine d'exporter en XMI ?

Oui, quand ce qu'il faut déplacer est le modèle. C'est la seule option indépendante d'un éditeur pour cela, et remettre un diagramme en page prend un après-midi là où retaper quatre cents classes prend quinze jours. Pour une image, exportez plutôt du SVG ou du PNG.

Dans cette série

À lire aussi

Tous les articles