PlantUML

PlantUML est un outil libre et multi-plate-forme qui permet de créer des diagrammes UML à partir d'un langage textuel de description.

Exemple

1
@startuml
2
hide circle
3
4
class Voiture {
5
  immat : text {key}
6
}
7
8
class Personne {
9
  nom : text
10
  prénom : text
11
}
12
13
Personne "1" -- "*" Voiture  : conduit
14
15
@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éthodeNotation des clés composées

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

Atom et PlantUML

PlantUML peut-être intégré à Atom avec les plugin plantuml-viewer et language-plantuml.

1
apm install plantuml-viewer language-plantuml

ExemplePlantUML dans Atom

RemarquePositionnement vertical / horizontal

Notez 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.

ComplémentAjustement de la longueur des associations avec PlantUML

  • Horizontal  : Classe1 - Classe2 : "    Association    " (on ajoute des espaces)

  • Vertical : Classe1 ------ Classe2 : "Association" (on ajoute des tirets)

ComplémentAjustement du positionnement avec PlantUML

L'usage d'association [hidden] permet d'améliorer un peu la présentation d'un diagramme PlantUML (à utiliser avec parcimonie).

La bonne solution est plutôt l'usage de package.

1
@startuml  
2
3
class Alice  
4
class Bob  
5
class Charlie  
6
class Dan
7
class Eugene
8
class Foobar
9
10
Bob -[hidden] Alice : ré-ordonnancement 
11
Alice -[hidden] Charlie : éloignement horizontal_______________________
12
Dan --[hidden] Eugene : positionnement vertical
13
Alice --------[hidden] Foobar : éloignement vertical
14
15
@enduml

ComplémentContournements pour exprimer des contraintes d'association avec PlantUML

1
Alice -- Bob : Assoc1
2
note right on link
3
{XOR}
4
end note
5
Alice -- Bob : Assoc2
1
Alice -- Bob : Assoc1....{XOR}....
2
Alice -- Bob : Assoc2
1
Alice -- Bob : Assoc1
2
Alice -- Bob : Assoc2
3
note "{XOR}" as N #white
4
(Alice,Bob) .. N
5
N .. (Alice,Bob)

ComplémentCommentaires

Toute ligne qui commence par un ' est un commentaire, non interprété par le moteur.