Un cas d'utilisation ou use case
permet de décrire la capacité ou le service rendu par un système.
Le cas d'utilisation définit un but ou un objectif par rapport à un point de vue utilisateur externe (interacteur) du système.
Les cas d'utilisation peuvent aussi constituer la base d'un test réalisable au niveau du système.
Ainsi, de manière simpliste, un test d'acceptation du système peut correspondre au fait de tester tous les cas d'utilisation décrits.
Pour l'ingénieur système, la modélisation des cas d'utilisation constitue un moyen pratique de discuter des capacités avec les parties prenantes du système.
Les concepts et la modélisation des cas d'utilisation sont hérités d'UML.
Dans l'exemple ci-dessus, on retrouve, on retrouve différents liens entre les cas d'utilisation :
l'inclusion : il est nécessaire de faire mousser le lait pour faire des Macchiato, Cappuccino ou Latte
l'extension fournit une fonctionnalité facultative (dans le sens où elle n'est pas nécessaire pour atteindre le but du use case). Ici, le fait de faire de la vapeur d'eau pour faire mousser le lait permet aussi de faire du thé.
la généralisation : faire un café peut être précisé par des cas d'utilisation comme faire un expresso, faire un double expresso, etc. Toutes les étapes proposées dans le cas d'utilisation faire un café seront également valables pour les cas d'utilisation qui le précisent.
On retrouve également des liens avec les acteurs, extérieurs au système, qui peuvent être associés (simple trait) et qui peuvent eux également avoir des liens entre eux.