Accueil
 Sommaire
 1  Objectifs de ce cours de modélisation orientée objet
 2  Généralités sur la modélisation orienté objet et sur UML
 3  Analyse, vues cas d'utilisation et processus
 3.1  Modèle de l'analyse
 3.2  Diagrammes de cas d'utilisation
 3.2.1  Introduction
 3.2.2  Acteur
 3.2.3  Relation de généralisation spécialisation entre acteurs
 3.2.4  Cas d'utilisation, lien de communication et système
 3.2.5  Autres relations entre cas d'utilisation
 3.2.6  Exemple de diagramme de cas d'utilisation
 3.2.7  Éléments de méthodologie
 3.3  Diagrammes d'activité
 QCM
 4  Analyse et conception, aspects statiques de la vue logique
 5  Analyse et conception, aspects dynamiques de la vue logique
 6  Conception, aspects langage et technique
 7  Conception, vues développement et physique
 8  Conclusion
 9  Bibliographie

 Contacts

W3C validator

Département INF  
 Conception et programmation orientées objet


3.2.5 Autres relations entre cas d’utilisation
  • «include» = réutilisation complète sans changement
  • Généralisation spécialisation ou héritage = spécialisation de certaines actions du cas d’utilisation d’origine
  • «extend»8 = ajout de fonctionnalité facultative

Figures/notation_relations_cas_utilisation

    précédent     suivant 


Les relations entre cas d’utilisation ont pour but de décomposer le système en fonctionnalités à granularité plus fine, suivant ainsi l’adage « diviser pour régner ». Il existe trois types de décompositions ou relations entre cas d’utilisation, les deux principales étant l’inclusion et l’héritage, la troisième (l’extension) étant d’utilisation mal aisée et déconseillée9.

La relation la plus simple à comprendre entre deux cas d’utilisation est l’inclusion notée par une dépendance stéréotypée « «include» ». L’inclusion exprime le fait qu’un cas d’utilisation comprend une séquence d’actions consécutives qu’il est possible de factoriser avec d’autres cas d’utilisation. Dans notre étude de cas Studs, la vérification des droits est similaire, à quelques paramètres près, et peut être factorisée pour la création et la participation à un scrutin. Lorsque le système modélisé atteint une certaine taille, il est important de montrer les relations d’inclusion qui définissent alors des parties du système réutilisables par d’autres parties.

La relation de généralisation spécialisation ou héritage est utile pour montrer qu’un cas d’utilisation est un type spécial d’un autre : le cas d’utilisation le plus spécialisé diffère quelque peu de l’original. Le premier spécialise certaines étapes de la séquence d’actions du second en les remplaçant par des « versions » plus spécialisées. Ainsi, toutes les étapes du cas d’utilisation original doivent être exécutées, certaines étant remplacées par des « versions » plus spécialisées. Dans notre étude de cas, nous pouvons imaginer que le client demande de concevoir l’authentification comme une « brique » générique spécialisable selon les protocoles existants. Par exemple, nous spécialisons le cas d’utilisation « vérifier droits » en utilisant la méthode M1 et créons le nouveau cas d’utilisation « authentification M1 ».

La relation d’extension entre cas d’utilisation est très controversée. Les concepteurs du langage UML ont voulu montrer qu’un cas d’utilisation peut réutiliser un cas d’utilisation complet, de manière similaire à l’inclusion, mais que cette réutilisation est optionnelle et dépend des conditions d’exécution. Dans l’exemple de la figure de cette diapositive, l’authentification par la méthode M1 peut être complétée de manière facultative par l’enregistrement de toutes les tentatives, y compris celles qui ont été infructueuses, dans le but d’auditer a posteriori le système ou de lancer des alertes sécurité en cas d’attaques du système lorsque des suites de tentatives infructueuses proviennent d’un même domaine d’adresse IP (attaque dite de déni de service).

D. Conan, C. Taconet, C. Bac, Télécom SudParis, CSC 4002, Octobre 2014

8.Sémantique très controversée, donc évitez d’utiliser «extend»

9.Nous la présentons autant pour complétude que pour la déconseiller.