19
Programmation avancée Unité d’enseignement NFP121 (6 crédits) Séance 1 La méthode UML

Programmation avancée

Embed Size (px)

DESCRIPTION

Programmation avancée

Citation preview

  • Programmation avance

    Unit denseignement NFP121 (6 crdits)

    Sance 1 La mthode UML

  • Le plus grand soin a t apport la ralisation de ce support pdagogique afin de vous fournir une information complte et fiable. Cependant, le Cnam Champagne-Ardenne n'assume de responsabilits, ni pour son utilisation, ni pour les contrefaons de brevets ou atteintes aux droits de tierces personnes qui pourraient rsulter de cette utilisation. Les exemples ou programmes prsents dans cet ouvrage sont fournis pour illustrer les descriptions thoriques. Ils ne sont en aucun cas destins une utilisation commerciale ou professionnelle. Le Cnam ne pourra en aucun cas tre tenu pour responsable des prjudices ou dommages de quelque nature que ce soit pouvant rsulter de l'utilisation de ces exemples ou programmes. Tous les noms de produits ou autres marques cits dans ce support sont des marques dposes par leurs propritaires respectifs. Ce support pdagogique a t rdig par Nils Schaefer, formateur au Cnam Champagne-Ardenne. Copyright 2004-2006 Centre d'Enseignement A Distance du Cnam Champagne-Ardenne. Tous droits rservs. Toute reproduction, mme partielle, par quelque procd que ce soit, est interdite sans autorisation pralable du Cnam Champagne-Ardenne. Une copie par xrographie, photographie, film, support magntique ou autre, constitue une contrefaon passible des peines prvues par la loi, du 11 mars 1957 et du 3 juillet 1995, sur la protection des droits dauteur.

  • CONSERVATOIRE NATIONAL DES ARTS ET METIERS

    Programmation avance 1

    LA METHODE UML

    1. INTRODUCTION UML (Unified Modeling Language ou Langage de modlisation unifi) est un ensemble de modles qui

    permet de prsenter une solution objet dans le but de reprsenter le systme informatique dune entreprise (de part sa nature et son utilisation).

    Lindpendance dUML par rapport aux langages de programmation, aux domaines dapplication et aux processus en fait un langage universel.

    1.1. LORIGINE DUML

    UML est ne en 1997 de la fusion de trois mthodes danalyse orientes objet : les mthodes OOD (Object Oriented Design), OMT (Object Modeling Technique) et OOSE (Object Oriented Software Engineering).

    Object Oriented Design (G. Booch) : Cette mthode a t cre la demande du ministre de la dfense des Etats-Unis dans le but de prparer avec rigueur la construction de programmes C ou ADA.

    Object Modeling Technique (J. Rumbaugh) : Les crateurs de cette mthode se sont inspirs des applications industrielles (exemple : programmation dautomates). Ils se sont attachs reprsenter un systme en le considrant comme un ensemble dlments pouvant tre dclenchs. Chacun dentre eux porte des informations et peut rpondre un stimulus. Il est noter que les crateurs de cette mthode se sont inspirs des langages objets mais galement des mthodes danalyse dites traditionnelles.

    Object Oriented Software Engineering (I. Jacobson) : Comme OMT, les auteurs se sont inspirs des anciennes mthodes danalyse pour donner de limportance au niveau conceptuel dune tude. Le but est dtudier le futur systme en labordant du point de vue de lutilisateur. Ainsi, chaque futur utilisateur du systme dcrit sa vision de chaque processus.

    Les auteurs de ces trois mthodes se sont mis daccord dans le but de crer une mthode unique qui serait susceptible de devenir la mthode de rfrence. Le premier succs de la mthode fut dtre reconnue comme norme de modlisation par lOMG (Object Management Group qui a pour but de promouvoir les technologies objet). Ce succs est appuy par lintrt croissant des programmeurs. UML est ne.

    1.2. LINTERET DUML

    Le langage de modlisation UML est intressant plusieurs titres :

    Tout dabord, il sagit dune norme. Ensuite, les informaticiens lutilisent dans le but de dcrire des applications informatiques.

    Certes, cette utilisation est rductrice mais elle prsente lavantage suivant : les informaticiens et les autres acteurs de la conception utilisent les mmes modles (ce qui facilite comprhension et communication)

    UML permet dutiliser un unique atelier dans le but de modliser un systme puis de dvelopper une application.

    UML permet dutiliser les concepts objet pour modliser des systmes dinformations.

  • La mthode UML 2

    CONSERVATOIRE NATIONAL DES ARTS ET METIERS

    2. CONCEPTS DE BASE

    2.1. OBJETS

    Un objet est un lment (matriel ou non) du systme tudi qui a une existence propre (identit propre), une dure de vie et un rle dans ce systme.

    On parle dexistence propre pour mettre en vidence le fait que lobjet peut tre repr dans le systme sans aucune quivoque vis--vis dautres objets. Il doit avoir une certaine dure de vie dans le systme sans pour autant y avoir toujours la mme forme : son tat peut changer durant sa vie. Son rle est impratif et doit tre dfini au sein du systme (un objet inutile na pas sa place dans le systme !). Il peut tre utilis ou se servir dautres objets dans le but de raliser des tches (ou les deux).

    2.2. CLASSES

    Une classe est un ensemble dobjets qui ont les mmes caractristiques dans le mme champ dtude. En fait, la classe permet de regrouper les caractristiques dun ensemble dobjets dans un domaine prcis.

    Les similitudes entre les objets sont de diffrents types :

    Ils possdent la mme structure Ils ont le mme comportement en raction des stimuli identiques Ils ont des rles identiques

    2.3. ENTITES

    Une entit est un ensemble dobjets informationnels qui ont la mme structure et qui sont grs de manire similaire. Elle ne permet de runir que des informations et non les mthodes permettant de grer les objets ( linverse des classes).

    On repre trois types dentits :

    Entits de gestion : une entit de gestion permet de grer les diffrents tats dune entit. Par exemple, un document (facture, bon de livraison ) peut tre gr selon les tats quil va prendre. La facture sera mise, puis endosse, puis classe par exemple.

    Entit de rfrence : une entit de rfrence ne connat pas dvolution importante durant sa dure de vie : elle a un caractre stable. Par exemple, la notion de client, de fournisseur sont des entits de rfrence.

    Entit de reporting : une entit de reporting est un regroupement dinformations qui permet une prise de dcision. Par exemple, un tableau regroupant les informations concernant un client (son identit, ses commandes, ses paiements ) pourront permettre un commercial de raliser un geste commercial.

    2.4. ACTEURS

    Une classe acteur est un ensemble de rles attribus certaines activits du systme dinformations. On parle dacteurs internes pour des acteurs appartenant lentreprise (exemple : caissier) et dacteurs externes pour ceux qui nappartiennent pas lentreprise mais qui interagissent avec celle-ci (exemple : client).

    HPSticky Noteentite est un ensemble d'objets informatique

  • CONSERVATOIRE NATIONAL DES ARTS ET METIERS

    Programmation avance 3

    Remarques :

    Une classe acteur peut intervenir dans une ou plusieurs activits du systme. Un rle ne peut tre attribu qu une classe acteur. Une classe acteur peut se rsumer une personne physique (exemple : classe Directeur

    rgional) ou un ensemble de personnes (exemple : classe Enseignants)

    2.5. PROCESSUS

    Un processus est un ensemble dactivits effectues par des acteurs. Il peut mettre en uvre diffrentes entits et rpond des stimuli appels vnements. Un vnement peut tre :

    Interne : il provient dun acteur interne ou est le rsultat dun autre processus. Exemple : Demande du chiffre daffaires un moment donn par le responsable.

    Externe : il provient dun acteur externe ou dun autre domaine de gestion Exemple : Demande dun reu par le client au caissier

    Temporel : il se rsume un dlai (ou une date). Ce dlai dpass donne lieu un processus. Exemple : Le 30 septembre, on passe lanne universitaire suivante

    Il est important de noter quun processus peut comporter plusieurs scnarios : on parle de variantes de processus. Elles permettent de lancer diffremment un processus selon la nature de lvnement dclencheur.

    2.6. DOMAINES

    Le dcoupage dun systme dinformation en domaines permet de structurer et de cadrer au mieux ltude du systme modliser. Un domaine est un sous-systme dinformations de lentreprise qui reprsente un mtier qui ncessite des comptences et un savoir-faire.

    Par exemple, dans un organisme de formation, on peut noter les domaines suivants : la scolarit (programmes, diplmes), les auditeurs (inscriptions, notes), le personnel (les enseignants et le personnel administratif)

    2.7. NIVEAUX

    La reprsentation dun systme dinformation se fait dabord au niveau conceptuel et organisationnel, puis au niveau logique et enfin au niveau physique.

    Ltude dun systme dinformation seffectue donc sur ces trois niveaux :

    Le niveau conceptuel et organisationnel : on prcise ce que va faire le systme et comment il va tre utilis dans la solution future.

    Le niveau logique : la solution informatique est conue ce niveau (exemples de dcisions prises ce niveau : choix du logiciel, dveloppement ou achat de solution ).

    Le niveau physique : la solution est mise en place (exemple de dcisions prises ce niveau : choix de larchitecture, choix des machines ).

    Rappel : Au premier niveau, le cahier des charges est ralis puis est utilis pour quune solution soit propose au niveau logique puis physique.

    HPHighlight

    HPHighlight

    HPHighlight

    HPHighlight

    HPHighlight

  • La mthode UML 4

    CONSERVATOIRE NATIONAL DES ARTS ET METIERS

    2.8. POINTS DE VUE

    Un systme dinformation prsente une complexit trs importante. Il est donc primordial de ne pas se contenter de ltudier sous un seul angle. Par consquent, on a lhabitude de ltudier sous son aspect statique puis dynamique. Dans le premier cas, on prsente les entits mises en jeu, dans le second, le fonctionnement du systme est prsent.

    3. PRINCIPAUX DIAGRAMMES La modlisation dun systme dinformation sappuie donc sur plusieurs diagrammes utilisant les

    diffrentes vues nonces ci-dessus. On note neuf diagrammes :

    Diagramme de classe (vue statique) Diagramme dobjet (vue statique) Diagramme dEtats-transitions Diagramme dactivits Diagramme de collaboration Diagramme de squences Diagramme de cas dutilisation Diagramme de composants Diagramme de dploiement

    Etudions ces diffrents diagrammes.

    3.1. DIAGRAMME DE CLASSE

    Le diagramme de classe reprsente la structure statique du systme. Il contient la description des classes et les associations existant entre ces dernires. En pratique, ce diagramme permet de reprsenter les entits du systme dinformation. Il est vident quune information lmentaire ne peut se situer que dans une classe (on retrouve le mme principe pour les proprits dun Modle Conceptuel des Donnes !).

    3.1.1. Attributs

    Une classe entit contient des informations lmentaires qui sont appeles attributs de la classe (par analogie, on peut les comparer aux proprits dune entit dun MCD). En plus de son nom, un attribut possde les caractristiques suivantes :

    Multiplicit : nombre minimum et maximum de valeurs que peut prendre cet attribut. Type : entier, rel, boolen, date, chane de caractres Valeur par dfaut : dans le cas o un attribut nest pas spcifi, il prend la valeur par dfaut. Proprit : on indique si lattribut peut tre modifi aprs avoir t renseign (modifiable ou fig).

    On note donc un attribut de la manire suivante (les lment entre crochets sont optionnels) :

    Nom [Multiplicit] [:Type] [=Valeur par dfaut] [{Proprit}]

  • CONSERVATOIRE NATIONAL DES ARTS ET METIERS

    Programmation avance 5

    3.1.2. Identifiant

    Un identifiant est un attribut particulier dont la connaissance permet celle de tous les attributs de la classe. Il permet simplement de reprer un objet (instance dune classe) sans aucune quivoque. Lidentifiant et les autres attributs de la classe sont en dpendance fonctionnelle.

    + CLIENT+ NumClient (Id)+ NomClient+ PrenomClient+ AdresseClient+ TelephoneClient

    Fig. 1 Exemple de classe avec identifiant

    3.1.3. Associations

    Lorsque lon dispose de classes, on a parfois besoin de les mettre en relation. Pour ce faire, on met en relation les attributs dune classe avec les attributs dune autre classe. Dans ce cas, on dit quon ralise une association.

    1 1..*Signe

    + CLIENT+ NumClient (Id)+ NomClient+ PrenomClient

    + CONTRAT+ NumContrat (Id)

    Signe1 1..*

    Fig. 2 Exemple dassociation

    Chaque association porte un nom (ici, Signe ). De chaque ct de lassociation sont disposs le nombre minimum et maximum dinstances des classes (multiplicit).

    Associations particulires Il est possible davoir une association multiple entre deux classes.

    0..* 0..*ASSO_1

    0..*0..*ASSO_2

    + CLASSE 1 + CLASSE 2ASSO_10..* 0..*

    ASSO_20..*0..*

    Fig. 3 Association multiple

    Il existe lassociation rflexive qui met en relation une classe avec elle-mme. Sur lexemple ci-dessous, on spcifie le fait quun artiste peut tre une personne physique ou un groupe dartistes.

    0..* 1

    Fait partie de

    + ARTISTE+ CodeArtiste (Id)+ Artiste

    Fait partie de

    0..* 1

    Fig. 4 Association rflexive

    HPSticky Noteidentifant permet de reperer un object

  • La mthode UML 6

    CONSERVATOIRE NATIONAL DES ARTS ET METIERS

    Une association peut porter des attributs. Dans lexemple suivant, lassociation entre une commande et un produit comporte la notion de quantit.

    0..* 0..*Concerne+ COMMANDE

    + CodeCommande (Id)+ PRODUIT

    + CodeProduit (Id)

    + CONCERNE+ QuantiteCommandee

    Concerne0..* 0..*

    Fig. 5 Association porteuse dattributs

    Pour complter lexemple prcdent, il serait bon de faire intervenir la notion de date. Dans cette optique, il faut faire apparatre une classe DATE dans lassociation : on obtient une association ternaire.

    0..*+ COMMANDE

    + CodeCommande (Id) 0..*+ PRODUIT

    + CodeProduit (Id)

    + CONCERNE+ QuantiteCommandee

    0..*

    + DATE+ Date (Id)

    Concerne

    0..* 0..*

    0..*

    Concerne

    Fig. 6 Association ternaire

    Multiplicit Une association est caractrise par des informations portes chacune de ses extrmits. Celles-ci

    reprsentent le nombre minimum et le nombre maximum dinstances de chaque classe qui peuvent participer lassociation. On utilise principalement quatre valeurs pour indiquer la multiplicit : 0..1, 1..1, 0..* et 1..*. Lastrisque reprsente un nombre quelconque non quantifiable. Par abus dcriture, on remplacera 1..1 par 1. Il est possible dutiliser une multiplicit de type n..m o n et m sont deux entiers positifs (n tant obligatoirement infrieur m).

    Exemple :

    1 0..*Passe

    + CLIENT + COMMANDE

    Passe1 0..*

    Fig. 7 Multiplicit

    La multiplicit signifie quune commande a t passe par un seul client alors quun client peut avoir pass plusieurs commandes un moment donn. Attention ! Dans un MCD (Merise), la lecture des cardinalits seffectue dans lordre inverse.

  • CONSERVATOIRE NATIONAL DES ARTS ET METIERS

    Programmation avance 7

    Agrgation Lagrgation permet de mettre en vidence une relation forte entre deux classes. Une des deux classes

    est appele classe agrge et lautre classe agrgat. Elle est reprsent par un losange du ct de la classe agrgat.

    Exemple :

    Fig. 8 Agrgation

    La figure 8 montre quon peut grer une classification des films selon un genre. Il sera donc possible de trouver le genre dun film. GENRE est la classe agrgat alors que FILM est la classe agrge. Lagrgation peut tre multiple : un film peut avoir plusieurs genres. Lexemple devient donc :

    Fig. 9 Agrgation multiple

    Composition La composition est un type particulier dagrgation dans laquelle la dure de vie de lagrge dpend

    de la dure de vie de lagrgat. En dautres termes, la suppression de lagrgat entrane celle des agrges. La composition est reprsente par un losange noir positionn du ct de la classe agrgat.

    Exemple :

    Fig. 10 Composition

    Cet exemple permet de dfinir la structure dun magasin qui a un responsable, une quipre dencadrement et des services. Dans ce cas, la suppression dun objet MAGASIN supprimera les objets RESPONSABLE, ENCADREMENT et SERVICES qui lui sont lis.

  • La mthode UML 8

    CONSERVATOIRE NATIONAL DES ARTS ET METIERS

    3.1.4. Oprations

    Une classe nest pas uniquement une collection de donnes. Une instance de classe a un rle jouer dans le systme dinformation et ses ventuelles actions sont effectues grce des oprations. Par consquent, on peut considrer quune opration est une tche qui peut tre excute par la classe.

    Les oprations sont places dans la partie infrieure de la classe. Il est vident que lanalyste ne doit faire figurer que les oprations spcifiques et non les oprations classiques telles que la consultation, la suppression

    Exemple :

    + CONTRAT+ NumContrat+ etc+ Creer+ Parapher+ Classer

    + Creer+ Parapher+ Classer

    Fig. 11 - Oprations

    3.1.5. Gnralisation et spcialisation

    Le principe de gnralisation et spcialisation permet de crer des super-classes (galement appeles classes gnriques) et des sous-classes (ou classes spcialises) dans le but dobtenir une description du systme la plus proche possible de la ralit.

    Ce principe permet aux deux types de classes de partager des attributs. On dit que les classes spcialises hritent de la classe gnrique.

    Exemple :

    1..*1Appartient

    + PIECES FABRIQUEES

    + PIECES COMMERCIALISABLES + PIECES INTERMEDIAIRES

    + FAMILLE

    Appartient1..*1

    Fig. 12 Gnralisation et spcialisation

    3.1.6. Remarques

    Llaboration du diagramme des classes seffectue selon des rgles quasi similaires celles rgissant llaboration du MCD dans la dmarche Merise :

    Chaque classe doit possder un attribut identifiant Le diagramme doit tre en troisime forme normale.

  • CONSERVATOIRE NATIONAL DES ARTS ET METIERS

    Programmation avance 9

    3.2. DIAGRAMME DOBJETS

    Un objet est une instance de classe. Un diagramme dobjets est une reprsentation ponctuelle du diagramme de classes. Il est essentiellement utilis pour comprendre un diagramme de classes car il met en vidence les liaisons qui existent entre les objets.

    Exemple :

    CLIENT NumClient = DUPJEA001 NomCLient = DUPONT PrenomClient = JEAN

    CLIENT NumClient = DURGIL001 NomCLient = DURAND PrenomClient = GILLES

    CONTRAT NumContrat = DC02HJ3456

    CONTRAT NumContrat = DC02HS1111

    CONTRAT NumContrat = DC02HJ3499

    Fig. 13 Diagramme dobjets

    On peut remarquer que la multiplicit napparat plus mais quelle est illustre par le fait quun client peut signer un ou plusieurs contrats.

    Exemple :

    COMMANDECodeCommande = A123GH01

    PRODUIT CodeProduit = PDT002

    PRODUIT CodeProduit = PDT001

    CONCERNE Quantite = 500

    CONCERNEQuantite = 100

    Fig. 14 Diagramme dobjets associ au diagramme de classe de la figure 5

    Remarque : Au niveau de lanalyse, le diagramme dobjets nest pas primordial. Il permet cependant de faciliter la comprhension du diagramme de classe.

    Ltude des deux modles prsentant laspect statique du systme est termine. Passons ltude des diagrammes prsentant laspect dynamique du systme.

  • La mthode UML 10

    CONSERVATOIRE NATIONAL DES ARTS ET METIERS

    3.3. DIAGRAMME DETATS-TRANSITIONS

    Le diagramme dtats-transitions permet de reprsenter les traitements qui sont raliss dans le domaine tudi. La dynamique des objets est dcrite laide dautomates. Un automate permet de modliser une situation dans laquelle se trouve un objet. Il est compos dtats et de transitions qui dcrivent la faon de passer dun tat lautre.

    3.3.1. Etat

    Un tat est une situation dans laquelle peuvent se trouver des objets. Par exemple, une commande peut connatre diffrents tats : en attente, en cours, traiter On reprsente un tat grce des rectangles aux angles arrondis (voir fig.15 ci-dessous).

    Etat 1

    Fig. 15 Reprsentation dun tat

    3.3.2. Transition

    Une transition est une relation permettant de changer ltat dun objet. Elle est oriente de ltat original vers ltat rsultant et porte le nom de lvnement qui engendre le changement dtat (voir fig. 16 ci-dessous).

    Etat 1 Etat 2 Transition

    Fig. 16 Reprsentation dune transition

    Exemple : Une facture peut passer de ltat en attente de rglement ltat archive suite larrive du montant rgler.

    En attente de rglement Archive Rglement

    Fig. 17 Exemple de transition

    3.3.3. Traitements

    Le dclenchement dun traitement (ou action) se fait en entre dans ltat (exemple : en entre de ltat en prparation dune commande, il faut choisir un fournisseur), en sortie de ltat (exemple : en sortie, expdier le bon de commande au fournisseur) ou selon une transition interne qui ne modifie pas ltat de lobjet (exemple : si un nouveau tarif est dfini alors effectuer la valorisation).

    On obtient donc la reprsentation suivante :

    En prparation

    Entre : Choix du fournisseur Sortie : Envoi du bon de commande Nouveau tarif : valorisation Entre :

    Fig. 18 Description dtaille dun tat

  • CONSERVATOIRE NATIONAL DES ARTS ET METIERS

    Programmation avance 11

    3.3.4. Remarques

    Il existe deux tats prdfinis : ltat initial et ltat final dun objet qui se reprsentent comme suit :

    Etat 1 Etat X X transitions

    Etat finalEtat initial Fig. 19 Etat initial et tat final

    Il est possible dutiliser le concept de gnralisation et spcialisation pour dfinir des super tats et des sous tats. Par exemple, ltat en poste pour un salari pourrait tre dcompos en sous tats en fonction et en cong parental . Ainsi, les traitements de ltat en poste seront galement actifs pour les deux sous tats.

    3.4. DIAGRAMME DACTIVITES

    3.4.1. Activit

    Une activit est une opration qui dure. Elle ne peut tre attache qu un tat et non une transition. Elle se droule tant que lobjet est dans un certain tat. On la note en spcifiant un dclencheur particulier : Do.

    Exemple : Enregistrement du dtail dune commande durant sa prparation. Dans le cas prsent, chaque ajout (modification ou suppression) dun lment de dtail de la commande sera pris en compte jusqu la sortie de cet tat c'est--dire jusqu lenvoi du bon de commande.

    En prparation

    Entre : Choix du fournisseur Sortie : Envoi du bon de commande Nouveau tarif : valorisation Entre : Do : Enregistrer le dtail de la commande

    Fig. 20 Exemple dactivit

    Le diagramme dactivits est un graphe orient qui dcrit un enchanement de traitements.

    3.4.2. Flot de contrle et flot dobjet

    Un enchanement de traitements est appel flot de contrle. Les activits sont relies par des transitions qui peuvent ventuellement porter des conditions de garde (conditions permettant de bloquer une transition).

    Exemple : La commande nest prpare quaprs rception du rglement

    Envoi de la facture Prparation de la commande [Rception du rglement]

    Fig. 21 Exemple de flot de contrle

  • La mthode UML 12

    CONSERVATOIRE NATIONAL DES ARTS ET METIERS

    Un flot de contrle faisant figurer les objets mis en jeu se nomme flot dobjet.

    3.4.3. Branchement conditionnel

    Un flot de contrle peut selon la validit dune condition emprunter diffrents chemins : on parle de branchement conditionnel.

    Exemple : Une commande peut tre prpare si le rglement est parvenu dans un dlai de huit jours. Sans rglement, une relance est mise.

    Envoi de la facture

    Prparation de la commande [Rglement] Envoi dune relance [Huit jours couls sans rglement]

    Fig. 22 Flot de contrle avec branchement conditionnel

    3.4.4. Synchronisation

    Un flot de contrle peut suivre des chemins parallles. Ainsi, on place des rgles de synchronisation permettant de spcifier qu la suite dune activit, il est possible demprunter deux transitions diffrentes (voir fig. 23 ci-dessous). Par analogie, il est possible, pour effectuer une activit, que des transitions provenant de deux activits soient ncessaires (voir fig. 24 ci-dessous).

    Activit 1

    Activit 2 Activit 3

    FIg. 23 Synchronisation ouverte (OU)

    Activit 1

    Activit 3

    Activit 2

    Fig. 24 Synchronisation ferme (ET)

  • CONSERVATOIRE NATIONAL DES ARTS ET METIERS

    Programmation avance 13

    3.4.5. Couloirs dactivits

    Le diagramme dactivits peut tre scind en colonnes (ou couloirs) selon lesquels sont reprsents les acteurs ayant raliss les activits dcrites. Dans un couloir dactivits, on retrouve les activits ralises par un mme acteur.

    Exemple :

    Service Vente Service Livraison

    3.5. DIAGRAMME DE COLLABORATION

    Le diagramme de collaboration permet de prsenter les interactions et les messages changs entre les diffrents objets du domaine.

    3.5.1. Interactions

    Ltude du diagramme dtats-transitions nous a permis daboutir au fait que des objets peuvent communiquer entre eux. Ainsi, il est dsormais ais de comprendre quun objet peut envoyer un message un autre objet. Cependant, le diagramme de collaboration ne se contente pas de reprsenter des objets. Il propose galement de reprsenter les messages qui proviennent dacteurs.

    Exemple :

    MagasinierMagasinier:Produit

    1 :calculer stock

    2 :valeur stock

    Fig. 25 Interactions

    Lacteur nomm Magasinier demande le calcul de stock pour un produit puis reoit le rsultat de sa demande.

    3.5.2. Messages

    Le message est le seul moyen de communication entre les objets. Ils peuvent tre reprsents par un lien ou par un ensemble dinformations donnant une description plus fine du message. On trouve gnralement : le nom du message, une squence (numro dordre dexcution du message), des arguments (donnes ncessaires pour laboutissement du message) et plus rarement : le rsultat attendu, une synchronisation, une condition dmission.

    Quelques exemples :

    Squence : un commercial met un devis, reoit laccord du client, rdige le bon de commande Arguments : la mthode CalculRduction a besoin de connatre la catgorie de clientle pour

    en dduire le pourcentage de rduction appliquer.

    Envoi de la facture Prparation de la commande [Rception du rglement]

  • La mthode UML 14

    CONSERVATOIRE NATIONAL DES ARTS ET METIERS

    Condition : si la quantit commande est suprieur 100 000 units alors la commande est passe dans la journe.

    3.6. DIAGRAMME DE SEQUENCE

    Rappel : Une squence permet de prciser lordre dmission des messages.

    Le diagramme de squence permet de complter le diagramme de collaboration car il met laccent sur la notion de temps.

    Exemple : Demande de devis dun client un vendeur

    Client

    Demande devis

    Devis

    Client Vendeur

    Demande prix

    Demande rduction

    Vendeur

    Produit

    Catgorie clientle

    Demande devis

    Demande prix

    Demande rduction

    Devis

    Fig. 26 Exemple de diagramme de squence

    Le diagramme de squence reprsente chaque acteur et chaque objet mis en jeu. La ligne verticale en pointills est appele ligne de vie des objets. Laxe vertical reprsente lavance dans le temps. Les flches schmatisent les messages.

    Comme pour le diagramme de collaboration, il existe des variantes de messages proposant les notions de conditions de garde et de paramtres. Ainsi, on peut se trouver en prsence dun message ayant la structure suivante :

    [condition] message [(liste de paramtres)]

    3.7. DIAGRAMME DE CAS DUTILISATION

    Un cas dutilisation est une technique de description dune partie du systme du point de vue de lutilisateur. Il reprsente la liaison existante entre un acteur et une fonctionnalit du systme. Le diagramme de cas dutilisation reprsente les cas dutilisations et les acteurs concerns par ces derniers.

    Des cas dutilisations peuvent figurer sur plusieurs diagrammes car diffrents acteurs peuvent tre confronts des situations identiques. Par exemple, un magasinier et un chef magasinier peuvent tous deux raliser linventaire (voir figure 27).

    Un cas peut tre lextension dun autre cas. Par exemple, le traitement dune commande exceptionnelle est une extension du traitement de commande traditionnelle (voir figure 28).

    La notion de gnralisation/spcialisation sapplique aux cas dutilisations. Par exemple, une demande de rapprovisionnement peut tre passe par courrier ou par tlphone (voir figure 29).

  • CONSERVATOIRE NATIONAL DES ARTS ET METIERS

    Programmation avance 15

    Inventaire

    Demande de rapprovisionnement

    Inventaire

    Demande de rapprovisionnement

    MagasinierMagasinier Chef MagasinierChef Magasinier

    Fig. 27 Exemple de cas dutilisations

    VendeurVendeur

    Traitement d'une commande

    Calcul de rduction Commande exceptionnelle

    INCLUDE EXTEND

    Fig. 28 Extension du traitement dune commande celui dune commande exceptionnelle

    Remarque : Le mot include indique que le traitement de la commande ncessite le calcul dune rduction. Le mot clef extend met en vidence le fait que le traitement dune commande exceptionnelle se fait comme celui dune commande normale lexception du calcul de rduction.

    MagasinierMagasinier

    Rapprovisionnement Commande

    Commande tlphoniqueCommande par courrier

    INCLUDE

    Fig. 29 Spcialisation/gnralisation dun cas dutilisation

    Remarque : La flche en pointills signifie quil existe une dpendance forte entre les cas dutilisations Rapprovisionnement et Commande . Les flches portant une pointe vide reprsente une gnralisation.

    Il convient de dcrire un cas dutilisations de la manire suivante :

    Lobjectif du cas Les acteurs susceptibles de dclencher le cas Les actions : tches qui composent le cas Les rgles de gestion mises en uvre Les documents utiliss ou produits par le cas

  • La mthode UML 16

    CONSERVATOIRE NATIONAL DES ARTS ET METIERS

    Exemple : Description du cas rapprovisionnement

    Rapprovisionnement

    Objectif : ce cas permet d'obtenir des stocks satisfaisantsActeurs : _ Chef magasinier _ MagasinierActions : _ Etude de l'tat des stocks _ Contact fournisseurRgles de gestion : _ On achte le produit chez le fournisseur offrant le meilleur prixDocument reu : _ Etat des stocksDocument produit : _ CommandeDocument utilis : _ Liste des fournisseurs proposant ce produit

    Fig. 30 Description dun rapprovisionnement

    3.8. DIAGRAMME DE COMPOSANTS

    Le diagramme de composants dcrit larchitecture technique. Il reprsente les serveurs, les stations de travail, les priphriques (imprimantes). Chacune de ces informations est appele nud. Les nuds sont relis entre eux en fonction des dpendances qui existent entre eux (exemple : une station de travail sera reli un serveur).

    Remarque : Ce diagramme est principalement utilis par les informaticiens.

    3.9. DIAGRAMME DE DEPLOIEMENT

    Le diagramme de dploiement est utilis pour obtenir une vue globale de lensemble des lments de modlisation tels que les classes, les objets, les cas dutilisation

    Il permet notamment :

    Davoir une vue densemble de la solution De savoir rpartir les tches dans lquipe de programmation De distinguer les lments rutilisables (objets rutilisables directement ou mise en place

    dhritage)

    Dtablir un calendrier davancement du dploiement de la solution (dveloppement, tests unitaires, tests globaux)

    Remarque : Ce diagramme est principalement utilis par les informaticiens.

    4. PAQUETAGE Un paquetage (ou package) est un ensemble dlments de modlisation tels que les classes, les

    objets, les composants Il permet le dcoupage du modle en prservant sa cohrence.

    Ensuite, les paquetages sont lis entre eux pour donner un modle cohrent. Un paquetage peut contenir des paquetages qui peuvent eux-mmes contenir dautres paquetages Ainsi, il est facile dorganiser la dcomposition du modle en sous-modles.

    Le paquetage Commande (voir figure 31) prsente la gestion dune commande.

    La figure 32 prsente quant elle la mise en relation de paquetages et de classes.

  • CONSERVATOIRE NATIONAL DES ARTS ET METIERS

    Programmation avance 17

    Commande

    0..* 0..*Concerne

    + COMMANDE+ CodeCommande (Id)

    + PRODUIT+ CodeProduit (Id)

    + CONCERNE+ QuantiteCommandee

    Concerne0..* 0..*

    Fig. 31 Exemple de paquetage

    Gestion du personnel enseignant

    1..* 1Appartient

    + Membre du personnel

    + Formateur + Enseignant vacataire

    Service+ Service

    Service

    Appartient1..* 1

    Fig. 32 Paquetage qui contient des paquetages

    Dans le second exemple, le membre du personnel enseignant est soit un formateur soit un enseignant vacataire. Chacun dentre eux est rattach un service et la gestion des services est dcrite dans un paquetage nomm service. Dans un tel cas, on ne reprsente pas la totalit des classes prsentes dans le paquetage service mais simplement celles qui sont en liaison avec les classes du paquetage global.