Documentation avec PlantUML

Objectifs

  • Savoir décrire un diagramme UML sous forme textuelle ;

  • Connaître le format PlantUML.

Mise en situation

Un diagramme de classe UML est par nature un schéma sous forme graphique, mais il y a des situations où il peut être utile de le représenter sous forme textuelle.

Imaginez : vous travaillez à plusieurs sur un diagramme UML, et chaque personne doit pouvoir modifier facilement le diagramme. Comment faire si vous utilisez des outils différents ? Si certains outils nécessitent des compétences en graphisme ?

Et surtout, comment faire pour gérer les différentes versions du diagramme ?

Une solution, c'est d'utiliser un format textuel : pratique pour comparer deux versions, et modifiable sans aucune compétence de graphisme. Ce format pourra ensuite être automatiquement transformé en image, réunissant ainsi le meilleur des deux mondes.

Dans ce module, vous apprendrez à utiliser PlantUML pour décrire vos diagrammes UML simplement avec du texte.

ConseilPlantUML

On conseille pour la documentation l'usage du logiciel PlantUML.

Combiné avec un dépôt Git il permet d'historiser la dynamique de conception.

PlantUML s'intègre dans de nombreux éditeurs de texte, tel que Visual Studio ou Atom.

PlantUML dans Atom

PlantUML est un outil libre et multi-plate-forme qui permet de créer des diagrammes UML à partir d'un langage textuel de description. Il est intégrable à des éditeurs comme Atom ou Visuel Studio. Il peut aussi s'utiliser directement sur un serveur en ligne.

Exemple

1
@startuml
2
hide circle
3
4
class Voiture {
5
  immat : varchar {unique}
6
}
7
8
class Personne {
9
  nom : varchar
10
  prénom : varchar
11
}
12
13
Personne "1" -- "*" Voiture  : conduit
14
15
@enduml
@startumlskinparam defaultFontName Inconsolataskinparam classFontStyle boldskinparam nodesep 80hide circleclass Personne {nom: varcharprénom: varchar}class Voiture {immat: varchar {unique}}Personne "1"--"*" Voiture: conduit@enduml

Méthodehide circle

La commande hide circle permet de supprimer des éléments de syntaxe propre à certaines représentations objet, non utilisés en base de données.

MéthodePositionnement vertical / horizontal

On notera la différence entre :

  • -  : à côté (un seul tiret)

  • -- : en dessous (deux tirets ou plus)

L'ordre de déclaration des classes est pris en compte.

MéthodeNotation des clés composées

Pour noter le clés composées de plusieurs attributs, on utilisera une note.

1
class Employé {
2
  nom : text
3
  prénom : text
4
  ddn : date
5
  date_embauche : date
6
  quotite : pourcentage
7
}
8
note left : (nom, prénom, ddn) unique
@startumlhide circleclass Employé {nom : textprénom : textddn : datedate_embauche : datequotite : pourcentage}note left : (nom, prénom, ddn) unique@enduml