====== Diagrammes de cas d'utilisation ======
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.
===== Pour Modelio =====
Toutes les informations sont ici :
[[:modelio|MODELIO]]
===== Partie TD encadré 3h maximum =====
==== Identification des cas d'utilisation (45mn) ====
=== Je comprends (10 mn) ===
Extrait de http://www.omg.org/spec/UML/2.4.1/Superstructure/PDF/
{{ :2015_2016:s2:td:capture_d_e_cran_2015-12-26_a_20.45.58.png?direct&300 |}}
- Quels sont les acteurs?
- Quelles sont les relations entre les acteurs?
- A votre avis, la banque représente quel type d'acteur : acteur humain ou système externe?
- Est-ce à vous de mettre en oeuvre la banque? En quoi est-ce important pour vous (en tant qu'informaticien) de modéliser cet acteur?
- Quels sont les cas d'utilisation?
- Que peut faire un administrateur?
- Quels acteurs interviennent dans ces différents cas d'utilisation?
- Que visualise le cadre autour des cas d'utilisation?((Les limites du système, vous voyez par exemple que la banque ne fait pas partie du système à modéliser))
- Qu'exprime les cardinalités?
- A quoi sert un diagramme de cas d'utilisation ?
/*The purpose of use cases is to identify the required functionality of a system
*/
/* A use case is shown as an ellipse, either containing the name of the use case or with the name of the use case placed below the ellipse.
An optional stereotype keyword may be placed above the name and a list of properties included below the name. If a subject (or system boundary) is displayed, the use case ellipse is visually located inside the system
boundary rectangle. Note that this does not necessarily mean that the subject classifier owns the contained use cases, but
merely that the use case applies to that classifier. For example, the use cases shown in Figure 16.5 on page 608 apply to the “ATMsystem” classifier but are owned by various packages as shown in Figure 16.7.
*/
=== Je m'implique, J'apprends (35mn) ===
Nous prenons l'exemple d'une "galerie d'art virtuelle".
Nous identifions à présent les principaux cas d'utilisation. Pour des raisons de simplification, nous partons de l'énoncé suivant qui est une extraction d'un cahier des charges.
(1) Nous voulons informatiser une galerie d'art, par laquelle nous souhaitons vendre des oeuvres d'arts à des clients((Clients : Internautes **identifiés** par la galerie et sur lesquels nous disposons du nom, de l'adresse mail et de l'adresse postale.)).
Les paiements doivent être sécurisés en utilisant le système de paiement externe "chaimoinscheir".\\
(2) Les oeuvres((oeuvre: produit unique identifié exposé par la galerie.)) et les artistes((artiste: personne identifiée, auteur d'oeuvres. )) sont gérés par les administrateurs((administrateurs : Personne identifiée ayant les droits de modification et maintenance du site)) via des interfaces adaptées. \\
(3) Un internaute doit pouvoir s'inscrire sur le site pour devenir client. Deux clients différents ne peuvent pas avoir la même adresse email. \\
(4) Un internaute peut naviguer sur le site : retrouver un artiste par son nom, visualiser les oeuvres par artiste ou par catégorie((rubriques exposées par la galerie, correspondant en général à une technique caractérisant un artiste (peinture, sculpture…))). \\
(5) Les clients peuvent voter pour les oeuvres ou les artistes qu'ils préfèrent. \\
(6) Une fois par jour, un super-administrateur déclenche une opération de sauvegarde de la galerie.\\
(7) L'identification des clients fait partie du système de la galerie.\\
(8) Un client peut téléphoner à la secrétaire pour demander l'édition d'une facture consécutive à une vente passée.
L'énoncé donné décrit votre étude de cas. Vous considérerez cette description comme exhaustive.
- En analysant chacune des phrases de l'énoncé identifiez les acteurs.
- En analysant chacune des phrases de l'énoncé, déterminez les grands cas d'utilisation de la galerie d'art et les dessiner.
==== Fixer le vocabulaire (10mn) ====
Choisir le bon vocabulaire est assurément une étape difficile et essentielle en modélisation des systèmes.
Pour vous aider, vous devez fixer votre vocabulaire, c'est à dire choisir les termes utilisés, leur donner une définition dans le contexte de votre application et ne jamais utiliser des termes différents pour un même concept. Bien sûr il ne s'agit pas de définir tous les mots mais seulement ceux qui sont utiles.
Vous sélectionnez à présent les termes que vous jugez pertinents de préciser et vous les ajoutez à votre glossaire (un document annexe, vous pouvez le faire sur papier si vous le voulez).
==== Description textuelle (1h) ====
/* Pour ajouter la description textuelle dans les cas d'utilisation, clique droit sur la cas d'utilisation -> spécification -> puis remplir la partie HTML ou [[https://mbf-iut.i3s.unice.fr/doku.php?id=vp#saisir_un_flot_d_evenement_associe_a_un_cas_d_utilisation|voir ici comment faire]]
*/
[[https://mbf-iut.i3s.unice.fr/doku.php?id=modelio#annoter_vos_uc|Annoter vos UC sous Modelio]]
1) **Décrivez le scénario nominal (flot nominal ou basique aussi appelé)** correspondant au cas d'utilisation dans la partie description
//"Un internaute s'inscrit pour devenir client de la galerie d'art"//
2) **Décrivez les flots alternatifs** correspondant au cas d'utilisation
//"Un internaute s'inscrit pour devenir client de la galerie d'art"// lorsque les données saisies sont invalides ou que l'internaute est déjà inscrit.
3) 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).
/*
==== De la description aux diagrammes de séquences (30mn) ====
- Vous pouvez générer à partir des flots exprimés dans l'outil un diagramme de séquence, voir déroulement [[https://mbf-iut.i3s.unice.fr/doku.php?id=vp#synchroniser_avec_un_diagramme_de_sequence|ici]].
*/
===== Partie évaluation du TD (1h) =====
Pour des raisons évidentes d'équité, les intervenants en TD n'évaluent **que ce qui leur est montré en séance**.
* Aucun rendu ultérieur ne sera pris en compte.
* Les étudiants les plus rapides auront un bonus.
* Les erreurs constatées sont sanctionnées. On ne revient pas sur les erreurs constatées, donc il est conseillé de ne pas faire faire son devoir par l'enseignant!
* L'encadreur ne donne pas d'explications "longues" dans cette étape pour lui permettre de voir tous les rendus.
* La même étude de cas sera utilisée tout au long des TDs. Il est donc conseillé de toujours avoir un projet, le plus "juste" possible. L'encadreur ne peut que noter ce qu'il voit... s'il n'y a rien à voir, quelque soit l'excuse, il y a un 0.
[[2016_2017:s2:td:devoirs:tduc|Devoir sur les cas d'utilisation]]
===== Je sais répondre à =====
* Quels sont les grands cas d'utilisation d'une application ? Attention, je ne m'intéresse qu'aux parties qui constituent le système informatique. Les systèmes externes que je suis amené à utiliser seront représentés comme des acteurs externes. Je ne représente pas les use cases qu'ils supportent.
* Quels sont les acteurs d'un cas d'utilisation ? Quelles sont les limites de mon système? Les systèmes externes auxquels j'aurais besoin de me connecter sont des acteurs externes. Seuls les acteurs directement impliqués dans les cas d'utilisation sont pris en compte, les discussions extérieures à notre système ne sont pas modélisées. Je ne représente pas les interactions entre les acteurs qui ne passent pas par le système informatique que je modélise (se téléphoner, se parler, s'envoyer des mails etc.)
===== En savoir plus sur les diagrammes de cas d'utilisation =====
* Une bonne synthèse : http://knowhow.visual-paradigm.com/uml/10-use-case-diagram-tips/