Anayse et Conception 4. Cas d Utiisation et a phase de acquisition des besoins Petko Vatchev Université de Montréa Septembre 2003 2 Sommaire Cas d Utiisation? Structure d CdU Techniques UML Mise en œuvre Petko Vatchev Université de Montréa Septembre 2003 3 1
Scénarios (rappe) «Scénarios: des histoires qui expiquent une manière dont e système peut être utiisé.» Petko Vatchev Université de Montréa Septembre 2003 4 Cas d Utiisation (CdU) Dans AOO, es scénarios sont devenus cas d utiisation («use cases») Intérêts de a technique: Expression du comportement du système, ses actions et réactions, face aux diverses situations qui peuvent se produire Vue du point de vue des utiisateurs du système Détermination des besoins fonctionnes Description de a porté du système par rapport à son environnement Petko Vatchev Université de Montréa Septembre 2003 5 2
Les Origines Qui: Ivar Jacobson, théoricien du ogicie Suedois, Quand: dans es années 80, Où: ingénieur chez Ericsson, actueement avec Rationa (IBM) Contexte: a méthode OOSE (Object-Oriented Software Engineering) Nom d origine: Usage cases «Cas d utiisation: document narratif qui décrit a séquence d intéractions dans aquee un acteur utiise un système pour réaiser un processus.» Jacobson, 1992 Petko Vatchev Université de Montréa Septembre 2003 6 Les CdU à Ère du UML Qu est-ce que c est, es CdU? «Use case: Description of a set of sequences of actions that a system performs to yied an observabe resut of vaue to an actor.» UML User Guide, 1999 La raison d être des CdU? «to define a piece of behavior of a [system or subsystem or cass] without reveaing the interna structure of the [system]» UML Reference Manua, 1999 Petko Vatchev Université de Montréa Septembre 2003 7 3
et d après A. Cockburn Un CdU véhicue un contrat entre es intéressés d un système concernant son comportement. Le CdU décrit ce comportement sous diverses circonstances orsque e système répond à une requête de a part d un des intéressés, acteur principa. Ce dernier initie interaction avec e système afin d atteindre un objectif. Par sa réponse, e système tente égaement de protéger e intérêts des autres intéressés. L interaction peut emprunter des chemins différents (scénarios), en fonction des conditions particuières. Le CdU regroupe ensembe tous ces scénarios. Petko Vatchev Université de Montréa Septembre 2003 8 Objectifs Exprimer ce que e système fait (fonctions) sans spécifier a manière dont cea est fait (quoi et non comment). à travers es objectifs des acteurs. Capturer e comportement désiré du système. à travers es scénario et exceptions. Servir dans a vaidation de architecture et guider évoution du système. Servir de pivot pour a communication entre: es déveoppeurs, es utiisateurs, es experts du domaine, etc. Petko Vatchev Université de Montréa Septembre 2003 9 4
CdU et Besoins Un CdU décrit une partie perceptibe du travai (du système) et donc transcrit un ensembe des besoins fonctionnes du système. L ensembe de tous es CdU spécifie toutes es fonctionnaités du système et par à couvre es besoins fonctionnes. Cependant: es CdU ne couvrent pas es besoins non-fonctionnes, is peuvent néanmoins servir à découvrir ces besoins Petko Vatchev Université de Montréa Septembre 2003 10 Exempes Systèmes ogicies: SI de gestion d une Bibiothèque Universitaire: inscription, prêt d un ivre, retour d un ivre, payement amende L Site web d auctions (par ex., ebay) ouverture de compte cient, recherche d items par mots-cés, faire une mise pour un item, déposer un item pour un auction, vérifier état d un item Petko Vatchev Université de Montréa Septembre 2003 11 5
Sommaire Cas d Utiisation? Structure d CdU Techniques UML Mise en œuvre Petko Vatchev Université de Montréa Septembre 2003 12 Aspects-cés d un CdU Aspects importants: Portée : que est e système visé? Acteur principa : qui détient objectif du CdU? Niveau : comment est-ce que objectif se situe sur échee d abstraction? Parties constituantes de a description d un CdU: Acteurs : quequ un ou queque chose ayant un comportement Primaire: intéresse qui entame a séquence d intéractions Secondaires: es intéressés agissant en support et es systèmes ext. Tertiaires: es intéressés «cachés», ou «back-stage». Scénario de succès principa : e cas idéa, rien ne marche à travers Extensions : ce qui peut se passer différemment durant interaction Portée Niveau Préconditions, post-conditions, etc. Petko Vatchev Université de Montréa Septembre 2003 13 6
La Portée d un CdU I est primordia de fixer es contours du système auque un CdU se rapporte : Portée en anayse : es objectifs des acteurs que e système doit supporter. Portée en conception : es dispositifs, sous-systèmes, etc. incus. Trois niveaux de portée en conception: Niveau organisation: e comportement de organisation entière vu de extérieur (description des processus d affaire). Ex. interactions d un cient avec a compagnie d assurance auto. Niveau système: e comportement du système informatique Ex. interactions d un cient avec e SI (via un site web) de a compagnie. Niveau sous-système: Ex. interactions d un empoyé avec e composant d impression de poices d assurance. Petko Vatchev Université de Montréa Septembre 2003 14 Acteurs Un acteur: agent externe* ors de sa interaction avec e système un agent humain ou un système automatisé. externe au système. associé à un ou pusieurs CdU. * N.B. Dans des cas particuier, des acteurs internes (sous-systèmes) peuvent être considérés. utiisateurs dispositif matérie ext. autre système Petko Vatchev Université de Montréa Septembre 2003 15 7
Acteurs/Rôes Les acteurs sont caractérisés par es rôes qu is jouent dans es divers CdU Une personne peut jouer des rôes différents. Un rôe peut être rempi par différents personnes ou groupes (à des moments différents). Ex. Un empoyé de ebay peut jouer pusieurs rôes: vendeur, cient, etc. «preneurs de commandes» «cients» Petko Vatchev Université de Montréa Septembre 2003 16 Les Objectifs Divisibes L interaction entre acteur principa et e système (et es éventues acteurs secondaires) : est orientée vers a satisfaction de son objectif (détermine e CdU), d habitude, cet objectif se décompose en sous-objectifs qui dominent es étapes de interaction, un sous-objectif mène à une action particuière de acteur a réaisation de chacun des sous-objectifs mène à a réaisation de objectif goba. Ex. «retirer de argent au GAB» «s identifier» «taper son NIP» «appuyer sur une touche» Petko Vatchev Université de Montréa Septembre 2003 17 8
Scénarios: Suites d Objectifs Les objectif intermédiaires peuvent échouer Cea n empêche pas nécessairement objectif goba de se réaiser L acteur peut faire appe à des stratégies aternatives et des objectifs de rechange. Ex. Si e cient du SI du registrariat de Université a oubié son NIP, ceui-ci peut ui être fourni moyennant une petite interrogation visant à identifier. CdU: Pacer une commande s 1 s 2 s 4 s 5 s 6 s 7 s 8 s 9 s 10 s 11 S S S S S F F F F S S F Scénarios de succès Scénarios d échec Petko Vatchev Université de Montréa Septembre 2003 18 Les Niveaux des Objectifs Les objectifs derrière es CdU ne sont pas de même niveau d abstraction: certains peuvent demander une seue courte interaction, d autres des semaines, voire des mois et des années. Trois niveaux sont communément distingués: Objectif d utiisateur: e pus important «après avoir fait ça, je peux faire une pose» Ex. emprunter un ivre à a bibiothèque Sommaire: pusieurs objectifs d utiisateur reiés (cyce de vie) «après avoir fait ça, je peux tout oubier» Ex. ire un ivre sur A&C OO qui se trouve à a bibiothèque: I. emprunter à a bibiothèque, II. s endormir à-dessus, III. e rendre trois jours pus tard. Sous-fonction: des sous-objectifs d un objectif d utiisateur «après avoir fait ça, je ne suis toujours pas sorti de auberge» Ex. (cassique) s identifier auprès du SI du registrariat Petko Vatchev Université de Montréa Septembre 2003 19 9
Les Niveaux des Objectifs Les objectifs derrière es CdU ne sont pas de même niveau d abstraction: certains peuvent demander une seue courte interaction, d autres des semaines, voire des mois et des années. Trois niveaux sont communément distingués: Objectif d utiisateur: e pus important «après avoir fait ça, je peux faire une pose» Ex. emprunter un ivre à a bibiothèque Sommaire: pusieurs objectifs d utiisateur reiés (cyce de vie) «après avoir fait ça, je peux tout oubier» Ex. ire un ivre sur A&C OO qui se trouve à a bibiothèque: I. emprunter à a bibiothèque, II. s endormir à-dessus, III. e rendre trois jours pus tard. Sous-fonction: des sous-objectifs d un objectif d utiisateur «après avoir fait ça, je ne suis toujours pas sorti de auberge» Ex. (cassique) s identifier auprès du SI du registrariat Petko Vatchev Université de Montréa Septembre 2003 20 Passage entre Niveaux Principe de a décomposition: es sous-objectifs des objectifs à un niveau donné se situent au niveau au-dessous. Exception: SI Bibio, «emprunt» avec «inscription préaabe» Cependant, des nuances sont possibes dans a cassification Probème crucia: situer correctement es objectifs d utiisateur: Pourquoi? : a motivation d une action, monte Comment? : a réaisation d un objectif, descend P C Situation typique: «L empoyé d une compagnie est préposé au tééphone, i reçoit un appe de cient demandant X, se tourne vers son ordinateur pour exécuter G. Après avoir accompi a tâche, i termine appe. Le bon objectif e empoyé est G, aors que e cient a en tête un objectif sommaire.» Ex. G = «enregistrer un accident d auto», versus «se faire rembourser es dommages d un accident par assurance» pour e cient. Petko Vatchev Université de Montréa Septembre 2003 21 10
Scénarios = Séquences Un scénario corresponds à un enchaînement possibe entre sousobjectifs dans a poursuite d un objectif de pus haut niveau. Concrètement, i revêt a forme d une séquence d interactions entre acteurs et système (e métaphore du match de soccer): comme si es acteurs et e système se renvoyaient a ba (1 active) En généra, exprimé sous forme de texte (informe ou structuré). Description d un scénario : Condition d activation, Objectif, Séquence d étapes (actions/transactions), Condition de terminaison, Possibes extensions. Petko Vatchev Université de Montréa Septembre 2003 22 Action versus Transaction Une transaction est une action composite (d après I. Jacobson): 1. L acteur principa envoie requête/données au système, 2. Le système vaide es données/a requête, 3. Le système modifie son état interne, 4. Le système envoie e résutat en réponse. Les composantes de a transaction peuvent être déveoppées ou non, seon e niveau de détai désiré. Ex. version compacte: e cient effectue un versement version déveoppée: e cient demande un versement : e montant et es 2 comptes, e système vérifie a disponibiité de a somme dans e compte à débiter, i modifie es sodes des 2 comptes I indique e nouveau sode du compte débité Petko Vatchev Université de Montréa Septembre 2003 23 11
Exempes de Scénarios CdU «Emprunt de documents» Portée: SI de a Bibiothèque Acteur principa:??? Scénario de succès principa Niveau: Objectif d utiisateur 1. e ecteur arrive et passe sa carte à empoyé 2. empoyé choisit dans e menu principa a fonction prêt 3. i entre e code du ecteur dans e système 4. e ecteur est reconnu par e système, ses données personnees et ses droits d emprunts sont aors affichés 5. empoyé entre ensuite pour chaque document à prêter e code du document, e système ui affiche a date de retour en fonction du type de document, ensuite e document est marqué «en prêt» Petko Vatchev Université de Montréa Septembre 2003 24 Exempes (suite) CdU «Emprunt de documents» Portée: SI de a Bibiothèque Acteur principa:??? Scénario ivre «en réserve» Niveau: Objectif d utiisateur 1. e ecteur arrive et passe sa carte à empoyé 2. empoyé choisit dans e menu principa a fonction prêt 3. i entre e code du ecteur dans e système 4. e ecteur est reconnu par e système, ses données personnees et ses droits d emprunts sont aors affichés 5. empoyé entre ensuite pour chaque document à prêter e code du document, e système ui affiche e message «document en réserve» Petko Vatchev Université de Montréa Septembre 2003 25 12
Extensions Extensions = scénarios qui représentent des aternatives au scénario de succès principa. Les scénarios extensions ont en commun une partie commençante avec e scénario principa dont a dernière étape impique e pus souvent e test d une condition. À partir d un des issus particuiers de ce test, e scénario aternatif bifurque. Ex. SSP: retrait d argent au GAB, Extn: échec approvisionnement insuffisant Son fot d actions pourrait rejoindre pus oin e fot principa. Ex. SSP: modification commande «ordi pour es profs» (SI du DGTIC), Extn: récupération NIP via interrogation Extensions des extensions : un fot aternatif peut très bien avoir ses propres extensions. Petko Vatchev Université de Montréa Septembre 2003 26 Exempes (suite) CdU «Emprunt de documents» Portée: SI de a Bibiothèque Acteur principa:??? Scénario échec «non enregistré» Niveau: Objectif d utiisateur 1. e ecteur arrive et passe sa carte à empoyé 2. empoyé choisit dans e menu principa a fonction prêt 3. i entre e code du ecteur dans e système 4. e système affiche e message «ecteur non enregistré» et empoyé annue e prêt Petko Vatchev Université de Montréa Septembre 2003 27 13
Extensions (suite) CdU «Emprunt de documents» Scénario principa 1. e ecteur arrive et passe sa carte à empoyé 2. empoyé choisit dans e menu principa a fonction prêt 3. i entre e code du ecteur dans e système 4. e ecteur est reconnu par e système 5. empoyé entre chaque code de document, e système affiche a date de retour, ensuite e document est marqué «en prêt» Extensions 4a. ecteur non enregistré: 4a1. e système affiche «ecteur non enregistré» 4a2. empoyé annue e prêt 5a. document en réserve: 5a1. e système affiche «document en réserve» Petko Vatchev Université de Montréa Septembre 2003 28 Traiter es Extensions Quatre possibiités pour terminer un fot aternatif: L échec oca est totaement récupéré, e fot rejoint e SSP à partir de a prochaine étape. Ex. CdU «Soumission papier conférence», échec HTTP -> SendMai, Le système impose une bouce («une autre chance») sur a même étape: à a fin du fot exceptionne, e système revient au début de étape qui a échoué. Ex. CdU «Eprunt», échéc identification : «carte magnétique iisibe» L échec oca cause arrêt compet du CdU. Ex. échéc «ecteur non inscrit» L interaction aternative se termine par un chemin indépendant qui ne rejoint pus e SSP. Ex. CdU «Soumission papier conférence», échec papier ong -> poster, Petko Vatchev Université de Montréa Septembre 2003 29 14
Parties non Couvertes Des parties «exotiques» de a description d un CdU: Besoins spéciaux = besoins non-fonctionnes ou contraintes de conception (matérie E/S): écran tactie, choix de a angue de IU, etc. réponse d autorisation du retrait dans es 90 secondes. Variations de données ou de technoogie = choix entre pusieurs manières d accompir une tâche (comment?). CdU «Location voiture» Scénario principa 4. e cient paye par chèque en e signant et datant. Extensions Décisions de conception, mais souvent impossibe de es éviter! 4a. e cient paye par carte à puce en tapant e code secret au ecteur. 4b. e cient paye par carte à bande M en signant e reevé. Petko Vatchev Université de Montréa Septembre 2003 30 Degré de Formaité Seon étape du processus ogicie, e niveau de détai et de structuration dans a description d un CdU peuvent varier. Le angage peut égaement être pus ou moins restreint, p. ex., par a terminoogie imposée dans e gossaire ou toute autre document. Pusieurs degrés de formaité Cas-objectif: CdU réduit à son objectif, Bref: un seu paragraphe résumant e scénario principa, Informe («casua»): pusieurs paragraphes dans un stye narratif, décrivant e scénario principa et queques autres. Peinement déveoppé («fuy dressed»): très éaboré, avec des sections dédiées aux extensions, déveoppées en détai, aux pré-conditions et aux intéressés avec eurs intérêts. Petko Vatchev Université de Montréa Septembre 2003 31 15
CdU Bref CdU «Emprunt de documents» Le ecteur arrive et passe sa carte à empoyé qui choisit enregistrement d un prêt. Le ecteur est reconnu et son dossier est ouvert à écran. L empoyé saisi par a suite e code de chaque document à prêter. A chaque saisie, e système affiche a date de retour. Les documents empruntés sont marqués «en prêt». Petko Vatchev Université de Montréa Septembre 2003 32 CdU Informe CdU «Emprunt de documents» Scénario principa: Le ecteur arrive et passe sa carte à empoyé qui choisit enregistrement d un prêt. Le ecteur est reconnu et son dossier est ouvert à écran. L empoyé saisi par a suite e code de chaque document à prêter. A chaque saisie, e système affiche a date de retour. Les documents empruntés sont marqués «en prêt». Scénarios aternatifs: Si e ecteur n est pas reconnu par e système, aors enregistrement d un prêt est interrompu et e cas se termine. Si un document est en réserve, e système e signae et empoyé passe au document suivant, si aucun, aors i termine e cas. Petko Vatchev Université de Montréa Septembre 2003 33 16
Format («Tempate») «Tempate» = une combinaison de parties d un CdU et eur mise en page (surtout pour un cas peinement déveoppé). Durant e projet ogicie, es CdU évouent en gagnant de pus en pus en détai et en réaisme, mais eur tempate reste essentieement e même. I n y a pas de standard, chaque organisation sembe utiiser son propre tempate. Pas de «meieur» tempate, e choix d un approprié dépend de: a taie du projet, importance des CdU au sein du projet, e nombre des CdU par rapport aux ressources disponibes. etc. N.B. Voir Cockburn pour une iste très compète. Petko Vatchev Université de Montréa Septembre 2003 34 Degré d Éaboration Un autre critère de distinction entre es descriptions des CdU: Sur que aspect de interaction est-ce qu on met accent? Intensions de acteur = que est objectif de chaque étape? CdU essenties, très abstraits quant aux actions : Ex. «retrait GAB» : e cient s identifie Trait à anayse Intensions de acteur = que est objectif de chaque étape? CdU Rées, putôt concrets Ex. «retrait GAB» : e cient insère sa carte, tape son code Trait à a conception Pas de frontière, mais un continuum entre es deux extrêmes Observabe surtout au niveau de a description des scénarios. Petko Vatchev Université de Montréa Septembre 2003 35 17
Exempe CdU Retrait au Guichet Automatique Action Acteur Réponse Système Essentie 1. Le Cient s identifie 3. Etc. 2. Présente Options 4. Etc. Rée 1. Le Cient insère a carte 3. Entre e NIP 5. Etc. 2. Demande e NIP 4. Présente Options 6. Etc. Petko Vatchev Université de Montréa Septembre 2003 36 Sommaire Cas d Utiisation? Structure d CdU Techniques UML Mise en œuvre Petko Vatchev Université de Montréa Septembre 2003 37 18
Acteurs et CdU Acteur est représenté par une icône dans e diagramme Cas d utiisation est représenté par une eipse Diaogue entre acteur et e système Représente en généra un service rendu à acteur qui interagit avec (tâche exécutée par e système). Initié par un seu acteur, mais pusieurs acteurs peuvent interagir. Association entre acteurs et CdU Optionne: stéréotype << interacts >> Prêt << interacts >> Libraire Petko Vatchev Université de Montréa Septembre 2003 38 Diagramme de Contexte Modéise e contexte du système: Identifie es imites du système, Définit ce qui est à intérieur, Définit ce qui reste à extérieur. Modéise es besoins que e système doit satisfaire: Qu est-ce qu i doit faire, Indépendamment de sa manière de e faire. Qu est-ce qu i ne doit pas faire (impicite). Fait apparaître: Les principaux acteurs du modèe, Les cas d utiisation primaires. Petko Vatchev Université de Montréa Septembre 2003 39 19
Exempe: Bibiothèque <<entends>> Prêt de documents <<uses>> Identification ecteur <<uses>> Retour de documents <<uses>> Recherche documents Extension de prêts Libraire Lecteur Enregistrement ecteur Mise a jour Cataogue Petko Vatchev Université de Montréa Septembre 2003 40 Reations entre es CdU La reation d utiisation (uc1 <<incudes>> uc2) uc2 fait partie intégrante de uc1: cité comme étape dans un des scénarios, principa ou d extension; uc2 est donc connu par uc1. uc2 a été identifié comme étant un cas à part entière. e point d appe d uc2 est fixe dans e corps d uc1 Prêt de documents Permet de factoriser e comportement. Favorise a réutiisation de descriptions textuees. <<incudes>> <<incudes>> Identification ecteur Retour de documents MAIS: Peut imposer des décompositions orientées-fonctionnaité! <<incudes>> Extension de prêts Petko Vatchev Université de Montréa Septembre 2003 41 20
Reations (suite) La reation d extension (uc1 <<entends>> uc2) uc1 est une extension d uc2 uc2 ne «connaît» pas uc1 uc2 peut être interrompu pour appeer uc1 condition iée au point d appe (point d extension) dans un des scénarios d uc2. Cub Vidéo Permet de préserver intacte un comportement déjà détaié qui peut être interrompu par es appes à des extensions pas prévues initiaement. Favorise intégrité des CdU: évite de rajouter une nouvee extension. Prêt de fims <<extends>> Vérification identité abonné Petko Vatchev Université de Montréa Septembre 2003 42 Cas Étendu (exempe) CdU «Location de fims» Scénario principa 1. abonné arrive et donne à empoyé un ensembe de fims à ouer 2. empoyé ui demande sa carte et abonné a ui passe 3. empoyé it e code de abonné au crayon optique 4. e système ouvre e dossier personne de abonné 5. empoyé choisit a fonction nouvee ocation 6. e système confirme e choix et affiche 7. empoyé i it e code de chaque fim au crayon optique, e système affiche a date de retour, ensuite e fim est marqué «oué» Extensions 6a. nouvee ocation impossibe, existent anciennes non-retournées: Petko Vatchev Université de Montréa Septembre 2003 43 21
Cas Extension (exempe) CdU «Vérification identité abonné» Condition de décenchement: dans «Location», igne 2, carte indisponibe Scénario principa 1. empoyé demande à abonné ses données personnees et es obtient 2. empoyé entre es données dans e système 3. e système ouvre e dossier personne de abonné 4. empoyé questionne abonné et confirme son identité Extensions 5a. identité abonné non confirmée: Petko Vatchev Université de Montréa Septembre 2003 44 Étendre ou Incure Étant donné deux cas uc1 et uc2 dont uc2 est une extension de uc1: est-ce mieux es ier avec un ien d extension ou d incusion? Distinction déicate, souvent e choix n est pas unique: dépend de a voonté de ne pas modifier uc1. Des ignes directrices: si e décenchement d uc2 se fait sur une condition qui est à a charge du cas uc1, aors utiiser une incusion. si e décenchement d uc2 se fait sur une condition dont i est responsabe, aors utiiser une extension. Ex. Te que, «Location» ne s occupe pas à savoir si abonné a sa carte sur ui, c est à «Vérification» de e faire, c est donc une extension. Petko Vatchev Université de Montréa Septembre 2003 45 22
CdU, a Suite Les CdU décrivent es interactions acteurs - système: acteur génère un événement externe interprété comme une requête, e système exécute une opération en réponse Ce patron comportementa est transcrit sous forme d un diagramme de séquence particuier, e DS système: correspond à un scénario, démontre es événements externes générés, eur enchaînement, es opérations en réponse. considère e système comme une «boîte noire» Petko Vatchev Université de Montréa Septembre 2003 46 DSS (exempe) Scénario Commande produits 1. Le cient s identifie. 2. Le système affiche es options. 3. Le cient choisi commande. 4. Le système affiche es produits dsiponibes. :Cient ogin () afficher_menu () choisir_option_commande () afficher_produits_disponibes() SI-Fournisseur.com 5. Le cient choisi un ensembe de produits. 6.Après chaque choix, e système affiche état de sa commande. 7. Le cient demande e prix tota. 8. [i:=1..n] choisir_produit (code_produit) afficher_état_commande () demander_cacu_prix_tota () afficher_tota() effectuer_adresse () confirmer_commande_compète () Petko Vatchev Université de Montréa Septembre 2003 47 23