Avant tout développement, il convient de répondre à la question :
“A quoi va servir le logiciel ?”
sous peine de fournir des effeorts considérables en vain.
En UML, on établit des Diagrammes de Cas d’Utilisation pour répondre à cette question.
Principaux éléments :
Un acteur est une entité extérieure au système modélisé, et qui interagit directement avec lui.
En plus des utilisateurs, les acteurs peuvent être :
Pour identifier les acteurs, on se fonde sur les frontières du système.
Un acteur correspond à un rôle, pas à une personne physique :
Exemples :
Clients
du point de vue d’un distributeur automatiqueUn cas d’utilisation est un service rendu à un acteur : c’est une fontionnalité de son point de vue.
Les acteurs demandant des services aux systèmes, ils sont le plus souvent à l’initiative des échanges avec le système :
Lorsqu’ils sont sollicités par le système (dans le cas de serveurs externes par exemple), ils sont dits acteurs secondaires.
On représente une association entre un acteur et un cas d’utilisation par une ligne pleine.
Un acteur est souvent associé à plusieurs cas d’utilisation
Il n’y a qu’un seul type de relation possible entre acteurs : la relation de généralisation.
Il y a généralisation entre un cas A
et un cas B
lorsqu’on peut dire : A
est une sorte de B
. Exemple :
Les flèches en pointillés dénotent en fait une relation de dépendance, et les mentions includes et extends sont des stéréotypes et à ce titre placés entre guillemets.
Cette relation de généralisation/spécialisation est présente dans la plupart des diagrammes UML et se traduit par le concept d’héritage dans les langages de programmation orientés objet.
Cet héritage signifie que les éléments spécifiques héritent de tout ce qui caractérise l’élément général : - Les associations avec des acteurs - Les relations de dépendance - Les héritages déjà existant, dans lesquel l’élément général jour le rôle d’élément plus spécifique
Les relations d’inclusion et d’extension permettent d’isoler un service réutilisable comme partie de plusieurs autres cas d’utilisation :
Un cas d’utilisation ne doit jamais se réduire à une seule action : il doit occasionner des traitements d’une complexité minimale.
Toutefois, il peut arriver qu’un cas d’utilisation recouvre un ensemble très important d’achanges et de traitements. Dans ce cas, on peut utiliser les relations d’inclusion et d’extension.
Attention : ne jamais décomposer en première analyse, mais lorsqu’on a suffisamment avancé dans la conception ou le codage pour être certain que la décomposition est utile.
Un nom ne suffit pas à comprendre le détail de ce que recouvre un cas d’utilisation.
Il est donc nécessaire d’adjoindre à chaque cas d’utilisation une description détaillée. Cette description est parfois textuelle et composée de plusieurs rubriques dont les plus importantes sont :
Le scénario nominal : enchaînement d’actions typiques dans le cas où les choses se passent comme prévu.
Les enchaînements alternatifs : enchaînements dans des cas particuliers.