33
megaplanet UML : Diagrammes de Cas d‘Utilisation UML : Diagrammes de Cas d‘Utilisation Problèmes récurrents Problèmes récurrents Problème des cas d'utilisation orientés-solution concrète Problème des cas d'utilisation orientés-solution concrète Problème but vs. communication et problème des intermédiaires Problème but vs. communication et problème des intermédiaires Problème des cas d'utilisation partagés Problème des cas d'utilisation partagés Problème des cas d'utilisation collaboratifs Problème des cas d'utilisation collaboratifs Problème de la granularité Problème de la granularité CasU1 CasU4 CasU5 CasU2 CasU3 A1 A2 S A3

UML : Diagrammes de cas d'utilisation -- Problemes recurrents -- 20

Embed Size (px)

Citation preview

megaplanet

UML : Diagrammes de Cas d‘UtilisationUML : Diagrammes de Cas d‘Utilisation

Problèmes récurrentsProblèmes récurrents

Problème des cas d'utilisation orientés-solution concrèteProblème des cas d'utilisation orientés-solution concrète

Problème but vs. communication et problème des intermédiairesProblème but vs. communication et problème des intermédiaires

Problème des cas d'utilisation partagésProblème des cas d'utilisation partagés

Problème des cas d'utilisation collaboratifsProblème des cas d'utilisation collaboratifs

Problème de la granularitéProblème de la granularitéCasU1

CasU4

CasU5

CasU2

CasU3

A1

A2

S A3

megaplanet 2

Problèmes récurrentsProblèmes récurrents� Les problèmes soulevés dans cette partie correspondent à des questions Les problèmes soulevés dans cette partie correspondent à des questions

récurrentes en pratique.récurrentes en pratique.

� Problèmes éventuellement sans réponse dans la normeProblèmes éventuellement sans réponse dans la norme

� Interprétations et solutions parfois différentes dans les livresInterprétations et solutions parfois différentes dans les livres

� Problèmes récurrents souvent implicites Problèmes récurrents souvent implicites

=> Chercher quelles conventions existent dans le contexte de travail=> Chercher quelles conventions existent dans le contexte de travailou se mettre d'accord sur des conventions lorsque le problème se poseou se mettre d'accord sur des conventions lorsque le problème se pose

megaplanet

Cas d'utilisation "essentiels"Cas d'utilisation "essentiels"

megaplanet 4

Problème des cas d'utilisation Problème des cas d'utilisation orientés-solutionorientés-solution

DistributeurDeBillets

ClientRetirerDeLArgent

ConsulterSonCompte

TechnicienRetirerLes

CartesAvalé es

� Décrire les buts et les besoins des acteurs, les interactionsDécrire les buts et les besoins des acteurs, les interactionsmais mais pas l'interface (concrète)pas l'interface (concrète)

� Le POURQUOI, POUR QUI, pas le COMMENTLe POURQUOI, POUR QUI, pas le COMMENT

Se concentrer Se concentrer sur l'essentielsur l'essentiel

=> => cas d'utilisation "essentiels"cas d'utilisation "essentiels"

megaplanet 5

Cas d'Utilisation "Essentiels"Cas d'Utilisation "Essentiels"

� "Essential uses cases""Essential uses cases"� Ne pas décrire l'interfaceNe pas décrire l'interface concrèteconcrète� Décrire Décrire

� les objectifs et intentions de l'acteurles objectifs et intentions de l'acteur� Décrire les responsabilités du systèmeDécrire les responsabilités du système� Les "interactions abstraites"Les "interactions abstraites"

RetirerDeLArgent

AuDistributeur

- le client insère sa carte bancaire dans le distributeur- le système demande le code pour l  ’identifier- le client tape le montant du retrait sur le clavier- le système vérifie qu  ’il y a suffisamment d  ’argent- le système affiche un message de confirmation

megaplanet 6

Réécriture dans un style essentielRéécriture dans un style essentiel

RetirerDeLArgent

AuDistributeur

- le client insère sa carte bancaire dans le distributeur- le système demande le code pour l  ’identifier- le client tape le montant du retrait sur le clavier- le système vérifie qu’il y a suffisamment d  ’argent- le système affiche un message de confirmation...

RetirerDeLArgent

AuDistributeur

- le client s'identifie- le système vérifie l'identification- le client détermine le montant du retrait- le système vérifie qu  ’il y a suffisamment d  ’argent

Extraction de l'essentielExtraction de l'essentiel

megaplanet 7

Se concentrer sur l'essentielSe concentrer sur l'essentiel

� Eviter les décisions trop rapidesEviter les décisions trop rapides

� Séparation des métiersSéparation des métiers� analyse des besoinsanalyse des besoins

� conception des interfaces conception des interfaces

personne-systèmepersonne-système

� modèle de tâches ou autre modèle de tâches ou autre (pas dans UML)(pas dans UML)

� modèle de cas d'utilisation modèle de cas d'utilisation (UML)(UML)

megaplanet

Cas d'utilisation "but" vs.Cas d'utilisation "but" vs.Cas d'utilisation "interaction"Cas d'utilisation "interaction"

megaplanet 9

Problème des intermédiaires (1)Problème des intermédiaires (1)

� Représentation des intermédiaires Représentation des intermédiaires entre le système et l' intéressé ?entre le système et l' intéressé ?

� Différents points de vueDifférents points de vue

Guichetier

RetirerDeLArgentAvecUnChé que

Client

On insiste sur le lien de On insiste sur le lien de communication, l'échange de communication, l'échange de messages et l'interfacemessages et l'interface

ClientClient RetirerDeLArgentAvecUnChé que

On insiste sur les objectifs On insiste sur les objectifs et on masque complètement et on masque complètement les aspects liés à l'interfaceles aspects liés à l'interface

megaplanet 10

Problème des intermédiaires (2)Problème des intermédiaires (2)

Client ConsulterSonCompte

ConsulterSonCompte

Portable<<actor>>

ClientDUnClien

t

ClientConsulter

SonCompteViaUnPortable

ClientViaUnPortabl

e

ConsulterSonCompte

megaplanet 11

Ne pas confondre les systèmes...Ne pas confondre les systèmes...

ConsulterSonCompte

Portable<<actor>>

DUnClient

CGPC<<actor>>

CGPEW

ConsulterSonCompteClient

CGPC

CGP

ConsulterSonCompteClient

Projet: développer le système Projet: développer le système

centralisé accessible à partircentralisé accessible à partird'un portabled'un portable

Projet: développer le système Projet: développer le système embarqué dans un portable pour embarqué dans un portable pour accéder au système centraliséaccéder au système centralisé

Projet: développer le système Projet: développer le système global global

Projet: développer le système Projet: développer le système centralisé accessible à partir centralisé accessible à partir du système embarqué CGPEWdu système embarqué CGPEW

ConsulterSonCompte

CGPEW<<actor>>

CGPC

megaplanet 12

Une notation peu informativeUne notation peu informative

Client

Systè meBancaire

Guichetier

ConsulterUnCompte

L'association "communique" est peu informative :L'association "communique" est peu informative :qui réalise le cas d'utilisation ? qui collabore à son déroulement ? qui réalise le cas d'utilisation ? qui collabore à son déroulement ? quels acteurs peuvent participer à un même scénario simultanément ?quels acteurs peuvent participer à un même scénario simultanément ?

Pas de notation standard pour exprimer les réponsesPas de notation standard pour exprimer les réponses

megaplanet

Cas d'utilisation partagés vs. Cas d'utilisation partagés vs. Cas d'utilisation collaboratifs.Cas d'utilisation collaboratifs.

megaplanet 14

Une notation mais deux Une notation mais deux interprétations interprétations

Client

Systè meBancaire

ConsulterUnCompte

(2) CAS D'UTILISATION "COLLABORATIF"(2) CAS D'UTILISATION "COLLABORATIF"

Deux acteurs collaborent à la réalisation Deux acteurs collaborent à la réalisation d'un objectif. Le système intéragit avec les d'un objectif. Le système intéragit avec les deux acteurs.deux acteurs.

(1) CAS D'UTILISATION "PARTAGE"(1) CAS D'UTILISATION "PARTAGE"

Deux acteurs peuvent réaliser le cas Deux acteurs peuvent réaliser le cas d'utilisation mais pour répondre à d'utilisation mais pour répondre à des objectifs qui leur son propredes objectifs qui leur son propre

ClientGuichetie

r

ConsulterUnCompte

megaplanet 15

Problème des cas d'utilisation Problème des cas d'utilisation collaboratifscollaboratifs

Guichetier

ActeurActeur " "primaireprimaire" " • utilise le système comme outil utilise le système comme outil

pour réaliser son butpour réaliser son but• initie généralement la initie généralement la

communicationcommunication

Systè meBancaire

ConsulterUnCompte

Acteur primaire

Acteur auxiliaire

Acteur(s) "auxiliaire(s)" Acteur(s) "auxiliaire(s)" • interviennent suite à interviennent suite à

l'intervention de l'acteur l'intervention de l'acteur primaireprimaire

• offrent généralement leurs offrent généralement leurs services au systèmeservices au système

megaplanet 16

Différents styles dans la pratiqueDifférents styles dans la pratique

� STYLE "primaire":STYLE "primaire": Ne représenter que les acteurs primaires dans les diagrammesNe représenter que les acteurs primaires dans les diagrammes

� STYLE "décoré":STYLE "décoré":Utiliser une décoration particulière (e.g. auxiliaire ou initiator)Utiliser une décoration particulière (e.g. auxiliaire ou initiator)

� STYLE "gauche/droite":STYLE "gauche/droite":Positionner les acteurs primaires à gauche, secondaires à droitePositionner les acteurs primaires à gauche, secondaires à droite

� STYLE "fleché":STYLE "fleché":Utiliser une flêche pour indiquer l'acteur primaire (a éviter)Utiliser une flêche pour indiquer l'acteur primaire (a éviter)

megaplanet 17

Style "primaire"Style "primaire"

� Ne représenter que l'acteur primaireNe représenter que l'acteur primaire

� A le mérite d'être simple et d'obtenir des diagrammes lisiblesA le mérite d'être simple et d'obtenir des diagrammes lisibles� Sans doute la meilleur solution dans lors des premières itérationsSans doute la meilleur solution dans lors des premières itérations

ClientConsulterUnComp

te VendeurVendreAuxEnchè re

s

megaplanet 18

Style "décoration"Style "décoration"

� Utiliser une décoration particulière (e.g. auxiliaire ou initiator)Utiliser une décoration particulière (e.g. auxiliaire ou initiator)

Client

ConsulterUnCompte

auxiliary

Systè meBancaire

<<actor>>

Vendeur

Controleur

Acheteur

VendreAuxEnchè resauxiliary

auxiliary

megaplanet 19

Systè meBancaire

<<actor>>

Style "droite/gauche"Style "droite/gauche"

� primaire à gauche, secondaire à droiteprimaire à gauche, secondaire à droite

Client ConsulterUnCompte

Vendeur

Controleur

Acheteur

VendreAuxEnchè res

� convention "invisible" sans indicationconvention "invisible" sans indication

megaplanet 20

Eviter les flêches !Eviter les flêches !

Vendeur VendreAuxEnchè res

� Interprétation diverses et variées :Interprétation diverses et variées :� "l'acteur est initiateur""l'acteur est initiateur"� "la communication se fait que dans un seul sens""la communication se fait que dans un seul sens"� "je savais pas comment enlever la flêche avec cet outil UML...""je savais pas comment enlever la flêche avec cet outil UML..."

� Eviter la flêche en UMLEviter la flêche en UML (sauf si vous savez ce que vous faites) (sauf si vous savez ce que vous faites)

megaplanet 21

Problèmes des cas d'utilisation Problèmes des cas d'utilisation partagéspartagés

Client

ConsulterLesLivres

Acheter

Internaute

Client

ConsulterLesLivres

Acheter

Internaute

Client

ConsulterLesLivres

Acheter

Internaute

Client

ConsulterLesLivres

Acheter

A B

C D

megaplanet 22

Problèmes des cas d'utilisation Problèmes des cas d'utilisation partagéspartagés

Client

ConsulterLesLivres

Acheter

Internaute

Client

ConsulterLesLivres

Acheter

Internaute

Client

ConsulterLesLivres

Acheter

Internaute

Client

ConsulterLesLivres

Acheter

A B

C D

Client

ConsulterLesLivres

Acheter

A

SYSTEME DE VENTE EN LIGNESYSTEME DE VENTE EN LIGNE Un client peut consulter Un client peut consulter

la liste des livres etla liste des livres etil peut en acheteril peut en acheter

megaplanet 23

Problèmes des cas d'utilisation partagésProblèmes des cas d'utilisation partagés

Client

ConsulterLesLivres

Acheter

Internaute

Client

ConsulterLesLivres

Acheter

Internaute

Client

ConsulterLesLivres

Acheter

Internaute

Client

ConsulterLesLivres

Acheter

A B

C D

• On insiste sur le fait que l'une des fonctions On insiste sur le fait que l'une des fonctions importante est d'accueillir des internautes importante est d'accueillir des internautes quelconques et de leur permettre de consulter quelconques et de leur permettre de consulter la liste des livres sans que leur objectif soit la liste des livres sans que leur objectif soit d'acheterd'acheter

• La différence est faite entre un internaute et La différence est faite entre un internaute et un client (potentiellement habitué)un client (potentiellement habitué)

• Une personne peut changer de rôle Une personne peut changer de rôle dynamiquement en jouant le rôle internaute dynamiquement en jouant le rôle internaute puis de client.puis de client.

• Ce changement de rôle est une caractéristique Ce changement de rôle est une caractéristique exterieure au systèmeexterieure au système

Internaute

Client

ConsulterLesLivres

Acheter

B

megaplanet 24

Problèmes des cas d'utilisation partagésProblèmes des cas d'utilisation partagés

Client

ConsulterLesLivres

Acheter

Internaute

Client

ConsulterLesLivres

Acheter

Internaute

Client

ConsulterLesLivres

Acheter

A B

D• Il est considéré comme important de séparer Il est considéré comme important de séparer

les clients des internautesles clients des internautes• ConsulterLesLivres est un cas d'utilisation ConsulterLesLivres est un cas d'utilisation

normal pour un clientnormal pour un client• Acheter aussiAcheter aussi

Internaute

Client

ConsulterLesLivres

Acheter

C

megaplanet 25

Internaute

Client

ConsulterLesLivres

Acheter

C

Problèmes des cas d'utilisation partagésProblèmes des cas d'utilisation partagés

Client

ConsulterLesLivres

Acheter

Internaute

Client

ConsulterLesLivres

Acheter

A B

D

• Un client peut tout faire ce que peut faire un Un client peut tout faire ce que peut faire un internaute (héritage des cas d'utilisation)internaute (héritage des cas d'utilisation)

• Un client est un cas particulier d'internauteUn client est un cas particulier d'internaute(spécialisation)(spécialisation)

• La dernière règle doit être respectéeLa dernière règle doit être respectée

Internaute

Client

ConsulterLesLivres

Acheter

megaplanet

Cas d'utilisation Cas d'utilisation "Kite-level", "Sea-level", "Fish-"Kite-level", "Sea-level", "Fish-

level" level"

megaplanet 27

Problèmes de la granularitéProblèmes de la granularité

� A quel niveau décrire les cas d'utilisation ?A quel niveau décrire les cas d'utilisation ?� Bonne question ... mais pas de réponseBonne question ... mais pas de réponse

� Trop hautTrop haut� trop loin du systèmetrop loin du système� trop abstrait et "flou"trop abstrait et "flou"� trop complexe à décriretrop complexe à décrire

� Trop basTrop bas� trop de cas d'utilisationtrop de cas d'utilisation� trop près de l'interfacetrop près de l'interface� trop loin des besoins métierstrop loin des besoins métiers

� Conclusion: choisir le "bon" niveau ...Conclusion: choisir le "bon" niveau ...

megaplanet 28

Problèmes de granularité (2)Problèmes de granularité (2)� Tous les cas d'utilisations n'ont pas a être au même niveauTous les cas d'utilisations n'ont pas a être au même niveau� Différents niveaux de détailDifférents niveaux de détail� POURQUOI vs. COMMENTPOURQUOI vs. COMMENT� Décoration du niveau selon Cockburn Décoration du niveau selon Cockburn � Non standardisé mais intuitif et utileNon standardisé mais intuitif et utile

� Niveau normal des cas d'utilisation : la merNiveau normal des cas d'utilisation : la mer

megaplanet 29

Niveaux d'abstractionsNiveaux d'abstractions

SeaSea Level Level

KiteKite Level Level

FishFish Level Level

ClamClam Level Level

CloudsClouds Level Level

� Niveau normalNiveau normal : décrit un but de l'acteur : décrit un but de l'acteur qu'il peut atteindre via une qu'il peut atteindre via une

interaction avec système interaction avec système

� Niveau détaillé : décrit une interaction avec Niveau détaillé : décrit une interaction avec le système, pas un but en soi le système, pas un but en soi

� Niveau résumé : décrit un regroupement Niveau résumé : décrit un regroupement correspondant à un objectif correspondant à un objectif plus global plus global

� Trop bas

� Trop hautTrop haut

megaplanet 30

Exemple de marquageExemple de marquage

DistributeurDeBillets

Client RetirerDeLArgentAuDistributeur

ConsulterSonCompte

Gé rerLaSé curitéAdministrateu

r

AjouterDesBillets

Transporteur

DeBillets

SIdentifier

megaplanet

ConclusionConclusion

megaplanet 32

ATTENTIONATTENTION

"Congratulations: Use Cases Have Been Written, and AreCongratulations: Use Cases Have Been Written, and Are ImperfectImperfect"

[Applying UML and Patterns, Craig Larman][Applying UML and Patterns, Craig Larman]

""A big danger of use cases is that people make them too A big danger of use cases is that people make them too complicated and get stuck. Usually you'll get less hurt by complicated and get stuck. Usually you'll get less hurt by doing too little than by doing too muchdoing too little than by doing too much". ".

[UML Distilled, Martin Fowler][UML Distilled, Martin Fowler]

megaplanet 33

Modèle préliminaire Modèle préliminaire des cas d ’utilisationdes cas d ’utilisation

� Equivalent à définir une Equivalent à définir une table des matièrestable des matières et des résumés pour chaque chapitreet des résumés pour chaque chapitre

� Pas de règles strictesPas de règles strictes� Effectuer les meilleurs regroupement possiblesEffectuer les meilleurs regroupement possibles� Rester simple !Rester simple !� Structuration possible en termes de paquetagesStructuration possible en termes de paquetages� Culture d'entrepriseCulture d'entreprise

Stabilisation du modèle par Stabilisation du modèle par coconsnsenensus sus gragrandndississantant