Académique Documents
Professionnel Documents
Culture Documents
7466 Chap01
7466 Chap01
9
2010 Pearson Education France UML2, 3e dition Benot Charroux, Aomar Osmani, Yann Thierry-Mieg
UML 2
moyen simple dexprimer leurs besoins. Cest prcisment le rle des diagrammes de cas dutilisation. Ils permettent de recenser les grandes fonctionnalits dun systme.
Exemple
La figure 1.1 modlise une borne interactive qui permet daccder une banque. Le systme modliser apparat dans un cadre (cela permet de sparer le systme modliser du monde extrieur). Les utilisateurs sont reprsents par des petits bonshommes, et les grandes fonctionnalits (les cas dutilisation) par des ellipses.
Figure 1.1 Diagramme de cas dutilisation modlisant une borne daccs une banque. frontire du sujet Borne interactive dune banque nom du sujet cas dutilisation
acteur
Retirer argent
Effectuer un virement
Client association
Consulter comptes
Lensemble des cas dutilisation contenus dans le cadre constitue un sujet . Les petits bonshommes sont appels acteurs . Ils sont connects par de simples traits (appels associations ) aux cas dutilisation et mettent en vidence les interactions possibles entre le systme et le monde extrieur. Chaque cas modlise une faon particulire et cohrente dutiliser un systme pour un acteur donn.
Dfinition
Un cas dutilisation est une manire spcifique dutiliser un systme. Les acteurs sont lextrieur du systme ; ils modlisent tout ce qui interagit avec lui. Un cas dutilisation ralise un service de bout en bout, avec un dclenchement, un droulement et une fin, pour lacteur qui linitie.
Notation et spcification
Un cas dutilisation se reprsente par une ellipse (figure 1.2). Le nom du cas est inclus dans lellipse ou bien il figure dessous. Un strotype (voir la dfinition ci-aprs), peut tre ajout optionnellement au-dessus du nom, et une liste de proprits place au-dessous. Un cas dutilisation se reprsente aussi sous la forme dun rectangle deux compartiments : celui du haut contient le nom du cas ainsi quune ellipse (symbole dun cas dutilisation) ; celui du bas est optionnel et peut contenir une liste de proprits (figure 1.3). Un acteur se reprsente par un petit bonhomme ayant son nom inscrit dessous (figure 1.1) ou par un rectangle contenant le strotype acteur avec son nom juste en dessous (figure 1.4). Il est recommand dajouter un commentaire sur lacteur pour prciser son rle.
11
2010 Pearson Education France UML2, 3e dition Benot Charroux, Aomar Osmani, Yann Thierry-Mieg
UML 2
La figure 1.4 reprsente un acteur par un rectangle. UML utilise aussi les rectangles pour reprsenter des classes, et plus gnralement des classeurs. Pour autant, la notation nest pas ambigu puisque le strotype acteur indique que le rectangle dsigne un acteur. Les strotypes permettent dadapter le langage des situations particulires.
Dfinition
Un strotype reprsente une variation dun lment de modle existant.
un niveau dabstraction plus lev, UML permet de reprsenter tous les cas dutilisation dun systme par un simple rectangle. La figure 1.5 montre comment un tel rectangle peut remplacer tous les cas dutilisation de la figure 1.1.
Figure 1.5 Reprsentation des cas dutilisation un niveau dabstraction lev. Borne interactive dune banque
Dfinition
Un classeur est un lment de modlisation qui dcrit une unit comportementale ou structurelle. Les acteurs et les cas dutilisation sont des classeurs. Tout au long de ce livre, on retrouvera le terme classeur car cette notion englobe aussi les classes, des parties dun systme, etc.
Notation
Un classeur se reprsente par un rectangle contenant ventuellement des compartiments (la figure 1.6 montre comment il est possible de faire figurer explicitement des cas dutilisation dans un classeur).
Figure 1.6 Les compartiments dun classeur. Borne interactive dune banque
Retirer argent
Effectuer un virement
Consulter comptes
12
2010 Pearson Education France UML2, 3e dition Benot Charroux, Aomar Osmani, Yann Thierry-Mieg
Exemple
La figure 1.7 montre un internaute qui tlcharge plusieurs morceaux de musique sur Internet.
Figure 1.7 Association avec multiplicit. * Internaute Logiciel de tlchargement Tlcharger une musique
Le symbole * qui signifie plusieurs est ajout lextrmit du cas et sappelle une multiplicit. Plusieurs valeurs sont possibles pour la multiplicit : exactement n scrit tout simplement n, m..n signifie entre m et n, etc. Prciser une multiplicit sur une relation nimplique pas ncessairement que les cas sont utiliss en mme temps.
Exemple
la figure 1.9, le modlisateur a jug que la vente dun article par correspondance est un problme complexe et quil est important de faire apparatre dans le modle une dcomposition en sous-cas. 13
2010 Pearson Education France UML2, 3e dition Benot Charroux, Aomar Osmani, Yann Thierry-Mieg
UML 2
Notation et spcification
Une dpendance se reprsente par une flche pointille. Un strotype est souvent ajout audessus du trait. Le strotype inclut indique que la relation de dpendance est une inclusion (figures 1.8 et 1.9). Le strotype tend indique une extension (figure 1.8). Lextension peut intervenir un point prcis du cas tendu ; ce point sappelle le point dextension ; il porte un nom, qui figure dans un compartiment du cas tendu sous la rubrique point dextension , et est ventuellement associ une contrainte indiquant le moment o lextension intervient. Une extension est souvent soumise une condition (indique dans une note attache la flche pointille). Le symbole utilis pour la gnralisation est une flche en traits pleins dont la pointe est un triangle ferm. La flche pointe vers le cas le plus gnral (figure 1.8).
Figure 1.8 Relations entre cas dans un diagramme de cas dutilisation.
inclut inclut
Sauthentifier
tend
Client Vrifier le solde Condition : {si montant > 20 euros} Point dextension : vrificationSolde Consulter comptes
inclut
Systme de vente par correspondance Vrifier la disponibilit de larticle inclut Passer une commande inclut Prpos aux commandes Vrifier la solvabilit du client
14
Un cas reli un autre cas peut ne pas tre directement accessible un acteur (figure 1.9). Un tel cas est appel cas interne .
2010 Pearson Education France UML2, 3e dition Benot Charroux, Aomar Osmani, Yann Thierry-Mieg
Dfinition
Un cas dutilisation est dit interne sil nest pas reli directement un acteur.
Les relations entre cas ne sont pas obligatoires. Elles permettent de clarifier et denrichir les cas dutilisation. Par exemple, la figure 1.8, rien nempche de regrouper les cas Consulter comptes et Consulter sur Internet en un seul cas. Cependant, indiquer ds la phase de recueil des besoins quil y a des cas particuliers apporte une information supplmentaire pertinente. La question se poser est : faut-il la faire figurer dans le diagramme de cas dutilisation ou la prendre en compte plus tard ? La rponse cette question ne sera pas toujours la mme selon le contexte du projet.
Remarque
Attention lorientation des flches : si le cas A inclut B on trace la flche de A vers B, mais si B tend A, la flche est dirige de B vers A.
Exemple
La figure 1.10 montre que le directeur des ventes est un prpos aux commandes avec un pouvoir supplmentaire (en plus de pouvoir passer et suivre une commande, il peut grer le stock). Le prpos aux commandes ne peut pas grer le stock.
Figure 1.10 Relations entre acteurs. Systme de vente par correspondance
inclut
inclut
Rechercher article
inclut
Notation
Le symbole utilis pour la gnralisation entre acteurs est une flche en traits pleins dont la pointe est un triangle ferm. La flche pointe vers lacteur le plus gnral. 15
2010 Pearson Education France UML2, 3e dition Benot Charroux, Aomar Osmani, Yann Thierry-Mieg
UML 2
Dfinition
Un paquetage permet dorganiser des lments de modlisation en groupe. Un paquetage peut contenir des classes, des cas dutilisations, des interfaces, etc.
Exemple
la figure 1.11, trois paquetages ont t crs : Client, Stock et Support. Ces paquetages contiennent les cas dutilisation du diagramme de la figure 1.10 (Client contient les cas Passer une commande et Suivre une commande , Stock contient le cas Grer le stock , tandis que le cas Rechercher article est inclus dans le paquetage Support.
Figure 1.11 Regroupement des cas dutilisation en paquetage. Dpendance entre paquetages qui reflte linclusion des cas dutilisation. Support
Client
Stock
En tant que langage, UML est soumis des rgles de nommage quil faut strictement respecter : pour accder au contenu de paquetages imbriqus les uns dans les autres, il faut utiliser des deux-points comme sparateur des noms de paquetage. Par exemple, si un paquetage B inclus dans un paquetage A contient une classe X, il faut crire A::B::X pour pouvoir utiliser la classe X en dehors du contexte des paquetages.
16
peuvent avoir le mme rle. Cest le cas des clients dune banque par exemple. Il ny aura alors quun seul acteur. Rciproquement, une mme personne physique peut jouer des rles diffrents vis--vis du systme et donc correspondre plusieurs acteurs. En gnral, les utilisateurs ne sont pas difficiles trouver, mais il faut veiller ne pas oublier les personnes responsables de lexploitation et de la maintenance du systme. Par exemple, un logiciel de surveillance qui limite les accs un btiment doit avoir un administrateur charg de crer des groupes de personnes et leur donner des droits daccs. Il ne sagit pas ici des personnes qui installent et paramtrent le logiciel avant sa mise en production, mais des utilisateurs du logiciel dans son fonctionnement nominal. En plus des utilisateurs, les acteurs peuvent tre : des priphriques manipuls par le systme (imprimantes, robots) ; des logiciels dj disponibles intgrer dans le projet ; des systmes informatiques externes au systme mais qui interagissent avec lui, etc. Pour faciliter la recherche des acteurs, on peut imaginer les frontires du systme. Tout ce qui est lextrieur et qui interagit avec le systme est un acteur ; tout ce qui est lintrieur est une fonctionnalit du systme que le matre duvre doit raliser. Un cas dutilisation a toujours au moins un acteur principal pour qui le systme produit un rsultat observable, et ventuellement dautres acteurs ayant un rle secondaire. Par exemple, lacteur principal dun cas de retrait dargent dans un distributeur automatique de billets est la personne qui fait le retrait, tandis que la banque qui vrifie le solde du compte est un acteur secondaire. En gnral, lacteur principal initie le cas dutilisation par ses sollicitations.
Dfinition
Lacteur est dit principal pour un cas dutilisation lorsque le cas dutilisation rend service cet acteur. Les autres acteurs sont dits secondaires . Un cas dutilisation a au plus un acteur principal, et un ensemble ventuellement vide dacteurs secondaires. Un acteur principal obtient un rsultat observable du systme tandis quun acteur secondaire est sollicit pour des informations complmentaires.
Exemple
Considrons un systme de rservation et dimpression de billets de train via des bornes interactives situes dans des gares. En prenant pour acteur une personne qui souhaite obtenir un billet, on peut obtenir la liste suivante des cas dutilisation : rechercher un voyage ; rserver une place dans un train ; acheter son billet.
17
2010 Pearson Education France UML2, 3e dition Benot Charroux, Aomar Osmani, Yann Thierry-Mieg
Lensemble des cas dutilisation doit couvrir exhaustivement tous les besoins fonctionnels du systme. Ltape de recueil des besoins est souvent longue et fastidieuse car les utilisateurs connaissent lexistant et nont quune vague ide de ce que leur apportera un futur systme ; en outre, le cahier des charges contient des imprcisions, des oublis, voire des informations contradictoires difficiles extraire. Llaboration du diagramme de cas dutilisation permet de pallier ces problmes en recentrant le systme sur les besoins fonctionnels et ce, ds le dbut du projet. On peut se demander pourquoi adopter un point de vue fonctionnel, et non technique ? Trop souvent, par le pass, les logiciels taient techniquement trs labors sans pour autant satisfaire les utilisateurs. Avec les diagrammes de cas dutilisation, on se place clairement du ct des utilisateurs. Le ct technique nest pas oubli mais abord diffremment : les besoins sont affins lors de lcriture des spcifications on parle de spcifications techniques des besoins (voir la section Description textuelle des cas dutilisation ).
UML 2
Remarque
Il ne faut pas faire apparatre les dtails des cas dutilisation, mais il faut rester au niveau des grandes fonctions du systme. La question qui se pose alors est de savoir jusqu quel niveau de dtails descendre ? Si le nombre de cas est trop important, il faut se demander si on a fait preuve de suffisamment dabstraction. Le nombre de cas dutilisation est un bon indicateur de la faisabilit dun logiciel. Il ne doit pas y avoir de notion temporelle dans un diagramme de cas dutilisation. Il ne faut pas se dire que lacteur fait ceci, puis le systme lui rpond cela, ce qui implique une raction de lacteur, et ainsi de suite. Le squencement temporel sera pris en compte plus tard, notamment dans la description dtaille des cas (voir section 3.3). Lintrt des cas dutilisation ne se limite pas au recueil des besoins. La description des cas dutilisation peut servir de base de travail pour tablir les tests de vrification du bon fonctionnement du systme, et orienter les travaux de rdaction de la documentation lusage des utilisateurs.
Exemple
Lexemple de la figure 1.12 ne permet pas de savoir ce qui entre et ce qui sort du logiciel bancaire : le retrait dargent se fait-il en euros ou en dollars ? Dans quel ordre les oprations sont-elles effectues ? Faut-il choisir le montant du retrait avant de choisir le compte dbiter, ou bien linverse ? Tous ces dtails sont des lments de spcification. Spcifier un produit, cest le dcrire de la faon la plus prcise possible.
Figure 1.12 Diagramme de cas dutilisation pour une banque. Gestion dune banque Retirer argent
Guichetier
Consulter compte
Systme central
18
2010 Pearson Education France UML2, 3e dition Benot Charroux, Aomar Osmani, Yann Thierry-Mieg
Les spcifications peuvent tre divises en deux catgories selon quelles sont fonctionnelles ou techniques. Les spcifications fonctionnelles concernent les fonctions du systme, la fonction de retrait dargent par exemple, tandis que les spcifications techniques permettent de prciser le contexte dexcution du systme. Par exemple, le logiciel qui gre la distribution des billets doit tre compatible avec tel ou tel systme dexploitation, ou encore, un retrait dargent doit se faire en moins de 5 secondes. Les spcifications fonctionnelles dcoulent directement du diagramme de cas dutilisation. Il sagit de reprendre chaque cas et de le dcrire trs prcisment. En dautres termes, vous devez dcrire comment les acteurs interagissent avec le systme.
Exemple
partir du diagramme de cas dutilisation de lexemple prcdent, la figure 1.13 montre une faon de dcrire les interactions entre le guichetier et le systme. On y voit clairement apparatre une squence de messages. Le graphisme utilis fait partie du formalisme des diagrammes de squence (voir chapitre 3).
Figure 1.13 Description dun cas dutilisation par une squence de messages. sd Retirer argent
: Systme Guichetier Saisie du numro de compte client Demande de validit du compte Compte valide Demande type dopration Retrait despces de 200 euros Demande de dbit du compte Compte dbit Autorisation de dlivrer les 200 euros Systme central
Remarque
Une des forces de la notation UML est de proposer de nombreux types de diagrammes qui mettent en avant des aspects diffrents dune description. Ainsi, le modlisateur peut utiliser le type de diagramme qui lui parat le plus adapt pour reprsenter son problme (et sa solution), tout en restant dans la norme. 19
2010 Pearson Education France UML2, 3e dition Benot Charroux, Aomar Osmani, Yann Thierry-Mieg
UML 2
Exemple
Dans le cas dun retrait dargent, des squences alternatives se produisent par exemple dans les situations suivantes : Le client choisit deffectuer un retrait en euros ou en dollars. Le client a la possibilit dobtenir un reu. Une exception se produit si la connexion avec le systme central de la banque qui doit vrifier la validit du compte est interrompue. 20
2010 Pearson Education France UML2, 3e dition Benot Charroux, Aomar Osmani, Yann Thierry-Mieg
La survenue des erreurs dans les squences doit tre signale de la faon suivante : appel de lexception Y o Y est le nom de lexception. La dernire partie de la description dun cas dutilisation est une rubrique optionnelle. Elle contient gnralement des spcifications non fonctionnelles (ce sont le plus souvent des spcifications techniques, par exemple pour prciser que laccs aux informations bancaires doit tre scuris). Cette rubrique contient aussi dventuelles contraintes lies aux interfaces homme-machine (par exemple, pour donner la possibilit daccder tous les comptes dun utilisateur partir de lcran principal).
La squence nominale, les squences alternatives, les exceptions, etc., font quil existe une multitude de chemins depuis le dbut du cas jusqu la fin. Chaque chemin est appel scnario . Un systme donn gnre peu de cas dutilisation, mais, en gnral, beaucoup de scnarios.
21
2010 Pearson Education France UML2, 3e dition Benot Charroux, Aomar Osmani, Yann Thierry-Mieg
UML 2
Remarque
Parfois, les utilisateurs ont du mal dcrire un cas sous une forme textuelle. Il est alors judicieux de se servir dune autre forme de description, en utilisant un organigramme ou encore en construisant des maquettes des interfaces homme-machine. Le dessin, mme sommaire, de laspect des crans des interfaces permet de fixer les ides ; il offre une excellente base pour la discussion avec le matre douvrage, qui le considre comme plus parlant .
Conclusion
Les phases de recueil des besoins et dcriture des spcifications sont longues et fastidieuses. Mais quand elles sont bien menes, elles permettent de lever toutes les ambiguts du cahier des charges et de recueillir les besoins dans leurs moindres dtails. Les spcifications permettant dapprofondir les besoins (on parle dailleurs juste titre de spcifications techniques des besoins), la frontire entre ces deux notions est floue. Il nest pas question ce moment de la modlisation de limiter les besoins. Du ct du matre duvre, la tendance est les limiter des fonctionnalits essentielles, tandis que le matre douvrage, et surtout les utilisateurs, ont tendance en exprimer bien plus quil nest possible den raliser. Le matre duvre doit faire preuve ici de patience et mener la phase de spcifications de tous les besoins jusqu son terme. Cest ce moment seulement, que des priorits sont mises sur les spcifications. Le matre duvre tente alors dagencer les besoins de faon cohrente et fait plusieurs propositions de solutions au matre douvrage, qui couvrent plus ou moins de besoins. UML ne propose rien pour mettre des priorits sur les spcifications. Le diagramme de cas dutilisation est un premier modle dun systme. Que savonsnous sur le systme aprs avoir cr ce diagramme ? Sur le systme lui-mme, en interne, pas grand-chose vrai dire. Cest encore une bote noire larchitecture et au mode de fonctionnement interne inconnus. Donc, a fortiori, ce stade, nous ne savons toujours pas comment le raliser. En revanche, son interface avec le monde qui lentoure est partiellement connue : nous nous sommes placs du point de vue des acteurs pour dfinir les spcifications fonctionnelles. Il faut sattarder un instant sur lexpression partiellement connue pour mesurer les limites du modle des cas dutilisation. Les spcifications fonctionnelles disent ce que le systme doit faire pour les acteurs. En dautres termes, nous connaissons prcisment ce qui entre et ce qui sort du systme, mais, en revanche, nous ne savons toujours pas comment raliser cette interface avec lextrieur. Lobjectif de cette phase de la modlisation est donc de clairement identifier les frontires du systme et les interfaces quil doit offrir lutilisateur. Si cette tape commence avant la conception de larchitecture interne du systme, il est en gnral utile, quand la rflexion est suffisamment pousse, de poser les bases de la structure interne du systme, et donc dalterner analyse des besoins et bauche des solutions envisages. Aux spcifications fonctionnelles sajoutent des spcifications techniques qui peuvent tre vues comme des exigences pour la future ralisation. Le prsent chapitre se poursuit par une srie de problmes corrigs. Le chapitre 2, quant lui, prsente le diagramme des classes, qui permet de modliser la structure interne dun systme.
2010 Pearson Education France UML2, 3e dition Benot Charroux, Aomar Osmani, Yann Thierry-Mieg
22
Problmes et exercices
La construction dun diagramme de cas dutilisation dbute par la recherche des frontires du systme et des acteurs, pour se poursuivre par la dcouverte des cas dutilisation. Lordre des exercices suit cette progression. Llaboration proprement dite dun diagramme de cas dutilisation est illustre par plusieurs exercices. Ce chapitre se termine par des tudes de cas de complexits croissantes.
Solution
1 1. Pour le syst systme informatique qui pilote la station-service, le pistolet et la gchette sont des priphriques matriels. De ce point de vue, ce sont des acteurs. Il est nanmoins ncessaire de consigner dans le systme informatique ltat de ces priphriques : ds quun client prend le pistolet par exemple, le systme doit informer le pompiste en indiquant le type dessence choisi. Pistolet et gchette doivent donc faire partie du systme modliser. Ici, nous sommes face deux options contradictoires : soit le pistolet et la gchette sont des acteurs, soit ils ne le sont pas. Pour lever cette ambigut, il faut adopter le point de vue du client. Le client agit sur le systme informatique quand il se sert de lessence. Laction de se servir constitue une transaction bien isole des autres fonctionnalits de la station-service. Nous disons donc que Se servir est un cas dutilisation. Le client, qui est en dehors du systme, devient alors lacteur principal, comme le montre la figure 1.14. Ce cas englobe la prise du pistolet et lappui sur la gchette. Ces priphriques ne sont plus considrs comme des acteurs ; sils ltaient, la modlisation se ferait un niveau de dtails trop important. Le client est donc lacteur principal du systme. Or, bien souvent, le pompiste note le numro dimmatriculation du vhicule du client dans le systme informatique.
2010 Pearson Education France UML2, 3e dition Benot Charroux, Aomar Osmani, Yann Thierry-Mieg
23
Le client doit alors tre modlis deux fois : la premire fois en tant quacteur, et la seconde, lintrieur du systme, pour y conserver un numro dimmatriculation.
Figure 1.14 Le client comme acteur du cas Se servir . Client Station-service Se servir
2. Un acteur est caractris par le rle quil joue vis--vis du systme. Le pompiste, bien qutant une personne diffrente du client, joue un rle identique quand il se sert de lessence. Pour le cas Se servir , il nest pas ncessaire de crer un acteur supplmentaire reprsentant le pompiste. 3. La gestion de la station-service dfinit une nouvelle fonctionnalit modliser. Le grant prend le rle principal ; cest donc un nouvel acteur (figure 1.15).
Figure 1.15 Deux acteurs pour deux rles. Client Grer la station Grant Station-service
Se servir
4. La station offre un troisime service : lentretien des vhicules. Le systme informatique doit prendre en charge cette fonctionnalit supplmentaire. Un nouvel acteur apparat alors : le mcanicien. Le grant est prsent un chef datelier qui est un mcanicien ayant la capacit de grer la station. Il y a ainsi une relation de gnralisation entre les acteurs Mcanicien et Chef datelier (figure 1.16) signifiant que le chef datelier peut, en plus dassurer la gestion, entretenir des vhicules.
Figure 1.16 Relation de gnralisation entre acteurs. Client Entretenir des vhicules Mcanicien Station-service Se servir
24
2010 Pearson Education France UML2, 3e dition Benot Charroux, Aomar Osmani, Yann Thierry-Mieg
Reposer le pistolet
Payer
Solution
Il ne f faut t pas introduire de squencement temporel entre des cas dutilisation (cette notion apparat lors de la description des cas). De plus, il est incorrect dutiliser un trait plein pour relier deux cas. Cette notation est rserve aux associations entre les acteurs et les cas.
2. Certains clients demandent lagent de voyages dtablir une facture dtaille. Cela donne lieu un nouveau cas dutilisation appel tablir une facture dtaille . Comment mettre ce cas en relation avec les cas existants ? 3. Le voyage se fait soit par avion, soit par train. Comment modliser cela ?
25
2010 Pearson Education France UML2, 3e dition Benot Charroux, Aomar Osmani, Yann Thierry-Mieg
Solution
1 1. Le modlisa modlisateur a considr que lorganisation dun voyage est trop complexe pour tre reprsente par un seul cas dutilisation. Il la donc dcompose en trois tches modlises par les trois cas dutilisation Rserver une chambre dhtel , Rserver un taxi et Rserver un billet de train . Ces trois tches forment des transactions suffisamment isoles les unes des autres pour tre des cas dutilisation. De plus, ces cas sont mutuellement indpendants. Ils constituent des cas internes du systme car ils ne sont pas relis directement un acteur.
Figure 1.19 Relations dinclusion entre cas dutilisation. Agence de voyages Rserver une chambre dhtel inclut Rserver un taxi Rserver un billet de train
inclut
Agent de voyages
2. Ltablissement dune facture dtaille se fait uniquement sur demande du client. Ce caractre optionnel est modlis par une relation dextension entre les cas Organiser un voyage et tablir une facture dtaille . Lextension porte la condition la demande du client .
Figure 1.20 Relation dextension entre cas dutilisation. Agence de voyages Rserver une chambre dhtel
Rserver un taxi
inclut
inclut
inclut
tend
26
3. Il y a maintenant deux cas particuliers : le voyage se fait en train ou en avion. Ces cas particuliers sont modliss par les cas Rserver un billet de train et Rserver un billet davion . Ceux-ci sont lis un cas plus gnral appel Rserver un titre de transport .
2010 Pearson Education France UML2, 3e dition Benot Charroux, Aomar Osmani, Yann Thierry-Mieg
Agence de voyages Rserver une chambre dhtel Rserver un taxi Rserver un titre de transport
inclut
inclut
Agent de voyages
Exercice 4 : Identification des acteurs, recensement des cas dutilisation et relations simples entre cas
Modlisez avec un diagramme de cas dutilisation le fonctionnement dun distributeur automatique de cassettes vido dont la description est donne ci-aprs. Une personne souhaitant utiliser le distributeur doit avoir une carte magntique spciale. Les cartes sont disponibles au magasin qui gre le distributeur. Elles sont crdites dun certain montant en euros et rechargeables au magasin. Le prix de la location est fix par tranches de 6 heures (1 euro par tranche). Le fonctionnement du distributeur est le suivant : le client introduit sa carte ; si le crdit est suprieur ou gal 1 euro, le client est autoris louer une cassette (il est invit aller recharger sa carte au magasin sinon) ; le client choisit une cassette et part avec ; quand il la ramne, il lintroduit dans le distributeur puis insre sa carte ; celle-ci est alors dbite ; si le montant du dbit excde le crdit de la carte, le client est invit rgulariser sa situation au magasin et le systme mmorise le fait quil est dbiteur ; la gestion des comptes dbiteurs est prise en charge par le personnel du magasin. On ne sintresse ici qu la location des cassettes, et non la gestion du distributeur par le personnel du magasin (ce qui exclut la gestion du stock des cassettes).
Solution
L seul Le l acteur t est le client. Lacquisition dune carte et sa recharge ne se font pas via le distributeur : il faut aller au magasin. Ces fonctions ne donnent pas lieu des cas dutilisation.
2010 Pearson Education France UML2, 3e dition Benot Charroux, Aomar Osmani, Yann Thierry-Mieg
27
Il ne faut pas faire apparatre un squencement temporel dans un diagramme de cas dutilisation. On ne fait donc pas figurer les tapes successives telles que lintroduction de la carte puis le choix dune cassette, etc. Ce niveau de dtails apparatra quand on dcrira les cas dutilisation (sous forme textuelle par exemple). Dans un diagramme de cas dutilisation, il faut rester au niveau des grandes fonctions et penser en termes de transactions (une transaction est une squence doprations qui fait passer un systme dun tat cohrent initial un tat cohrent final). Il ny a donc que deux cas : Emprunter une vido et Restituer une vido (figure 1.22).
Figure 1.22 Diagramme de cas dutilisation dun distributeur de cassettes vido. Magasin de location de cassettes vido
Client
Nom de lacteur
Rle
Client
Pour dcrire le cas Emprunter une vido , imaginons un scnario possible. Le client introduit sa carte. Il doit ensuite pouvoir choisir une vido. Quels sont les critres de choix ? Lnonc ne prcise pas ces critres. Ce problme arrive frquemment en situation relle. Le matre douvrage dans un projet informatique de cette ampleur est bien souvent le propritaire du magasin de location. Il sait rarement rdiger un cahier des charges. Cest le rle du matre duvre dobliger le matre douvrage bien formuler ses besoins. Choisir une vido peut tre complexe : la recherche se fait-elle par genres, par titres ou par dates de sortie des films en salles ? Si la recherche se fait par genres, quels sont-ils ? Rechercher un film semble plus complexe quon ne limaginait au premier abord. De plus, cette fonctionnalit peut tre isole de la location proprement dite, qui concerne plutt la gestion de la carte. Ces remarques incitent crer le cas supplmentaire Rechercher une vido . Lemprunt dune vido inclut sa recherche. Une relation dinclusion intervient donc entre les cas Emprunter une vido et Rechercher une vido , comme le montre la figure 1.23.
Figure 1.23 Diagramme de cas dutilisation complt par la recherche dune vido. Magasin de location de cassettes vido
Client
28
2010 Pearson Education France UML2, 3e dition Benot Charroux, Aomar Osmani, Yann Thierry-Mieg
ce point de la modlisation, deux remarques simposent : Le succs dUML en tant que langage de modlisation sexplique, entre autres, par le fait quil oblige le modlisateur poser les bonnes questions au bon moment ; la modlisation vient peine de commencer que dj des questions se posent. Il faut cependant veiller rester au niveau du recueil des besoins et des spcifications et ne faire aucun choix de conception du systme. Il faut se contenter de dcrire les fonctions du systme sans chercher savoir comment les raliser. Le problme des critres de recherche a conduit une rvision du diagramme de cas dutilisation. Cet aller-retour sur les modles est ncessaire. Chacun deux apporte des informations complmentaires qui peuvent remettre en cause les modles existants. Une fois tous les modles tablis, la modlisation sera alors aboutie.
Solution
Avant de prse prsenter la solution, donnons quelques indications : Tous les cas dutilisation dun systme doivent tre dcrits sous forme textuelle (dans la suite de ce chapitre, nous omettrons ventuellement de le faire pour des raisons de place ou dintrt). Quand une erreur (exception) est dtecte dans un cas, une squence derreurs est active (par exemple, voir la squence E1 dans la description suivante). La squence nominale nest pas reprise et le cas sinterrompt aussitt.
Enchanement nominal
1. 2. 3. 4. 5. 6. 7. 8. 9. Le systme vrifie la validit de la carte. Le systme vrifie que le crdit de la carte est suprieur ou gal 1 euro. Appel du cas Rechercher une vido . Le client a choisi une vido. Le systme indique, daprs la valeur de la carte, pendant combien de temps (tranches de 6 heures) le client peut garder la cassette. Le systme dlivre la cassette. Le client prend la cassette. Le systme rend la carte au client. Le client prend sa carte.
Enchanements alternatifs
A1 : Le crdit de la carte est infrieur 1 euro. Lenchanement dmarre aprs le point 2 de la squence nominale : 3. Le systme indique que le crdit de la carte ne permet pas au client demprunter une vido. 4. Le systme invite le client aller recharger sa carte au magasin. La squence nominale reprend au point 8.
Post-conditions
Le systme a enregistr les informations suivantes : La date et lheure de la transaction, la minute prs : les tranches de 6 heures sont calcules la minute prs. Lidentifiant du client. Lidentifiant du film emprunt. Rubriques optionnelles
31
2010 Pearson Education France UML2, 3e dition Benot Charroux, Aomar Osmani, Yann Thierry-Mieg
Exercice 6 : Relations dextension entre cas dutilisation, regroupement de cas dutilisation en paquetages
Modlisez laide dun diagramme de cas dutilisation un systme informatique de pilotage dun robot distance. Le fonctionnement du robot est dcrit ci-aprs. Un robot dispose dune camra pour filmer son environnement. Il peut avancer et reculer grce un moteur lectrique capable de tourner dans les deux sens et commandant la rotation des roues. Il peut changer de direction car les roues sont directrices. Il est pilot distance : les images prises par la camra sont envoyes vers un poste de tlpilotage. Ce dernier affiche lenvironnement du robot sur un cran. Le pilote visualise limage et utilise des commandes pour contrler distance les roues et le moteur du robot. La communication entre le poste de pilotage et le robot se fait via des ondes radio.
Solution
Le systme L t informatique i f est compos de deux sous-systmes : le sous-systme du robot ; le sous-systme du poste de tlpilotage. Do lide de faire deux diagrammes de cas dutilisation un par sous-systme et de placer chaque diagramme dans un paquetage. La figure 1.24 montre deux paquetages : un pour le sous-systme du robot et un pour le sous-systme du poste de pilotage. La relation de dpendance entre les paquetages signifie que le systme de pilotage utilise le robot.
Figure 1.24 Reprsentation du systme de tlpilotage dun robot par des paquetages. Robot Systme de pilotage
Commenons par modliser le robot. Ses capteurs (camra, moteur et roues) sont lextrieur du systme informatique et ils interagissent avec lui. Ils correspondent a priori la dfinition dacteurs. Reprenons chaque capteur pour ltudier en dtail : Le systme doit demander la capture dune image la camra et raliser la capture. La camra est donc un acteur associ un cas dutilisation appel Capturer images (figure 1.25). Le sens de rotation du moteur peut tre command. Le moteur est lacteur ; il est associ un cas appel Commander le moteur .
32
2010 Pearson Education France UML2, 3e dition Benot Charroux, Aomar Osmani, Yann Thierry-Mieg
Commander la direction reli lacteur Direction. Pour pouvoir envoyer les images au poste de pilotage et recevoir les commandes en retour, il faut un capteur supplmentaire, metteur/rcepteur dondes radio. Le systme informatique ne va pas se charger denvoyer et de recevoir des ondes radio cest le rle des priphriques dmission et de rception mais il doit soccuper du transcodage des images pour les envoyer via des ondes. Le systme informatique doit-il raliser lui-mme ce transcodage ou bien les fonctions de transcodage sont-elles fournies avec les priphriques ? Pour rpondre cette question, il faudrait raliser une tude de march des metteurs/rcepteurs radio. Cela dpasse le cadre de cet ouvrage. Considrons que le systme informatique intervient, ne serait-ce que pour appeler des fonctions de transcodage. Cela constitue un cas dutilisation. Deux flots dinformations distincts doivent tre envoys au poste de pilotage : des images et des commandes. Cette dernire remarque incite crer deux cas dutilisation : un pour mettre des images ( Envoyer les images ) et un pour recevoir les commandes ( Recevoir les commandes ). En outre, selon lutilisation du robot, la transmission des images seffectue plus ou moins vite : si les dplacements du robot sont rapides par exemple, la transmission doit ltre aussi. Ces contraintes de ralisation font partie des spcifications techniques du systme. Elles doivent figurer dans la description textuelle du cas dutilisation. Sur le diagramme de cas dutilisation, il est possible de placer une relation dextension entre les cas Envoyer les images et Capturer images , en indiquant comme point dextension quel moment de la capture et quelle frquence sont envoyes les images.
Nom de lacteur Rle
Permet de capturer des images de lenvironnement du robot. Permet de diriger les roues du robot. Permet de faire avancer ou reculer le robot. Permet denvoyer des ondes radio. Permet de recevoir des ondes radio.
33
2010 Pearson Education France UML2, 3e dition Benot Charroux, Aomar Osmani, Yann Thierry-Mieg
Camra Condition : {ds quune image complte a t capture} Point dextension : envoiImage tend Envoyer les images metteur Recevoir les commandes Points dextension : - commandeMoteur - commandeDirection
Rcepteur
Condition : {ds quune commande concerne la direction} Point dextension : commandeDirection tend tend Commander la direction
Commander le moteur
Moteur
Direction
Intressons-nous prsent au sous-systme de pilotage. La figure 1.26 prsente le diagramme de cas dutilisation, qui se dduit sans problme du diagramme prcdent.
Nom de lacteur Rle
Reprsente un pilote qui agit sur les commandes distance. Permet denvoyer des ondes radio. Permet de recevoir des ondes radio.
34
2010 Pearson Education France UML2, 3e dition Benot Charroux, Aomar Osmani, Yann Thierry-Mieg
Systme de pilotage dun robot Recevoir des images Points dextension : afficheImage
Rcepteur Condition : {ds quune image complte a t reue} Point dextension : afficheImage
Pilote
Condition : {ds quune commande a t manipule par le pilote} Point dextension : envoiCommande
metteur
Solution
L mdiathque La di th nemploie quune employe. Nanmoins, un acteur est dtermin par le rle quil joue vis--vis du systme modliser. Ici, lemploye a deux rles essentiels :
35
2010 Pearson Education France UML2, 3e dition Benot Charroux, Aomar Osmani, Yann Thierry-Mieg
le rle de bibliothcaire qui gre les uvres ainsi que les adhrents ; le rle de gestionnaire des contentieux ayant les connaissances juridiques suffisantes
pour dclencher des procdures judiciaires. Ces rles sont modliss par deux acteurs : Bibliothcaire et Gestionnaire des contentieux. Un gestionnaire de contentieux est un bibliothcaire avec pouvoir. Les acteurs correspondants sont relis par une relation de gnralisation (figure 1.27). Ainsi, lacteur Gestionnaire des contentieux peut utiliser les cas associs lacteur Bibliothcaire. A contrario, lacteur Bibliothcaire ne peut pas utiliser les cas relatifs la gestion des contentieux. Jusqu prsent la mdiathque fonctionne avec une seule employe. Si, lavenir, plusieurs employs devenaient ncessaires, le systme informatique pourrait fonctionner avec deux groupes dutilisateurs : un premier groupe dont le rle serait limit celui des bibliothcaires et un deuxime groupe susceptible de grer les contentieux en plus davoir un rle de bibliothcaire. Lauthentification du groupe auquel appartient un utilisateur du systme doit tre contrle par un mot de passe. La gestion des mots de passe requiert la prsence dun administrateur du systme. Pour UML, peu importe si cette personne fait partie ou non du groupe des bibliothcaires ou des gestionnaires de contentieux. Comme un nouveau rle apparat dans le systme, cela justifie la dfinition dun acteur supplmentaire : Administrateur. Tous les cas dutilisation lis aux acteurs incluent la procdure dauthentification matrialise par le cas Sauthentifier . Dans le diagramme, la gestion des adhrents et la gestion des emprunts sont spares : Grer les adhrents consiste ajouter, supprimer ou modifier lenregistrement dun adhrent dans la mdiathque, tandis que Grer les emprunts consiste prter des exemplaires aux adhrents dj inscrits. La gestion des contentieux a deux degrs dalerte : Un exemplaire na pas t rendu au bout de trois semaines. Un exemplaire na toujours pas t rapport au bout dun an. Cela correspond deux fonctionnalits distinctes puisque, dans le deuxime cas seulement, il faut dclencher une procdure judiciaire. Nous reprsentons cela par deux cas dutilisation : Grer les contentieux et Dclencher une procdure judiciaire . Ces deux cas sont lis par une relation dextension soumise la condition si le retard dpasse un an .
Nom de lacteur Rle
Reprsente un bibliothcaire. Il gre les uvres, les adhrents et les emprunts. Reprsente un bibliothcaire qui peut grer les contentieux. Reprsente un gestionnaire des droits daccs au systme.
36
2010 Pearson Education France UML2, 3e dition Benot Charroux, Aomar Osmani, Yann Thierry-Mieg
Une mdiathque Grer les uvres inclut Rechercher les uvres inclut Grer les adhrents inclut Sauthentifier Rechercher les adhrents inclut inclut Grer les emprunts Grer les contentieux Grer les comptes utilisateurs Administrateur Points dextension : procdureJudiciaire : {pas chaque fois que le gestionnaire utilise le cas mais une fois par mois} tend Dclencher une procdure judiciaire inclut
Bibliothcaire
inclut
Exercice 8 : Identification des acteurs, recensement des cas dutilisation internes et relation de gnralisation entre cas
Modlisez laide dun diagramme de cas dutilisation le systme informatique qui gre la distribution dessence dans une station-service. Le fonctionnement de la distribution de lessence est dcrit ci-aprs. Avant de pouvoir tre utilise par un client, la pompe doit tre arme par le pompiste. La pompe est ainsi apprte, mais ce nest que lorsque le client appuie sur la gchette du pistolet de distribution que lessence est pompe. Si le pistolet est dans son tui de rangement et si la gchette est presse, lessence nest pas pompe. La distribution de lessence un client est termine quand celui-ci remet le pistolet dans son tui. La mesure de lessence distribue se fait par un dbitmtre. Quatre types de carburants sont proposs : diesel, sans plomb avec un indice doctane de 98, sans plomb avec un indice doctane de 95, et plomb. Le paiement peut seffectuer en espces, par chque ou par carte bancaire. En fin de journe, les transactions sont archives. Le niveau des cuves ne doit pas descendre en dessous de 5 % de la capacit maximale. Sinon les pompes ne peuvent plus tre armes.
37
2010 Pearson Education France UML2, 3e dition Benot Charroux, Aomar Osmani, Yann Thierry-Mieg
Solution
P Pour un systme t complexe, il vaut mieux se concentrer sur les fonctions essentielles puis passer aux cas moins importants.
(figure 1.29).
Figure 1.29 Se servir de lessence : solution avec deux cas. Client inclut Se Servir Armer pompe Pompiste
38
Larmement de la pompe est indispensable, sinon lessence ne peut tre distribue, do la relation dinclusion entre les cas Se servir et Armer pompe . Larmement de la pompe se fait en une seule action pour le pompiste : celle darmer la pompe en appuyant sur un bouton. La description de larmement se rsume donc une squence trs sommaire dactions. Faut-il alors reprsenter cela par un cas dutilisation ? Largument qui fait pencher pour le maintien du cas Armer pompe est que larmement est une opration bien isole des autres fonctions : il sagit dinitialiser la pompe et donc de piloter des priphriques (mcaniques, lectroniques). Vu sous cet angle, larmement est suffisamment complexe et bien isol des autres fonctions pour en faire un cas (figure 1.31). Le pompiste est un acteur secondaire du cas Armer pompe (cest un cas interne pour lequel le pompiste est consult). Larmement de la pompe nest possible que si le niveau de la cuve est suffisant. Un dtecteur de niveau (priphrique externe au systme informatique) est ncessaire. Ce priphrique est reprsent par lacteur Capteur niveau
2010 Pearson Education France UML2, 3e dition Benot Charroux, Aomar Osmani, Yann Thierry-Mieg
cuve pour armement . Il est secondaire car linformation sur le niveau de la cuve ne lui est pas destine. Si le niveau est trop bas, cest le pompiste qui doit en tre inform. Il saura ainsi ce qui empche larmement de la pompe. La vrification du niveau de la cuve est importante pour le systme. De plus, cette opration constitue une transaction bien isole des autres fonctions (il sagit de contrler un priphrique matriel). Cest la raison pour laquelle on dcide de crer un cas Vrifier niveau cuve pour armement . Pour transmettre le niveau de la cuve au pompiste, il faut relier lacteur Pompiste au cas Vrifier niveau cuve pour armement . Le pompiste est inform que le niveau est trop bas, mais la vrification doit tre automatique pour que les pompes soient ventuellement bloques. Une relation dinclusion intervient donc entre les cas Armer pompe et Vrifier niveau cuve pour armement (figure 1.31).
informatique de la station-service sont le montant, la date de la transaction et le mode de paiement. Comment reprsenter cela dans un diagramme de cas dutilisation ? Une premire solution (prsente la figure 1.31) consiste crer un cas gnral appel Payer , et trois cas particuliers relis par une relation de spcialisation au cas Payer . Chacun des trois cas reprsente un mode de paiement. Une autre solution (prsente la figure 1.30) repose sur un cas, Payer , qui se droule jusquau choix du mode de paiement, puis, selon le type de paiement, un des trois modes est activ ( Payer en espces , Payer par chque ou Payer par carte bancaire ). Ces trois cas sont typiquement des extensions du cas Payer , o lextension est soumise condition.
Figure 1.30 Utilisation de relations dextension pour modliser le paiement.
Payer Points dextension : - paiementEspce, - paiementParChque - paiementParCarteBancaire {les trois extensions sexcluent mutuellement et une extension intervient au tout dbut du paiement} Condition : {si le client choisit de payer en espce} Point dextension : paiementEnEspce
Condition : {si le client choisit de payer par carte bancaire} Point dextension : paiementParCarteBancaire tend tend tend
Payer en espces
Condition : {si le client choisit de payer par chque} Point dextension : paiementParChque
Ces deux solutions sont possibles. Il est difficile de dire laquelle est la meilleure. La suite de lexercice se fonde arbitrairement sur la reprsentation avec des relations de gnralisation (figure 1.31). Le modlisateur se retrouve rgulirement face ce dilemme. La rponse est souvent la mme : peu importe la faon de modliser un systme du moment que le modle est correct un modle est correct sil montre une solution qui satisfait le matre douvrage ainsi que les futurs utilisateurs du systme.
pompiste. Attardons-nous un instant encore sur le paiement par carte bancaire. Il faut de toute vidence faire figurer un acteur supplmentaire qui reprsente la banque, car elle interagit avec le systme sans en faire partie. Cest un acteur secondaire qui est sollicit uniquement pour confirmer le bon droulement de la transaction. Quel est le rle de cet acteur ? Le plus souvent, les solutions de paiement par carte bancaire sont disponibles cls en main sur le march. Elles incluent un lecteur de cartes ainsi quun logiciel pour le piloter. Le matre duvre doit proposer plusieurs solutions prsentes sur le march au matre douvrage, et ventuellement une solution propritaire si aucune solution du march ne lui convient. Le matre douvrage dcidera. Dans le cadre de cet exercice, dfaut de pouvoir dialoguer avec un matre douvrage, nous choisissons lachat dune solution cls en main pour le paiement par carte bancaire. Dans ce cas, le client, lorsquil saisit le code de sa carte, ninteragit plus directement avec le systme informatique de la station-service. Ainsi, quel que soit le mode de paiement, tout passe par lintermdiaire du pompiste. Le client nest donc pas un acteur du systme. Le calcul automatique du montant payer peut se faire ds que le client raccroche le pistolet (ce qui intervient la fin du cas Se servir ). Pour indiquer le moment o le montant est calcul, on peut ajouter une relation dextension entre les cas Se servir et Payer , avec un point dextension qui prcise le moment o le calcul du montant intervient, comme le montre la figure 1.31. Le paiement peut aussi intervenir avant de se servir. Dans ce cas, il est possible dajouter un deuxime point dextension.
41
acteur, qui est forcment en dehors du systme. Il est toutefois possible quun vnement dtat active un cas dutilisation condition que ce cas soit interne au systme. Une faon de reprsenter un cas de ce type consiste le relier dautres cas via des relations dextension et faire figurer comme condition dextension lvnement dtat. Cest cette solution qui a t adopte entre les cas Se servir et Payer , en considrant ce dernier comme un cas interne vis--vis du cas Se servir .
Nom de lacteur Rle
Client Pompiste Capteur niveau cuve pour armement Capteur niveau cuve pour remplissage Timer Banque
Acteur principal du cas dutilisation Se servir . Reprsente le client qui se sert de lessence. Acteur principal des cas Payer et Vrier niveau cuve pour remplissage . Acteur secondaire pour le cas Armer pompe . Acteur secondaire du cas Vrier niveau cuve pour armement . Acteur secondaire du cas Vrier niveau cuve pour remplissage . Acteur secondaire du cas Archiver les transactions . Acteur secondaire du cas Payer par carte bancaire .
42
2010 Pearson Education France UML2, 3e dition Benot Charroux, Aomar Osmani, Yann Thierry-Mieg
Station-Service Vrifier niveau cuve pour armement Vrifier niveau cuve pour remplissage
Client
43
2010 Pearson Education France UML2, 3e dition Benot Charroux, Aomar Osmani, Yann Thierry-Mieg