====== Etude Fil rouge : Cohérence entre Diagrammes de cas d'utilisation, de séquences et Diagrammes de classes ======
===== Bilan à faire absolument, quand vous êtes prêt =====
- Un diagramme de séquence est toujours associé à un UNIQUE cas d'utilisation.
- Identifier le cas d'utilisation associé à vos derniers diagrammes de séquence.
- A un cas d'utilisation correspondent des diagrammes de séquence sinon la granularité est trop fine.
- Vérifiez qu'à chaque cas d'utilisation, un diagramme de séquences de plus de 3 interactions pourrait bien être défini.
- Imaginez (sans la dessiner forcément) l'interface graphique associée aux cas d'utilisation qui impliquent un acteur humain : est-elle un simple bouton dans une autre interface, dans ce cas ce n'est probablement pas un cas d'utilisation.
- A chaque ligne de vie d'un diagramme de séquence à l'exclusion du système et des acteurs correspond une classe.
- Est-ce bien le cas dans vos diagrammes ?
- Un acteur n'est représenté par une classe que s'il est nécessaire de mémoriser des informations le concernant.
- Est-ce bien le cas dans vos diagrammes de classes ?
- A chaque échange avec des objets qui ne sont pas le système correspond une méthode portée par l'objet qui reçoit le message.
- Est-ce bien le cas dans vos diagrammes de classes ?
- Pour que deux objets échangent des messages, ils doivent se connaitre soit par des passages de paramètres, soit par des associations entre eux.
- Est-ce bien le cas dans vos diagrammes?
- Il est possible que dans la description qui vous a été donnée pour les classes, il y est de nouveaux cas d'utilisation.
- Avez-vous bien vérifié que vos diagrammes sont cohérents ?
N'hésitez pas à reprendre cette feuille de route dans la suite des TDs.
==== Imaginez une interface graphique pour vérifier la cohérence des scénarios ====
{{fa>arrow-circle-right?24}} Dessiner l'interface graphique que vous imaginez pour la saisie d'un message d'anniversaire en vous conformant à votre diagramme de séquence. N'hésitez pas à le corriger.
Attention vous ne recherchez pas du tout à ce stade, les couleurs, le design mais UNIQUEMENT le côté fonctionnel.
Même avec un client, il ne faut pas mettre de couleurs etc, sinon il vous parlera de la couleur en manquant les aspects fonctionnels gênant.
Pour dessiner cette interface, vous pouvez soit le faire sur une feuille de papier, vous intégrerez une photo au rendu final, soit utiliser un outil à plusieurs sur le même diagramme :
* https://www.draw.io/,
- sélectionner créer un nouveau diagramme
- basic, blank diagram et créer
- puis sélectionner les composants adaptés à votre cas. par exemple sous Bootstrap
* Une autre possibilité d'outil : https://ninjamock.com/
==== Un exemple (Test) pour vérifier que tout y est ====
//Pénélope sélectionne parmi les anniversaires qui lui sont proposés pour les 15 jours à venir (il y en a 4, ordonnés dans l'ordre chronologique des anniversaires : Hercule, Geek00, D.D., Yvette), celui de Hercule. \\
Elle écrit : "Bon anniversaire ! "\\
Le système lui répond : Votre message pour l'anniversaire de Hercule a bien été pris en compte.\\
Voulez vous continuer ou revenir au début?//
{{fa>arrow-circle-right?24}} Vérifiez que votre diagramme de séquence est correct, que votre diagramme de classe vous permet bien de représenter toutes les informations utilisées dans cet exemple?
//Pénélope sélectionne parmi les anniversaires qui lui sont proposés pour les 15 jours à venir (il y en a 4, ordonnés dans l'ordre chronologique des anniversaires : Geek00, D.D., Yvette), celui de Geek00, celui de Hercule n'est plus présent puisqu'elle lui a déjà écrit un message. \\
Elle écrit : " Death Stranding, c'est pour ton anniv! "\\
Le système lui répond : Votre message contient des termes inappropriés. Veuillez recommencer. //