la
Je tiens remercier mon chat et mon poisson rouge ( jusqu' ce que mon chat ne le mange ) pour l'aide et le soutien moral qu'ils m'ont apports.
www.developpez.c.la
Index
Dmarche danalyse et de conception avec le langage UML ______________________ 1 Index _____________________________________________________________________ 2 Prambule_________________________________________________________________ 3 Objectif global dune dmarche danalyse et de conception objet _____________________ 4 Les tapes de la dmarche ____________________________________________________ 5 Exemple trait_____________________________________________________________ 11 Dfinition des besoins ______________________________________________________ 12
premire tape : les exigences et les acteurs ________________________________________ 12 deuxime tape : les intentions dacteurs___________________________________________ 16 troisime tape : le diagramme de use case _________________________________________ 17 quatrime tape : use case description de haut niveau________________________________ 20
L'analyse_________________________________________________________________ 21
cinquime tape : use case description de bas niveau_________________________________ 21 septime tape : diagramme de classe danalyse_____________________________________ 29 huitime tape : Le glossaire_____________________________________________________ 33 neuvime tape : les contrats d'opration __________________________________________ 34
douzime tape : le diagramme de classe de conception ___________ Erreur ! Signet non dfini.
www.developpez.c.la
Prambule
Cette dmarche de conception est la dmarche propose par Craig LARMAN. Je lai connue travers le cours Analyse et conception avec UML et les Patterns " de la socit Valtech. Jai ici repris cette dmarche, je lai lgrement simplifie, et jai apport les informations ncessaires pour que des stagiaires de lAFPA puissent simprgner de cette dmarche. Dans un premier temps jai repris lexercice du cours Valtech. Souhaitons quil y ait un deuxime temps Les formateurs qui dsirent former leurs stagiaires cette dmarche devraient suivre le cours pr cit, afin de prendre du recul par rapport la dmarche. Je recommande tous la lecture des ouvrages de Craig LARMAN sur UML.
www.developpez.c.la
Nous verrons que chaque couche dfinira un ou des contrleurs pour la rendre indpendante des autres. Une tude a montr que dans certaines entreprises les rgles mtier changeaient de 10% par mois ! ! ! Il est facile de comprendre alors la raison de ce dcouplage des objets mtiers. Les objets ont tendance tre stables dans le temps, par contre les IHM et base de donnes peuvent galement tre changes sans que lon touche au mtier ni aux rgles de lentreprise. Cette architecture ne sappliquera bien sr pas toutes les applications, cest prendre comme un exemple complet.
www.developpez.c.la
www.developpez.c.la Nous raliserons enfin le diagramme de classe de conception, en tenant compte nouveau des GRASP patterns. Ceci peut remettre en cause le diagramme de classe prcdemment tabli.
www.developpez.c.la
Processus simplifi
D E F I N I R B E S O I N S nom : effectuer un achat acteur principal : client acteur secondaire : caissier vnement dclencheur : rle du use case : terminaison du use case :
A N A L Y S E
nom : effectuer un achat acteur principal : client acteur secondaire : caissier vnement dclencheur : rle du use case : terminaison du use case : rfrences croises : pr conditions : scnarios et alternatives :
:caissier
:magasin
Diagramme de squence
Contrat dopration
C O N C E P T I O N
1 : m()
Diagramme collaboration
www.developpez.c.la
Processus dtaill
ref R1
Exigences
payer retourner
ref
fonction
intention
acteur
Intentions dacteurs
nom : effectuer un achat acteur principal : client acteur secondaire : caissier vnement dclencheur : rle du use case : terminaison du use case :
www.developpez.c.la
Processus danalyse
nom : effectuer un achat acteur principal : client acteur secondaire : caissier vnement dclencheur : rle du use case : terminaison du use case : rfrences croises : pr conditions : scnarios et alternatives :
Diagramme dactivit
:caissier
:magasin
Diagramme de squence
Contrat dopration
www.developpez.c.la
Processus de conception
attente
actif
Diagramme dtat
1 : m()
Diagramme collaboration
www.developpez.c.la
Exemple trait
Nous allons traiter l'ensemble de la dmarche d'analyse objet sur un mme exemple. Cet exemple a t pris dans la littrature ( voir la bibliographie ). Nous ne traiterons pas l'ensemble de l'exemple, mais l'ensemble de la dmarche. Ralisation d'une caisse informatise. Un commerant de produits touristiques ( souvenirs, livres rgionaux, ...) dsire informatiser sa caisse. Chaque type de produit possde un code unique ( tiquette code barres ), et un mme prix pour tous les produits de ce type. L'objectif est de faciliter la maintenance des prix des articles. Chaque type de produit est rfrenc dans un catalogue, avec son prix associ. Quand le prix d'un produit doit tre modifi, le manager modifie son prix dans le catalogue, puis sur l'tagre o il est rang. Le caissier s'identifie pour dmarrer la caisse ( avec mot de passe ). La caisse fera les fonctions habituelles d'une caisse : calcul du sous total, calcul du total, possibilit de rentrer plusieurs articles ayant un mme code, retour d'une marchandise avec le ticket de caisse. Le paiement se fera en monnaie seulement. La caisse permet d'diter des rapports : Le reu qui sera donn uniquement pour une vente effective. Il contient le nom du magasin, un message de bienvenue, la date et l'heure. Puis pour chaque vente il donne le code du produit, la description du produit, le prix unitaire, la quantit et le sous total. Enfin nous y trouvons le total TTC. Le rapport quotidien de l'ensemble des ventes ( date, heure, total ). Le rapport quotidien dtaill: liste de l'ensemble dtaill des ventes de la journe. La caisse s'excute sur un PC. Une douchette permettra de lire les codes barres. Les informations peuvent tre rentres au clavier, ou la souris.
www.developpez.c.la
Dans la rfrence R veut dire Requirement (cest dire exigence en Anglais). La modification du prix sur une tagre n'est pas traite par le systme. Donc ce n'est pas une exigence fonctionnelle pour notre logiciel.
www.developpez.c.la Se connecter en grant permet de modifier les prix des articles. Ce n'est pas permis pour un caissier. Dfinir les droits des usagers n'est pas indiqu dans le texte, mais est ncessaire au bon fonctionnement du logiciel. Le PC ainsi que la douchette sont des exigences d'architecture, elles ne seront pas prises en compte ici. L'initialisation de la caisse est une fonctionnalit masque. Entrer et supprimer un produit du catalogue sont des fonctions tellement videntes que le client n'en parle pas. Elles doivent cependant tre intgres au logiciel. Les informations rentres au clavier ou la souris sont des exigences d'interface qui seront prises en compte ultrieurement. Notons que les exigences ne sont pas classes ici. Regardons maintenant les acteurs qui gravitent autour de notre application. Les acteurs seront vus dans le sens processus transversal de l'entreprise ( workflow ). Prfrer un acteur humain plutt que le dispositif lectronique devant lequel il est. L'acteur humain a bien une intention quand il fait quelque chose. Un dispositif lectronique beaucoup moins en gnral.
www.developpez.c.la Ce diagramme est un diagramme de classe qui permet de lister les diffrents acteurs. Il se peut que notre liste ne soit pas complte, une itration suivante du processus nous permettra de complter ce schma.
Nous avons dfini 5 acteurs. N'oublions pas qu'un acteur reprsente un rle, et non pas une personne. Le Manager peut tre aussi l'Administrateur (notion de rle). Un Salari est soit un Caissier, soit le Manager. Il se peut que dans la premire itration l'analyste ne remarque pas ceci. C'est souvent dans une itration ultrieure que nous verrons les gnralisations d'acteurs. Nous connaissons les acteurs, et les exigences de l'application. Nous pouvons donc faire un diagramme de contexte dynamique. Ce diagramme de contexte qui dfinit les interactions entre les acteurs et le systme (pas encore systme informatique car nous en sommes au processus mtier donc dcouvrir les uses cases) sera ralis en UML par un diagramme de collaboration. Il reprsente le fonctionnement de l'entreprise. Ici nous ne prciserons pas forcment l'ordre et le squencement des oprations.
grer un retour d'article diter un ticket enregis trer un produit enregis trer une quantit grer un paiem ent
: Client
: Cais s ier
retourner un article payer un achat m agas in grer le catalogue initialis er les cais s es editer des rapports
www.developpez.c.la Nous pouvons aussi en complment tracer un diagramme de classe des acteurs du systme pour prciser les cardinalits des diffrents acteurs du systme. Nous utiliserons alors un diagramme de classes de UML. Ce diagramme s'appelle un diagramme de contexte statique.
0..* Client (from Use Case View) est dans est la caisse 1 Caissier
0..1 0..1 m agas in 0..* travaille dans 0..* 1..* 0..* gre
adm inistre 1
www.developpez.c.la
Nous allons maintenant regrouper les exigences en intentions d'acteurs. Une intention d'acteur est un enchanement de fonctions qui rend un service complet un acteur ( et pas une fraction de service ). Rfrence R1 R13 R14 R16 R5 R10 R11 R8 R9 R12 R7 R6 R2 R3 R15 R4 Fonction Modifier le prix d'un produit Entrer un produit au catalogue Supprimer un produit du catalogue Initialiser la caisse Retourner une marchandise Se connecter la caisse Se connecter en grant Editer un rapport succinct Editer un rapport dtaill Dfinir les droits des usagers Editer un ticket de vente Payer l'achat Calculer le total d'une vente Rentrer une quantit par article Enregistrer un produit la caisse Calculer le sous total d'un produit Intention d'acteur Grer le catalogue Grer le catalogue Grer le catalogue Initialiser la caisse Retourner un article Se connecter Se connecter Editer un rapport Editer un rapport Dfinir les profils Effectuer un achat Effectuer un achat Effectuer un achat Effectuer un achat Effectuer un achat Effectuer un achat Acteurs Manager
Ici dans le tableau la notion d'acteur repose sur l'intention d'acteur, pas sur la fonction. Ainsi toutes les lignes d'une mme intention d'acteur ne sont-elles pas renseignes pour les acteurs. Ici nous distinguerons l'acteur principal des acteurs secondaires en soulignant l'acteur qui est l'origine de l'intention. Nous allons bien sr vrifier que les exigences dfinies prcdemment sont toutes incluses dans les intentions d'acteur. La traabilit est un facteur essentiel des phases de dfinition des besoins et de celle d'analyse. Nous avons les intentions d'acteurs, nous pouvons donc faire un diagramme de Use Case. Toute cette dmarche peut tre faite d'une autre manire: Nous dterminons les acteurs et les exigences A partir des exigences nous faisons un diagramme d'activit ( UML ) en colonnes ( swim lane ). Chaque colonne correspond un acteur. Cela nous permet de dfinir les responsabilits des acteurs, donc de dfinir les uses cases correspondant.
www.developpez.c.la
troisime tape : le diagramme de use case Un use case est une intention d'acteur. Quand un acteur dmarre un use case, il a une intention prcise. Quelle est cette intention? Effectuer un achat est une intention qui recouvre un certain nombre d'exigences. C'est une unit d'intention complte d'un acteur: c'est donc un use case. Payer ses achats n'est pas une intention complte d'acteur. Nous n'allons pas dans un magasin pour payer, mais bien pour faire des achats. C'est donc une partie ( et pas la plus agrable ) de effectuer un achat. Ce n'est donc pas un use case. L'acteur dclencheur de l'achat est le client. C'est lui qui est venu effectuer un achat. Le diagramme de uses cases est la reprsentation graphique du tableau d'intention d'acteurs prcdent. Diagramme de use case
Effectuer un achat
Se connecter
Caissier
les flches unidirectionnelles indiquent un lien principal, indiquent un lien principal, cest dire dire l'acteur principal case c'est lacteur principal du usedu use case.
Grer le catalogue
Salari
Manager
Initialiser la caisse
Editer un rapport
www.developpez.c.la Quand nous dfinissons les uses cases, il faut faire extrmement attention la notion de point de vue. Pour le magasin le client est un acteur essentiel. Par rapport au systme informatique ce n'est pas un acteur. L'acteur qui est en interface avec le systme informatique est souvent le caissier, mais jamais le client. Nous voulons dfinir le systme informatique du magasin, pour cela il faut partir de l'ensemble des acteurs qui gravitent autour du magasin, sinon nous risquons d'oublier un certain nombre de fonctionnalits. Le fait de retourner un article est un souci du client, pas du caissier. Si nous ne prenons le point de vue que du systme informatique nous risquons de ne pas penser ce problme. Dans la phase d'analyse nous dlimiterons le systme informatique dans le processus global du magasin. Le schma de uses cases peut faire apparatre: Des fonctionnalits bien prcises qui se retrouvent parmi plusieurs uses cases. Nous parlerons alors de use case included ou subalterne. Un tel use case ne peut tre li qu' un use case, pas un acteur. ( nous mettrons alors le strotype include sur le lien use case vers use case subalterne ).
avoir solde
exem ple de use case subalterne pour un guichet autom atique de banque
authentification
Un use case peut ncessiter le service d'un autre use case. Le use case dont nous avons besoin du service tend le use case demandeur. Nous utiliserons le strotype extend. Ici les uses cases peuvent tre sollicits par des acteurs.
<<extend>>
gestion client
exem ple de use case tendu pour un systme de gestion de com mande. Quand nous rentrons une com mande, il faut pouvoir crer le client s'il n'existe pas.
www.developpez.c.la Nous pouvons avoir des cas de spcialisation de cas d'utilisation. Plusieurs uses cases peuvent avoir une trame commune et donc hriter d'un use case parent et abstrait.
retrait euros les uses cases retrait euros et retrait dollars hritent de retrait. Retrait est le use case gnrique des retraits d'argent. Ce use case est abstrait, un acteur ne fait pas un retrait.
retrait dollars
Retrait
Ces spcialisation, include et extend ne se mettent bien souvent pas dans le premier cycle de dveloppement, car c'est l'tude de l'application qui mettra en vidence ces caractristiques. Nous verrons plus tard ces notions de cycle dans le droulement dune dmarche comme celle-ci.
www.developpez.c.la
quatrime tape : use case description de haut niveau Il nous faut maintenant dfinir les uses cases. Cette description est une description de haut niveau qui se fait avant l'analyse. Nous sommes toujours dans la dfinition du besoin. Une description de haut niveau d'un use case est une description textuelle qui comprend les chapitre suivants: Nom du Use Case: Acteur principal: Acteurs secondaires: Evnement dclencheur du Use Case: Rle du Use Case: Terminaison du Use Case: Cette description est assez succincte 3 ou 4 lignes maximum pour le rle du use case. C'est une description narrative d'un processus mtier. Cette description ne repose pas sur la technologie objet. Les cas d'utilisation ( autre nom pour un use case ) vus dans l'analyse sont dits essentiels. Ici nous ferons donc la description de cas d'utilisation de haut niveau essentiels. Essentiel signifie que l'on ne fait pas rfrence la technologie, que le use case dcrit le cur du mtier, ils sont appels use case pour 100 ans. De haut niveau veut dire que l'on en fait une description brve, sans entrer dans le dtail du squencement du use case. Nous verrons par la suite des uses cases dtaills ( en phase d'analyse ), et des uses cases rels ( en phase de conception ). Description d'un use case essentiel de haut niveau: Nom du Use Case: Acteur principal: Acteurs secondaires: Evnement dclencheur du Use Case: Rle du Use Case: Terminaison du Use Case: Effectuer un achat Client Caissier Un client arrive la caisse avec ses achats Le caissier passe tous les articles, fait la note, et encaisse le paiement. Le client a pay et a ramass tous ses articles.
www.developpez.c.la
L'analyse
Aprs une premire bauche des besoins des clients, il va falloir approfondir ses besoins, examiner les diffrents scnarios des uses cases ( ventuellement avec un diagramme d'activit pour exprimer ces diffrents scnarios ), tenir compte des traitements exceptionnels et cas d'erreur. Il va tre ncessaire de regarder le squencement des oprations d'un point de vue fonctionnel, pour voir comment les diffrents acteurs interagissent avec le logiciel, laide des diagrammes de squence bote noire ( la bote noire c'est le systme informatique dvelopper ). Il est alors ncessaire de distinguer les diffrents objets qui collaborent dans notre systme informatique ( avec un diagramme de classe ). Enfin nous allons dtailler le rle des oprations en dfinissant des contrats d'opration ( soit sous forme textuelle, soit sous forme de diagramme de squence ). Nous aurons alors tous les lments pour passer la conception. Nous n'avons ici comme souci que de dtailler les besoins du client pour s'en imprgner, afin de pouvoir le formaliser et le prciser. cinquime tape : use case description de bas niveau La description dtaille d'un use case permet de bien dcrire les enchanements des services rendus par le logiciel pour un usage prcis. N'oublions pas que nous restons au niveau essentiel, c'est dire que nous ne donnerons pas de solution au problme, nous ne faisons que prciser sa description. Nous sommes toujours dans l'espace du problme, pas dans celui de la solution. Une description dtaille de use case comprend: Nom du Use Case: Acteur principal: Acteurs secondaires: Evnement dclencheur du Use Case: Rle du Use Case: Terminaison du Use Case: Les rfrences croises des exigences: Les pr conditions ncessaires au fonctionnement du use case: Description complte du use case, avec les diffrents scnarios: Cette description intgre les cas d'erreur ( traits par le use case ) et les exceptions ( forant la sortie du use case ). Contraintes d'IHM ( optionnel ): Attention de ne pas dcrire l'interface ici, mais bien de prciser des lments prendre en compte lors de la ralisation des interfaces. Contraintes non fonctionnelles ( optionnel ): Ici nous prendrons en compte les dimensionnements, les performances attendues, Ceci permettra de mieux valuer les contraintes techniques. La description complte du use case donne la priorit aux choses que les acteurs peroivent. Nous dcrirons les actions des acteurs en commenant par l'acteur principal qui initie le use case, puis nous donnerons les rponses du systme ( vu comme une bote noire ). Le premier travail se fait sur un cas nominal ( c'est dire idal ). Les cas d'erreur ( avec correction et reprise ) et les exceptions ( avec abandon du use case ) sont traits ensuite. Le formalisme est textuel et prend la forme suivante:
www.developpez.c.la
Actions des acteurs 1. L'acteur principal fait 3. L'acteur principal calcule 4. L'acteur secondaire traite
Traitement des cas d'erreur et d'exception: A l'tape 2 si le code de alors le systme renvoie un message et l'acteur principal refait A l'tape 4 si alors le systme affiche et le use case s'arrte En premier lieu nous voyons les changes entre le systme et les acteurs, ainsi que la chronologie et l'enchanement des actions, dans le cas nominal. Dans un deuxime temps nous listons les cas d'erreur ( avec traitement de rcupration ) et les traitements d'exception avec arrt du use case. Nous restons bien fonctionnel car nous ne dcrivons pas comment est ralis le systme, mais comment sont raliss les services qu'il rend. Notion de scnario: un use case est un regroupement d'actions plus lmentaires qui permet de traiter une intention d'acteur assez gnrale. Un scnario est une ralisation du use case, donc une "intention lmentaire". Par exemple pour une gestion de compte client dans une banque, nous avons un use case grer les comptes. Nous avons plusieurs scnarios: crer un compte, consulter un compte, modifier un compte, Pour chacun des scnarios il va falloir faire une description dtaille de use case ( avec traitement d'erreur et d'exception pour chacun ). Un diagramme d'activit va permettre de montrer l'ensemble d'un use case, en regroupant l'ensemble des scnarios de ce use case. Exemple de description d'un use case ( effectuer un achat ): Nom du Use Case: Acteur principal: Acteurs secondaires: Evnement dclencheur du Use Case: Rle du Use Case: Effectuer un achat Client Caissier Un client arrive la caisse avec ses achats Le caissier passe tous les articles, fait la note, et encaisse le paiement. Le client a pay et a ramass tous ses articles. R2, R3, R4, R6, R7, R15
Les pr conditions ncessaires au fonctionnement du use case: La caisse est allume et initialise. Un caissier est connect la caisse. Description complte du use case, avec les diffrents scnarios: Ici il n'y a qu'un scnario possible. Nous verrons dans l'exemple suivant un use case avec plusieurs scnarios pour mettre en vidence le diagramme d'activit.
www.developpez.c.la
Actions des acteurs Rponses du systme 1) Le client arrive la caisse avec les articles qu'il dsire acheter. 2) Le caissier enregistre chaque article. 3) Le systme dtermine le prix de l'article, les informations sur l'article et ajoute ces informations la transaction en cours. Il affiche ces informations sur l'cran du client et du caissier. 4) Le caissier indique la fin de vente quand il 5) Le systme calcule et affiche le montant n'y a plus d'article. total de l'achat. 6) Le caissier annonce au client le montant total. 7) Le client donne au caissier une somme d'argent suprieure ou gale la somme demande. 8) Le caissier enregistre la somme donne par 9) Le systme calcule la somme rendre au le client. client. 10) Le caissier encaisse la somme remise par 11) Le systme enregistre la vente effectue le client et rend la monnaie au client. 12) Le systme dite le ticket de caisse 13) Le caissier donne le ticket de caisse au client 14) le client s'en va avec les articles qu'il a achets. Variantes du scnario nominal ( celui qui se droule quand tout se passe bien ). Paragraphe 2: il peut y avoir plusieurs articles d'un mme produit. Le caissier enregistre le produit ainsi que le nombre d'articles. Paragraphe 3: s'il y a plusieurs articles d'un mme produit le systme calcule le sous total. Paragraphe 2: Le code produit peut tre invalide. Le systme affiche un message d'erreur. Paragraphe 7: Le client n'a pas la somme d'argent suffisante. La vente est annule. Remarque: Ceci est une exception qui termine anormalement le use case. Paragraphe 8: Le caissier n'a pas la monnaie pour rendre au client. Il va faire la monnaie la caisse principale. Remarque: ici nous avons fait apparatre un nouvel acteur: le caissier principal ( ce sera probablement la mme personne que le manager mais un acteur diffrent ). Paragraphe 12: le systme ne peut pas diter le ticket de caisse. Un message est affich au caissier, et celui-ci change le rouleau de papier. Paragraphe 14: remarquons que si le client repart sans ses articles, il est probable que le caissier les lui mettra de cot. Cet vnement ne change rien notre systme futur. Ce genre d'incident ne sera pas pris en considration.
www.developpez.c.la En terme de reprsentation nous pouvons prfrer mettre une colonne par acteur pour bien voir les responsabilits des acteurs vis vis du systme. Ici cela donnerait: Actions du client Actions du caissier 1) Le client arrive la caisse 2) Le caissier enregistre avec les articles qu'il dsire chaque article. acheter. Rponses du systme 3) Le systme dtermine le prix de l'article, les informations sur l'article et ajoute ces informations la transaction en cours. Il affiche ces informations sur l'cran du client et du caissier. 4) Le caissier indique la fin de 5) Le systme calcule et vente quand il n'y a plus affiche le montant total de d'article. l'achat. 6) Le caissier annonce au client le montant total. 7) Le client donne au caissier 8) Le caissier enregistre la 9) Le systme calcule la une somme d'argent somme donne par le client. somme rendre au client. suprieure ou gale la somme demande. 10) Le caissier encaisse la 11) Le systme enregistre la somme remise par le client et vente effectue rend la monnaie au client. 12) Le systme dite le ticket de caisse 13) Le caissier donne le ticket de caisse au client 14) le client s'en va avec les articles qu'il a achets. Cette reprsentation met en vidence que le client n'a pas accs au systme informatique. Contraintes d'IHM ( optionnel ): La dsignation de l'article et son prix ( ventuellement le sous total si plusieurs occurrences du mme article ) sont affichs chaque article au caissier et au client. Le total est affich galement aux deux. Contraintes non fonctionnelles ( optionnel ): Le magasin reoit en moyenne 200 clients par jour. Chaque client achte en moyenne 10 articles.
www.developpez.c.la Voici un exemple de diagramme d'activit reprsentant la runion de scnarios modlisant un use case. Nous allons grer le catalogue en utilisant un diagramme d'activit pour reprsenter l'ensemble des scnarios ( un scnario est un droulement d'un use case de bout en bout, en commenant par le dbut et se terminant par la fin. ) Un scnario supporte aussi des variantes et des exceptions. Chaque scnario peut tre dcrit comme le use case ci-dessus. Mais il est bon de regrouper l'ensemble de ces scnarios dans un diagramme d'activit pour avoir une vue complte du use case.
supprim er un article
dtruire la rfrence
saisir le code
vrifier le code
vrifier le code
enregistrer le produit
ajouter un article
ralisation d'un diagram me d'activit ( ici ce n'est pas la norm e UML car la version de rose utilise ne supporte pas les diagram mes d'activit ). Ce schm a a t construit partir d'un diagramm e d'tat.
Note :
commentaire
www.developpez.c.la Les notes nous montrent les trois scnarios possibles pour ce use case. Pour chacun de ces scnarios il est ncessaire de faire le tableau prcdent pour mieux dtailler le use case dans le scnario particulier. En particulier il faut penser aux cas d'erreur et aux exceptions. Remarquons qu'un certain nombre de symboles du diagramme d'activit ne sont pas disponibles comme l'alternative, et les conditions de cette alternative.
www.developpez.c.la sixime tape : diagramme de squence bote noire Les uses cases ont t valids par le client. Nous allons donc changer notre point de vue ( workflow c'est dire processus mtier ) pour adopter un point de vue systme informatique. Nous abandonnons donc les vnements mtier pour nous intresser aux vnements informatiques. Nous allons dvelopper un diagramme de squence par scnario de use case dtaill. Ces diagrammes de squence sont dits bote noire car nous ne savons toujours pas comment sera fait le systme informatique. Ici nous prcisons les changes entre les acteurs utilisateurs du systme informatique et le systme proprement dit. Les interactions des acteurs directement sur le systme sont appeles des vnements. Les actions engendres par le systme suite ces vnements sont appeles des oprations. A un vnement correspondra une opration. Dans la terminologie message et vnement sont quivalents entre eux, ainsi que mthode et opration. Les diagrammes de squence seront agrments de notes et commentaires qui permettront d'illustrer le diagramme: explication de contrles, itrations, logique, choix, Rappelons qu'un diagramme de squence bote noire est de la forme:
: Salari
login ( nom , m otpasse ) Le login est accept si le Lele login connu, et que salari login est accept si le salari est est accept si le est mot deet connu,est de salari p)asse et son connuest si son motson passe correct. de passe est correct est correct mot
message bienvenue
logout()
vnement
Les valeurs de retour se formalisent de diffrentes manires suivant la version d'UML choisie. Ici j'ai pris un exemple de notation la plus simple possible. Attention ne pas confondre avec un vnement ( sens acteur vers systme informatique ). En fin de phase nous connaissons les changes entre les utilisateurs et le systme informatique. Nous pourrions construire une maquette des crans pour les acteurs. Formellement nous le ferons en phase de conception. Notre maquette d'cran serait une maquette "fonctionnelle" ( cest dire que le dessin de lcran nest pas fig ).
www.developpez.c.la Diagramme de squence bote noire du use case dtaill "effectuer des achats":
si code rfrenc dnom brer ( quantit ) si quantit > 1 sous total = prix * quantit
www.developpez.c.la
Le diagramme de classes est un des documents les plus importants, voire le plus important de l'analyse d'un logiciel par une mthode objet. C'est le premier document qui est dans le monde des objets ( les acteurs n'tant pas forcment reprsents dans le systme informatique ). C'est donc l'entre dans le monde des objets. Ce diagramme est un diagramme de classe d'analyse. Il ne reprsente pas les classes Java ou C++ que nous dvelopperons par la suite. Ici nous nous intressons aux classes du domaine mtier, c'est dire des objets dont on parle dans le cahier des charges et dans les uses cases principalement. Nous ne nous intressons pas aux objets informatiques dans ce diagramme ( sauf bien entendu si le mtier est l'informatique !! ). Cela viendra en son temps, dans le diagramme de classe de conception. Quand nous passerons la conception des classes disparatront, d'autres apparatront, dont les classes informatiques ( collections, ). C'est normal. En phase d'analyse, nous voulons simplement faire un diagramme de classe d'objets manipuls dans le domaine mtier considr. Dans ce diagramme de classe les oprations ne sont pas reprsentes ( ce sera lors de la conception ). Ce diagramme montrera les concepts du domaine mtier, les liens ( associations ) entre ces concepts ( avec leur cardinalit ou multiplicit ), et les attributs de ces concepts ( souvent sous forme de donnes simples ). Le but de ce diagramme est de clarifier le domaine mtier du client, et de se familiariser avec ce domaine. Dans une analyse structure nous dcomposons l'analyse suivant les tches ou les fonctions. Dans une application dominante gestion, nous dcomposerons notre application suivant les donnes, et les traitements. Ici nous analyserons la complexit du domaine en regardant les objets mtier et leurs interactions entre eux. Comment identifier les bons objets mtier pour construire notre diagramme de classe d'analyse? Il va falloir recenser dans les documents de dfinition des besoins et dans les documents d'analyse l'ensemble des objets mtier. Les noms ou groupes nominaux vont tre de bons candidats pour tre lus au titre de classe, objet ou attribut. Cependant, il faut tre prudent car il y aura aussi un certain nombre de faux amis et de doublons. Voici une dmarche de slection des classes candidates: Par use case, nous raliserons un diagramme de classe, le diagramme final tant la superposition de tous ces diagrammes. Pour un use case nous recenserons les groupes nominaux rencontrs. Nous identifierons alors: Les classes ( noms communs ). Les objets ( noms propres ou nom rfrencs ). Les attributs ( donnes simples qui qualifient une classe ou un objet ). Les lments qui sont trangers notre problme ou qui n'y ont pas de rle rel.
www.developpez.c.la
Les " classes fonctionnelles " qui ne sont porteuses d'aucune information, mais seulement de traitement, qui ne sont souvent pas des classes de notre diagramme. Par exemple gestionnaire du planning, dcodeur de message,
Il est parfois difficile de savoir si une information est un attribut d'une classe ou une classe ( avec une association avec la classe ). Dans le doute il vaut mieux faire une classe, quitte revenir en arrire dans une itration ultrieure. Par exemple pour la classe personne l'ge est un attribut ( donne simple ) l'adresse tant priori une donne complexe sera plutt une autre classe associe la personne. Les entits suivantes peuvent prtendre devenir des classes : - les objets physiques (produit), - les transactions (rservation, commande,.), - les lignes de transaction (ligne de commande), - les conteneurs (catalogues, lots,), - les organisations (services, dpartements,.), - les acteurs ou les rles (client, fournisseur.), - les regroupements en abstraction (modle, genre, type, catgorie.), - les vnements (vol,)
Pour le use case " effectuer un achat " voici la liste des classes slectionnes:
caissier
caisse
Paiement
vente
catalogue
ticket article
ligne de vente
www.developpez.c.la Nous ne grerons pas les exemplaires des articles. Nous applerons article un ensemble dexemplaires identifis par le mme code barre, et comportant des informations identiques (prix ). Nous allons maintenant rajouter les associations entre les classes, en donnant un intitul et des cardinalits ces associations. Notre but n'est pas de mettre jour toutes les associations entre les diffrentes classes, mais de noter les associations pertinentes pour comprendre le problme. Il faut privilgier les associations qui durent dans le temps, et dont la connaissance est ncessaire la comprhension du problme. Il faut viter les associations redondantes ou drivables d'autres associations. L'tablissement de ces associations nous amne poser des questions au client. C'est un des buts recherchs. Voici une possibilit de diagramme de classe avec ses associations.
caissier 0..1 utilise 0..1 caisse se fait partir 1 Paiement 1 paye par 1 vente gnre 1 effectue 0..1 1 1 1
catalogue
1 contient comprend
ticket 1
Sur ce diagramme de classe d'analyse il faut maintenant mettre les attributs des classes qui ont t reprs dans le cahier des charges, le diagramme de use case, ou dans le diagramme de squence bote noire du use case.
www.developpez.c.la
A priori, les attributs prsents dans notre diagramme de classe d'analyse sont des attributs simples. On pourra faire exception des donnes pures qui sont des regroupements de donnes simples ( ici code, adresse, prix ) . Les attributs qui ont un comportement sont des classes associes notre classe. Ceci ne prsage en rien du diagramme de classe de conception. Nous verrons ultrieurement ce que deviennent les associations dans ce schma Dans les attributs, il ne doit pas y avoir de clef sur un autre objet. Cela se reprsente par une association. Voici notre diagramme de classe enrichi des attributs d'analyse.
caissier 0..1 utilise 0..1 caisse 1 Paiement somme : rel 1 paye par 1 effectue 0..1 1 vente date : Date heure : Heure gnre ticket 1 contient 1 comprend 1..* ligne de vente quantit : entier 0..* est dcrite par 1 1 se fait partir 1
catalogue
www.developpez.c.la
huitime tape : Le glossaire Le glossaire rpertorie tous les termes et leur dfinition. Il n'y a pas de graphisme particulier pour ce document. Il peut tre fait sous la forme suivante: terme Effectuer un achat Quantit catgorie Use case Attribut description C'est le processus que suit un client pour effectuer ses achats dans le magasin. C'est un attribut de la classe ligne de vente qui donne le nombre d'occurrences d'un mme article lors d'un achat. C'est la classe qui reprsente une vente en cours ou quand elle est finie.
Vente
Classe
www.developpez.c.la
Nous allons maintenant tudier ce qui est fait dans le systme, pour chaque flche qui attaque le systme dans les diagrammes de squence. Notre but est de comprendre la logique de fonctionnement du systme. Les flches reprsentes dans les diagrammes de squence bote noire dclenchent des oprations sur le systme. Nous allons donc dfinir prcisment le rle de ces oprations en nous appuyant sur le diagramme de classe ( appel aussi modle de domaine ). C'est ce qui s'appelle des contrats d'opration. Le systme informatique a t vu comme une bote noire ( en particulier travers les diagrammes de squence ). Il serait, d'un point de vue fonctionnel, intressant de dcrire ce que fait le systme, en se basant sur le diagramme de classe, sans pour autant dcrire comment il le fait. Les contrats d'opration vont nous permettre de dcrire les changements d'tats du systme ( c'est dire les changements sur les objets et leurs associations ) quand les oprations ( issues des diagrammes de squence ) sont invoques par les acteurs. Un contrat d'opration est un document textuel qui dcrit les changements provoqus par une opration sur le systme. Le contrat d'opration est crit sous forme textuelle et comporte des pr conditions et des post conditions. Les pr conditions dcrivent l'tat du systme ncessaire pour que l'opration puisse s'effectuer. Les post conditions dcrivent l'tat du systme lorsque l'opration s'est acheve. Contrat d'opration type: Nom: Responsabilits: Exigences: Notes: Pr conditions: Post conditions: Nom de l'opration avec ses paramtres. Description du rle de l'opration. Liste des exigences dont le use case tient compte dans cette itration. Remarques diverses. Etat ncessaire du systme pour que l'opration se fasse. Etat du systme lorsque l'opration s'est droule entirement.
Les Pr conditions dcrivent l'tat du systme, c'est--dire l'tat des objets du systme comme dcrit dans le diagramme des classes d'analyse. Nous jouons l'opration sur le systme, en aveugle, et jusqu' sa fin. Notons les changements de l'tat du systme ( des objets et de leurs associations ) et nous obtenons les post conditions. Ces post conditions sont dcrites sous la forme "has been", c'est-dire l'objet X a t modifi, son attribut Y a t mis vrai. Les post conditions portent sur 6 clauses: Les objets crs. Les objets dtruits. Les associations cres. Les associations dtruites. Les attributs modifis. Les vnements d'affichage ( fonctionnels bien sr !!! ).
www.developpez.c.la Prenons un exemple simple pour traiter ces contrats d'opration. Modifier le prix d'un article au catalogue. Nom: Responsabilits: Exigences: Notes: Pr conditions: Post conditions: modifier (cecode, nouveauprix). modifier le prix d'un article de code donn, prsent dans le catalogue. R1, R13, R14 pour le use case grer le catalogue. Si le code ne correspond pas a un article du catalogue, un message d'erreur sera envoy au manager et l'opration s'arrte. Il y a un article correspondant au code donn. l'attribut prix de l'objet description article, dont le code est cecode, a t chang par nouveauprix.