====== TD2 - Diagrammes de cas d'utilisation - Relations entre cas d'utilisation ======
==== Relations entre cas d'utilisation (30 mn) ====
=== Je comprends ===
Les figures suivantes sont extraites de la norme : https://www.omg.org/spec/UML
{{ :2018_2019:s2:td:capture_d_e_cran_2018-12-26_a_17.31.06.png?direct&500 |}}
- Quelle relation y-a-t-il entre "Perform ATM Transaction" et "online Help" ? Est-ce que demander de l'aide doit être fait à chaque fois?
- Qu'est-ce qui est obligatoire en cas de retrait?
- Faire un dépôt ou un retrait c'est une sorte de quoi?
- S'identifier est-ce obligatoire en cas de dépôt?
{{ :2015_2016:s2:td:ucmex2.gif?direct&500 |http://www.upedu.org/process/gdlines/md_ucmod.htm}}
- Quelle relation y-a-t-il entre ''Place Order'' et ''Phone Order''? Est-ce que tout passage de commande doit se faire par téléphone? Est-ce une extension d'un passage de commande?
- Est-ce qu'une demande de catalogue doit toujours être réalisée lorsque l'on passe une commande? Ou bien est-ce une possibilité mais elle n'est pas une obligation?
- Est-ce que la saisie des informations du client doit toujours être réalisée lorsque l'on passe une commande? Ou bien est-ce une possibilité mais elle n'est pas une obligation?
=== Je m'implique, J'apprends ===
Vous prendrez en compte les spécifications suivantes, si vous ne l'avez pas déjà fait :
- Pour acheter ou voter, un client doit s'être authentifié;
- La visualisation des oeuvres peut consister en une navigation "classique" dans les oeuvres, une navigation dans un espace virtuel en 3D où les oeuvres sont présentées par thème, un catalogue "virtuel", ou des options de recherche avancées.
- Un super administrateur est un administrateur.
- Lors de la visualisation des oeuvres, il est possible de voter.
- Avant de valider sa commande un client peut consulter la popularité des oeuvres dans son panier.
- Compléter votre diagramme de cas d'utilisation pour expliciter les relations entre cas d'utilisation.
==== Associer une interface à un cas d'utilisation (10 mn) (Facultatif) ====
Reprenez votre cas d'utilisation sur “Un internaute s'inscrit pour devenir client de la galerie d'art” et dessiner une interface graphique qui correspond.
Pour dessiner cette interface, vous pouvez utiliser,
* à plusieurs sur le même diagramme : https://www.draw.io/
* sélectionner //créer un nouveau diagramme//
* layout et par exemple Bootstrap
* Puis sélectionner les composants adaptés à votre cas.
* https://ninjamock.com/
Si on réécrit : Un internaute qui s'inscrit est invité à voter sur les oeuvres, est-ce que cela modifie votre interface? votre diagramme de cas d'utilisation ?
==== Description textuelle (10mn) ====
Décrivez le cas d'utilisation "**acheter des oeuvres**" :
* Précisez les pré-conditions, post-conditions et les propriétés non-fonctionnelles (par exemple, la sécurité est importante)
* Sous ''description'', saisir:
* Flot Nominal (Flot/scenario de base qui correspond au cas où tout fonctionne bien)
* Flots alternatifs (Vous vous limiterez à un cas).
* Flots d'erreur (Vous vous limiterez à un cas).
Pour décrire le cas d'utilisation placez-vous dans la partie propriété du cas d'utilisation.
Aidez vous du [[https://lms.univ-cotedazur.fr/pluginfile.php/239727/mod_resource/content/1/2-UML-UC%20-2020%20.pdf|cours]] à partir du slide 43
/* ==== Organisations des cas d'utilisation (10mn) ====
- Regrouper vos cas d'utilisation en vous basant sur un découpage dirigé par les acteurs principaux et en utilisant les packages, comme expliqué [[http://www.visual-paradigm.com/support/documents/vpuserguide/94/2575/6362_creatingusec.html|ici]] sous //Structuring use cases with package//.
*/
/* Choisissez les cas d'utilisation que vous considérez comme prioritaires : pour leur importance, pour le risque associé, ... [[https://mbf-iut.i3s.unice.fr/doku.php?id=vpassocier_un_niveau_a_cas_d_utilisation|comment? en saisissant le "niveau".]]
http://www.visual-paradigm.com/tutorials/packagediagram.jsp
*/
===== Partie Etude Fil Rouge(1h) =====
[[2019_2020:s2:etudefilrouge:uc2|Étude fil rouge sur les relations entre cas d'utilisation]]
===== Je sais répondre à =====
* Les seules relations acceptées entre les cas d'utilisation sont : 'generalization", "extend", "include"
* Je sais distinguer les différentes relations entre cas d'utilisation. Je ne les confonds pas. Je sais que les conséquences d'une confusion induisent des modifications des codes et en conséquence, c'est une erreur.