Diagramme de cas d'utilisation

Un diagramme de cas d'utilisation est une représentation visuelle utilisée en ingénierie logicielle pour décrire les interactions entre les acteurs du système et le système lui-même. Il capture le comportement dynamique d'un système en illustrant ses cas d'utilisation et les rôles qui interagissent avec eux. Ces diagrammes sont essentiels pour spécifier les exigences fonctionnelles du système et comprendre comment les utilisateurs interagiront avec le système. En fournissant une vue de haut niveau, les diagrammes de cas d'utilisation aident les parties prenantes à comprendre la fonctionnalité du système et sa valeur potentielle.

PlantUML offre une approche unique pour créer des diagrammes de cas d'utilisation grâce à son langage textuel. L'un des principaux avantages de l'utilisation de PlantUML est sa simplicité et son efficacité. Au lieu de dessiner manuellement des formes et des connexions, les utilisateurs peuvent définir leurs diagrammes à l'aide de descriptions textuelles intuitives et concises. Cela permet non seulement d'accélérer le processus de création des diagrammes, mais aussi d'en assurer la cohérence et la précision. La capacité à s'intégrer à diverses plateformes de documentation et sa large gamme de formats de sortie supportés font de PlantUML un outil polyvalent pour les développeurs comme pour les non-développeurs. Enfin, comme il s'agit d'un logiciel libre, PlantUML peut se vanter d'avoir une forte communauté qui contribue continuellement à son amélioration et offre une richesse de ressources pour les utilisateurs à tous les niveaux.

Cas d'utilisation

Les cas d'utilisation sont mis entre parenthèses (car deux parenthèses forment un ovale).

Vous pouvez aussi utiliser le mot-clé usecase pour définir un cas d'utilisation. Et vous pouvez définir un alias avec le mot-clé as. Cet alias sera ensuite utilisé lors de la définition des relations.

🎉 Copied!

@startuml

(First usecase)
(Another usecase) as (UC2)
usecase UC3
usecase (Last\nusecase) as UC4

@enduml

Acteurs

Le nom définissant un acteur est placé entre deux points.

Vous pouvez également utiliser le mot-clé actor pour définir un acteur. Un alias peut être attribué à l'aide du mot-clé as et peut être utilisé ultérieurement à la place du nom de l'acteur, par exemple lors de la définition des relations.

Les exemples suivants montrent que la définition des acteurs est facultative.

🎉 Copied!

@startuml

:First Actor:
:Another\nactor: as Man2
actor Woman3
actor :Last actor: as Person1

@enduml

Change Actor style

You can change the actor style from stick man (by default) to:
  • an awesome man with the skinparam actorStyle awesome command;
  • a hollow man with the skinparam actorStyle hollow command.

Stick man (by default)

🎉 Copied!

@startuml
:User: --> (Use)
"Main Admin" as Admin
"Use the application" as (Use)
Admin --> (Admin the application)
@enduml

Awesome man

🎉 Copied!

@startuml
skinparam actorStyle awesome
:User: --> (Use)
"Main Admin" as Admin
"Use the application" as (Use)
Admin --> (Admin the application)
@enduml

[Ref. QA-10493]

Hollow man

🎉 Copied!

@startuml
skinparam actorStyle Hollow 
:User: --> (Use)
"Main Admin" as Admin
"Use the application" as (Use)
Admin --> (Admin the application)
@enduml

[Ref. PR#396]

Description des cas d'utilisation

Si vous voulez une description sur plusieurs lignes, vous pouvez utiliser des guillemets.

Vous pouvez aussi utiliser les séparateurs suivants: -- .. == __. Et vous pouvez mettre un titre dans les séparateurs.

🎉 Copied!

@startuml

usecase UC1 as "You can use
several lines to define your usecase.
You can also use separators.
--
Several separators are possible.
==
And you can add titles:
..Conclusion..
This allows large description."

@enduml

Utiliser un package

Vous pouvez utiliser des packages pour regrouper des acteurs ou des cas d'utilisation

🎉 Copied!

@startuml
left to right direction
actor Guest as g
package Professional {
  actor Chef as c
  actor "Food Critic" as fc
}
package Restaurant {
  usecase "Eat Food" as UC1
  usecase "Pay for Food" as UC2
  usecase "Drink" as UC3
  usecase "Review" as UC4
}
fc --> UC4
g --> UC1
g --> UC2
g --> UC3
@enduml

Vous pouvez utiliser rectangle pour modifier l'affichage du paquet

🎉 Copied!

@startuml
left to right direction
actor "Food Critic" as fc
rectangle Restaurant {
  usecase "Eat Food" as UC1
  usecase "Pay for Food" as UC2
  usecase "Drink" as UC3
}
fc --> UC1
fc --> UC2
fc --> UC3
@enduml

Exemples très simples

Pour lier les acteurs et les cas d'utilisation, la flèche --> est utilisée.

Plus il y a de tirets - dans la flèche, plus elle sera longue. Vous pouvez ajouter un libellé sur la flèche, en ajoutant un caractère : dans la définition de la flèche.

Dans cet exemple, vous voyez que User n'a pas été défini préalablement, et qu'il est implicitement reconnu comme acteur.

🎉 Copied!

@startuml

User -> (Start)
User --> (Use the application) : A small label

:Main Admin: ---> (Use the application) : This is\nyet another\nlabel

@enduml

Héritage

Si un acteur ou un cas d'utilisation en étend un autre, vous pouvez utiliser le symbole <|--.

🎉 Copied!

@startuml
:Main Admin: as Admin
(Use the application) as (Use)

User <|-- Admin
(Start) <|-- (Use)

@enduml

Notes

Vous pouvez utiliser les mots clés note left of , note right of , note top of , note bottom of pour définir les notes en relation avec un objet.

Une note peut également être définie seule avec des mots-clés, puis liée à d'autres objets en utilisant le symbole .. .

🎉 Copied!

@startuml
:Main Admin: as Admin
(Use the application) as (Use)

User -> (Start)
User --> (Use)

Admin ---> (Use)

note right of Admin : This is an example.

note right of (Use)
  A note can also
  be on several lines
end note

note "This note is connected\nto several objects." as N2
(Start) .. N2
N2 .. (Use)
@enduml

Stéréotypes

Vous pouvez ajouter des stéréotypes à la définition des acteurs et des cas d'utilisation avec << et >>.

🎉 Copied!

@startuml
User << Human >>
:Main Database: as MySql << Application >>
(Start) << One Shot >>
(Use the application) as (Use) << Main >>

User -> (Start)
User --> (Use)

MySql --> (Use)

@enduml

Changer les directions des flèches

Par défaut, les liens entre les classes ont deux tirets -- et sont orientés verticalement. Il est possible de mettre des liens horizontaux en mettant un seul tiret (ou un point) comme ceci:

🎉 Copied!

@startuml
:user: --> (Use case 1)
:user: -> (Use case 2)
@enduml

Vous pouvez aussi changer le sens en renversant le lien :

🎉 Copied!

@startuml
(Use case 1) <.. :user:
(Use case 2) <- :user:
@enduml

Il est possible de changer la direction d'une flèche en utilisant les mots-clé left, right, up ou down à l'intérieur de la flèche :

🎉 Copied!

@startuml
:user: -left-> (dummyLeft)
:user: -right-> (dummyRight)
:user: -up-> (dummyUp)
:user: -down-> (dummyDown)
@enduml

Vous pouvez abréger les noms des flèches en indiquant seulement le premier caractère de la direction (par exemple -d- pour -down-) ou les deux premiers caractères (-do-).

Il est conseillé de ne pas abuser de cette fonctionnalité : Graphviz qui donne d'assez bon résultats quoique non "garantis".

Découper les diagrames

Le mot-clé newpage est utilisé pour découper un diagrame en plusieurs images.

🎉 Copied!

@startuml
:actor1: --> (Usecase1)
newpage
:actor2: --> (Usecase2)
@enduml

De droite à gauche

Le comportement général de construction des diagrammes est de haut en bas.

🎉 Copied!

@startuml
'default
top to bottom direction
user1 --> (Usecase 1)
user2 --> (Usecase 2)

@enduml

Il est possible de changer pour aller plutôt de la droite vers la gauche avec la commande left to right direction. Le résultat est parfois meilleur dans ce cas.

🎉 Copied!

@startuml

left to right direction
user1 --> (Usecase 1)
user2 --> (Usecase 2)

@enduml

La commande Skinparam

Utilisez la commande skinparam pour changer la couleur et la mise en forme du texte du schéma.

Vous pouvez utiliser cette commande :

Vous pouvez aussi spécifier les polices et les couleurs pour les acteurs et cas d'utilisation avec des stéréotypes.

🎉 Copied!

@startuml
skinparam handwritten true

skinparam usecase {
BackgroundColor DarkSeaGreen
BorderColor DarkSlateGray

BackgroundColor<< Main >> YellowGreen
BorderColor<< Main >> YellowGreen

ArrowColor Olive
ActorBorderColor black
ActorFontName Courier

ActorBackgroundColor<< Human >> Gold
}

User << Human >>
:Main Database: as MySql << Application >>
(Start) << One Shot >>
(Use the application) as (Use) << Main >>

User -> (Start)
User --> (Use)

MySql --> (Use)

@enduml

Exemple complet

🎉 Copied!

@startuml
left to right direction
skinparam packageStyle rectangle
actor customer
actor clerk
rectangle checkout {
  customer -- (checkout)
  (checkout) .> (payment) : include
  (help) .> (checkout) : extends
  (checkout) -- clerk
}
@enduml

Business Use Case

Vous pouvez ajouter / pour créer un Business Use Case.

Business Use Case

🎉 Copied!

@startuml

(First usecase)/
(Another usecase)/ as (UC2)
usecase/ UC3
usecase/ (Last\nusecase) as UC4

@enduml

Acteur commercial

🎉 Copied!

@startuml

:First Actor:/
:Another\nactor:/ as Man2
actor/ Woman3
actor/ :Last actor: as Person1

@enduml

[Réf. QA-12179]

Modifier la couleur et le style des flèches (style en ligne)

Vous pouvez modifier la couleur ou le style des flèches individuelles en utilisant la notation suivante en ligne

  • #color;line.[bold|dashed|dotted];text:color

🎉 Copied!

@startuml
actor foo
foo --> (bar) : normal
foo --> (bar1) #line:red;line.bold;text:red  : red bold
foo --> (bar2) #green;line.dashed;text:green : green dashed 
foo --> (bar3) #blue;line.dotted;text:blue   : blue dotted
@enduml

[Réf. QA-3770 et QA-3816] [Voir une fonctionnalité similaire sur le diagramme de déploiement ou le diagramme de classes]

Modifier la couleur et le style d'un élément (style en ligne)

Vous pouvez modifier la couleur ou le style d'un élément individuel en utilisant la notation suivante
  • #[color|back:color];line:color;line.[bold|dashed|dotted];text:color

🎉 Copied!

@startuml
actor a
actor b #pink;line:red;line.bold;text:red
usecase c #palegreen;line:green;line.dashed;text:green
usecase d #aliceblue;line:blue;line.dotted;text:blue
@enduml

[Réf. QA-5340 et adapté de QA-6852]

Afficher les données JSON sur le diagramme Usecase

Exemple simple

🎉 Copied!

@startuml
allowmixing

actor     Actor
usecase   Usecase

json JSON {
   "fruit":"Apple",
   "size":"Large",
   "color": ["Red", "Green"]
}
@enduml

[Ref. QA-15481]

Pour un autre exemple, voir la json#2fyxla9p9ob6l3t3tjre[page JSON].


Privacy Policy      Advertise