====== Diagrammes de cas d'utilisation avancés ======
Les temps sont donnés à titre indicatif.
Par contre, nous passons à la partie évaluation de chaque TD au bout de 3h maximum même si la phase précédente n'est pas terminée.
===== Partie TD encadré 3h maximum =====
==== I. Des cas d'utilisation à la préparation aux tests de validation (40mn) ====
=== Je comprends (10mn) ===
Pour mieux comprendre un projet, mieux cerner les attentes de l'utilisateur et décider des tests qui devront être réalisés pour montrer que le projet fonctionne, il est important de s'intéresser aux "données" intervenant dans les cas d'utilisation.
Il s'agit donc d'utiliser les flots d'évènements précédemment décrits pour les compléter avec des données de tests.
Pour mieux comprendre, regarder le [[http://www.visual-paradigm.com/tutorials/testingprocedure.jsp|tutoriel]] à partir du point 7.
=== Je m'implique, J'apprends (30 mn) ===
- Associer à chaque étape du scénario "nominal" de la semaine dernière, les données correspondantes. Assurez-vous que votre client (votre enseignant) est d'accord sur les données que vous proposez. Ces exemples de données vous serviront (i) à identifier les types de données manipulées et (ii) à la fin du projet à "valider" les cas d'utilisation.
- Associer à chaque étape des scénarii "alternatifs" de la semaine dernière, les données correspondantes.
==== II. Relations entre cas d'utilisation (30 mn) ====
=== Je comprends ===
{{ :2015_2016:s2:td:ucmex2.gif?direct&300 |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?
{{ :2015_2016:s2:td:sample_use_case_diagram_19967.png?direct&300 |http://www.visual-paradigm.com/support/documents/vpuserguide/94/2575/84257_usecasediagr.html}}
- Vérifiez que vous savez bien lire ce diagramme aussi.
=== 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é;
- Un internaute qui désire voter est invité à s'inscrire sur le site;
- 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èmes, un catalogue "virtuel", ou des options de recherche avancées.
- Un super administrateur est un administrateur.
- 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.
Pour compléter un cas d'utilisation vous pouvez créer un autre diagramme par exemple pour la visualisation : ''clique droit'' sur le cas d'utilisation //visualiser//, puis ''sous-diagramme'', puis ''cas d'utilisation''. Vous pouvez alors prendre le cas d'utilisation dans la barre de gauche et le déposer dans votre nouveau diagramme et l'enrichir.
==== III. Associer une interface à un cas d'utilisation (30 mn) ====
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, vérifier que vous pouvez bien jouer vos flots d'évènements avec les données prévues.
Pour cela vous pouvez vous aider du tutoriel [[
https://mbf-iut.i3s.unice.fr/doku.php?id=vp#s_aider_et_preparer_des_maquettes_basse_fidelite|ici]]
==== 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
*/
===== Je sais répondre à =====
* Les tests de validation commencent à être préparés dès la détermination des cas d'utilisation. Ils permettent de mettre en relief, les bases des scénarios de tests, les limites, les données manipulées dans le système.
* 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.
===== Partie évaluation du TD (1h) =====
[[2015_2016:s2:td:devoirs:tducavance|Devoir sur les cas d'utilisation avancés à faire seul en séance]]