Post on 20-Jul-2015
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 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 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