Cours Uml Oeb

download Cours Uml Oeb

of 94

Transcript of Cours Uml Oeb

  • 8/8/2019 Cours Uml Oeb

    1/94

    1O. El Beqqali

    Unified Modeling Language

    Modlisation ObjetPr. Omar El Beqqali

    [email protected]://www.fsdmfes.ac.ma/oelbeqqali

    http://www710.univ-lyon1.fr/~obekkaliEMSI 2009 / 20010

  • 8/8/2019 Cours Uml Oeb

    2/94

    2O. El Beqqali

    Spcification et conception du logiciel.

    Plan

    Le processus de dveloppement du logiciel

    Les enjeux du Gnie Logiciel.

    Le processus de dveloppement du logiciel.

    (GL)

    Le langage de modlisation unifi UML.

    Prsentation gnrale.

    Mthodologie Objet en spcification et en conception

    Concepts fondamentaux.

    Diagrammes UML

    -Diagramme des cas d'utilisation

    -Diagramme de squences.

    - Diagramme de collaboration- Diagramme de classes.

    - Diagramme d'objets- Diagrammes d'tats-transitions

    - Diagramme d'activits

    - Diagramme de composants.

    - Diagramme de dploiement.

    UML & Bases de donnes

    Gnration du code

    Rtro-ingnierie (reverse engineering)

    Mise en uvre d'UML : tude de cas

    ( 2004 : 4 nouveaux diagrammes)

  • 8/8/2019 Cours Uml Oeb

    3/94

    3O. El Beqqali

    Spcification et conception du logiciel.

    Mthodologie Objet : UML.

    Objectifs

    Comprendre les enjeux du Gnie Logiciel.

    Comprendre l'importance des activits de spcification et de conception (G.L)

    Connatre la notation UML.

    Savoir comment utiliser UML pour spcifier et

    concevoir un logiciel.Mettre en uvre UML (cas)

  • 8/8/2019 Cours Uml Oeb

    4/944O. El Beqqali

    La modlisation

    Elle est essentielle pour :-Comprendre le fonctionnement dun systme-Matriser la complexit

    -Faciliter la communication au sein de lquipe

    Et particulirement en gnie logiciel :-tre un facteur de rduction des cots et des dlais,-tre un facteur daccroissement de la qualit du produit,

    -Permettre dassurer une maintenance facile et efficace,

    -Permettre de contrler lavancement dun projet.

  • 8/8/2019 Cours Uml Oeb

    5/94

    5O. El Beqqali

    Modles et techniques utiliss par les

    mthodes objets Les mthodes de modlisation classiques sont bases sur :

    Un modle de donnes et un modle des traitements spars Une modlisation de flots de donnes

    Insatisfaisantes pour modliser des systmes objet

    Aucune mthode ne couvre toutes les tapes du cycle de dveloppement

    Triple perception du systme dinformation

    Dimension statique: objets Dimension dynamique: vnements/tats Dimension fonctionnelle : flux/processus

  • 8/8/2019 Cours Uml Oeb

    6/94

    6O. El Beqqali

    Conception par objetsConception par objets

    Dmarche itrative plus que descendante (cycle itratif)

    Grandes tapes Identifier les entits du domaine

    Structurer le domaine en analysant les proprits de ces

    entits et leurs relations Identifier les oprations que savent effectuer ces entits

    Dcrire prcisment ces oprations en les reliant des

    messages Dcrire le lancement du programme

  • 8/8/2019 Cours Uml Oeb

    7/94

    7O. El Beqqali

    Avantages de la conception objetAvantages de la conception objet

    Avantages de lutilisation de lapproche objet au

    niveau conceptuel Rduction de la distance entre langage utilisateur et

    langage conceptuel

    Regroupement de lanalyse des donnes et destraitements

    Simplification des transformations entre niveauconceptuel et niveau physique

    Abstraction forte

    Orient vers la rutilisation : notion de composants,modularit, extensibilit, adaptabilit, souplesse.

  • 8/8/2019 Cours Uml Oeb

    8/94

    8O. El Beqqali

    Le cycle de vie ObjetLe cycle de vie Objet((GG..LL))

    Un cycle itratif : ce cycle sappuie sur lanalyse des

    risques (adquat pour la conception objet)

    Expression des

    besoins

    Spcifications

    fonctionnelles

    ConceptionAnalyse

    Implmentation

    Tests de

    vrification

    Validation des besoins

  • 8/8/2019 Cours Uml Oeb

    9/94

    9O. El Beqqali

    Mthodes objets (historique)Mthodes objets (historique)

    OOD Object Oriented Design (G. Booch) 1991

    HOOD Hierarchical Object Oriented Design (Delatte & al.) 1993

    OOA Object oriented analysis (Schlaer ,Mellor) 1988, 92

    OOA/OOD (Coad & Yourdon) 1991

    OMT Object Modeling Technique 1991

    OOSE Object oriented software engineering (Jacobson & al.) 1992

    OOM Object oriented Merise (Bouzeghoub & Rochfeld) 1993

    Fusion (Coleman & al.) 1994 Thorie dveloppe par Ivar JACOBSON

    Reprise par de nombreuses mthodes : OMT, ROOM, Fusion, Booch, ..

    Elle repose sur une analyse centre utilisateur pour dterminer les besoins du

    systme.

  • 8/8/2019 Cours Uml Oeb

    10/94

    10O. El Beqqali

    Historique UML

    Autres mthodes Booch91 OMT-1 OOSE

    Booch93 OMT-2

    Mthode unifie 0.8

    UML 0.9

    UML 1.0

    UML 1.1

    UML 1.2

    UML 1.x

    UML 2.0

    1999-2002

    Juin 1998

    Novembre 1997Septembre 1997

    Janvier 1997

    Juin 1996

    Octobre 1995

    Dfinition par une commission dervision

    Soumission lOMG

    Standardisation par lOMGSoumission lOMG

    Soumission lOMG

    Partenaires

    1997: prsentation de UML l'OMG (Object Management Group),

    UML 1.1 est adopt (http://www.omg.org)1999: UML 1.32004: UML 2.1 (pas encore trs utilise)

  • 8/8/2019 Cours Uml Oeb

    11/94

    11O. El Beqqali

    UML : langage de modlisation

    graphique et textuel UML unifie

    Les concepts, quels que soient le domaine dapplication Les notations et concepts orients objet

    UML est indpendant

    Du type du systme-logiciel, matriel, organisation.. Du domaine mtier : gestion, ingnierie, finance

    UML permet de : Comprendre et de dcrire les besoins,

    Concevoir et construire des solutions,

    Documenter un systme tout au long du cycle de dveloppement,

    Communiquer entre les membres de lquipe de projet.

  • 8/8/2019 Cours Uml Oeb

    12/94

    12O. El Beqqali

    UML : objectifs

    Montrer les limites dun systme et ses fonctions principales

    laide des cas dutilisation et des acteurs. Illustrer les ralisations de Cas d Utilisation laide de

    diagrammes dinteraction.

    Reprsenter la structure statique dun systme laide dediagrammes de classes, associations, contraintes.

    Modliser la dynamique, le comportement des objets laide de

    diagrammes tats/transitions. Rvler limplantation physique de larchitecture avec des

    diagrammes de composants et de dploiement.

    Un langage utilisable par lhomme et la machine : permettre lagnration automatique de code.

  • 8/8/2019 Cours Uml Oeb

    13/94

    13O. El Beqqali

    Modlisation en diagrammes

    Modle = ensemble dlments de modlisation vusdans un ensemble de diagrammes

    Diagramme

    -Support graphique de modlisation, chaque diagrammepropose un point de vue diffrent.-mise en uvre dun ensemble dlments de visualisation

    reprsentant des lments de modlisation (graphe)

    ABSTRACTION

    ModleSystme rel

  • 8/8/2019 Cours Uml Oeb

    14/94

    14O. El Beqqali

  • 8/8/2019 Cours Uml Oeb

    15/94

    15O. El Beqqali

    UML : les diagrammes (1)

    Modles manipuls au moyen de vues

    graphiques : 9 diagrammes(4 autres nouveaux diagrammes en 2004)

    Diagrammes des cas dutilisation : Fonctions du systme du

    point de vue des utilisateurs

    Diagrammes de squence : Reprsentation temporelle des

    objets et de leurs interactions

    Diagrammes de collaboration :Reprsentation spatiale des

    objets, des liens et des interactions

  • 8/8/2019 Cours Uml Oeb

    16/94

    16O. El Beqqali

    UML : les diagrammes (2)

    Diagrammes declasses: Structure statique en terme de classes

    et relations qui les lient Diagrammes dobjets : Reprsentation des objets et de leursrelations (liens)

    Diagrammes dtats-transitions : Comportement dune classeen terme dtats, li au cycle de vie des objets

    Diagrammes dactivits : Reprsentation du comportementdune opration, dun cas dutilisation, ou dun processus

    mtier en terme dactions Diagrammes de composants : Composants physiques dune

    application, dpendance entre ces composants

    Diagramme de dploiement : Dploiement des composantssur les dispositifs matriels, modes de connexion..

  • 8/8/2019 Cours Uml Oeb

    17/94

    17O. El Beqqali

    Classification des diagrammes

    Diagramme de casdutilisation

    Diagramme dtats

    Diagramme dactivitsDiagramme de squenceDiagramme de collaboration

    Diagramme de classes

    Diagramme dobjetsDiagramme de composantsDiagramme de dploiement

    Fonctionnel

    Statique Dynamique

    Lensemble des 9 diagrammes peut tre rparti sur les trois axes de modlisation

  • 8/8/2019 Cours Uml Oeb

    18/94

    18O. El Beqqali

    Strotype : mcanisme permettant de classer les lments similaires du

    modle en familles >quelques strotypes : >, >

    Exemple : classes Fentre, Icne, Bouton

    valeurs communes (afficher/masquer),

    strotype >

    Contraintes : exprime un lien smantique entre des lments du modlenotation : {}

    Note : commentaire rattach un diagramme

    Mcanismes de base

    Note..

  • 8/8/2019 Cours Uml Oeb

    19/94

    19O. El Beqqali

  • 8/8/2019 Cours Uml Oeb

    20/94

    20O. El Beqqali

    Cas dutilisation : Introduction

    Le concept de cas dutilisation introduit par IvarJacobson dans la mthode Object-OrientedSoftware Engineering (OOSE).

    Les fonctionnalits du systme sont dcritescomme un ensemble de cas dutilisation.

    Chaque cas reprsente un flot spcifiquedvnements vers le systme.

    La description du cas d'utilisation dfinit ce qui

    arrive dans le systme lors de sa ralisation.

  • 8/8/2019 Cours Uml Oeb

    21/94

    21O. El Beqqali

    Cas d'utilisation :

    Notation (1)

    Cas d'utilisation

    Acteur

    Use Case

    Entit qui agit sur le systme; reprsente un

    ensemble cohrent de rles quun utilisateurpeut effectuer.

    Ensemble cohrent de fonctionnalits fournies

    par le systme ou un sous-systme en rponse une action de lutilisateur. Ce ci se traduit parlchange de messages entre le systme et lesacteurs.

  • 8/8/2019 Cours Uml Oeb

    22/94

    22O. El Beqqali

    Elaboration de CU

    questions se poser : quelles sont les tches de lacteur ? quelles informations lacteur doit-il crer, sauvegarder, modifier,

    dtruire, ou simplement lire ? lacteur doit-il informer le systme de changements externes ?

    On sintresse au domaine du quoi faire, pas du comment(sinonon rentre dans la phase de conception) on doit rester au niveau de linteraction acteur/systme

    Acteur

    Cas d'utilisationDclenche

    Frontire du systme

  • 8/8/2019 Cours Uml Oeb

    23/94

    23O. El Beqqali

    Cas d'utilisation : Dmarche

    Recherche des acteurs externes

    Pour chaque acteur les cas d'utilisation

    Pour chaque cas d'utilisation : rechercher les interactions rechercher les objets manipuls

    Faire la maquette de chaque cas d'utilisation

    Remarque :Les diagrammes des cas d'utilisation se retrouveront tous lesstades du projet.

    C U

  • 8/8/2019 Cours Uml Oeb

    24/94

    24O. El Beqqali

    C.U

    caractristiques (1) Le cas d'utilisation utilise une description textuelle

    Le cas d'utilisation est un cadre pour l'laboration desdiffrentes fins possibles pour le cas d'utilisation

    L'analyse est complte lorsque tous les cas d'utilisation sont

    tudis Un cas d'utilisation dcrit l'change standard entre un acteurexterne et un systme; dcrit une famille de scnarios (voirplus loin) incluant les cas d erreur.

    L'acteur est l'initiateur de l'change, il peut tre: Personne quipement

    systme externe

  • 8/8/2019 Cours Uml Oeb

    25/94

    25O. El Beqqali

    ActeurActeur

    Rle jou par une personne ou une chose qui interagit

    avec un systmeLa mme personne physique peut jouer le rle de plusieursacteursPlusieurs personnes peuvent jouer le mme rleNom de lacteur = Rle jou par lacteur

    Dtermination des acteurs ==> prcision des limites du

    systme de manire progressive

  • 8/8/2019 Cours Uml Oeb

    26/94

    26O. El Beqqali

    ActeurActeurDiffrentes catgories dacteursDiffrentes catgories dacteurs

    Catgories

    Acteurs principaux: personnes utilisant le systme ( qui va

    servir le systme)Acteurs secondaires: qui administrent le systme (paramtrentle systme en lui fournissant les informations ncessaires ou

    effectuent des m.a.j).Exemple : bibliothque =>ladministrateur est un A.S, lemembre est un A.P.Types

    Matriel externe: dispositifs matriels faisant partie du domainede lapplication.Humains : utilisateurs du systme.

    Logiciels, robots : qui exploitent les donnes du systme.

  • 8/8/2019 Cours Uml Oeb

    27/94

    27O. El Beqqali

    Acteurs et cas dutilisation

    Cas dutilisation : description gnrique dune transactioncomplte entre l acteur et le systme (claire et prcise).

    Guichetier

    Gestionnaire de

    prts

    prt

    Lecteur code

    Opration surcompte

    systmeacteur

    cas dutilisation

    Remarque : pas d interactions entre acteurs

    un guichetier est un employde la banque jouant un rled'interface ent re le systme

    informat ique et les clientsqu'il reoit

    Note

  • 8/8/2019 Cours Uml Oeb

    28/94

    28O. El Beqqali

    TlphoneAppeler

    Tlphone

    RecevoirAppel

    InterrompreAppel

    Client

    Oprateur

    C.U : exemple

    C.U

    Acteur

    Diag. C.U Systme tlphonique

    CU

  • 8/8/2019 Cours Uml Oeb

    29/94

    29O. El Beqqali

    CU

    caractristiques (2) Identification d'une finalit de l'utilisateur

    Un stimulus de dpart Unepr-condition du systme au dclenchement

    Un enchanement d'interactions Unepost-condition du systme la fin du cas

    dutilisation

    Enchanement dactions effectuer

    Une fin normale (conditions dexcution ventuelles)

  • 8/8/2019 Cours Uml Oeb

    30/94

    30O. El Beqqali

    Pr-conditionScnario

    Post-condition

    Le cas d'utilisation

    Use CaseActeur

    EmetteurActeur

    Receveur

    C ' i i i (1)

  • 8/8/2019 Cours Uml Oeb

    31/94

    31O. El Beqqali

    Cas d'utilisation : Exemple (1)

    Nom du cas d'utilisation:

    Attribution d'une place sur un vol Un stimulus de dpart : Client prsente sa

    rservation Une pr-condition: Guichet ouvert & rservationsur un vol

    Un enchanement d'interactions: Scnarios

    Une post-condition: Place affecte au passager& Fin-rservation

    C d' tili ti

  • 8/8/2019 Cours Uml Oeb

    32/94

    32O. El Beqqali

    Cas d'utilisation :

    Notation (2)

    Capture comment une ou plusieurs

    descriptions dun use case intgrent ladescription d'un autre use case.(quivalent l'agrgation pour les classes, voir plus loin)

    Include

    Extend Reprsente l'insertion d'un use case dans unautre use case.quivalent lagnralisation/spcialisation pour les classes (voir

    plus loin).

    Les relations entre cas dutilisation :

    -Extend

    -Include

    Cas d'utilisation :

  • 8/8/2019 Cours Uml Oeb

    33/94

    33O. El Beqqali

    Casd utilisation :

    La notation (1)La relation extend :

    dnote un comportement optionnel, indique que tous les UC fils hritent du UC mre (UC

    point)

    Guichetier

    retrait devises

    retrait Dhs

    retrait

    Cas d'utilisation :

  • 8/8/2019 Cours Uml Oeb

    34/94

    34O. El Beqqali

    Casd'utilisation :

    La notation (2)

    La relation include indique que le UC point par la flche est une

    sous partie de lautre UC .factorisation des UC dont les fonctionnalits serventfrquemment dans des diffrents UC

    (comportement communs plusieurs UC).

    Emprunt

    Saisie Ncompte

    Retrait

  • 8/8/2019 Cours Uml Oeb

    35/94

    35O. El Beqqali

    Cas dutilisation et scnarios

    Casdutilisation

    scnario 2 scnario 3

    scnario 4scnario 1

    Scnario = chemin dans le CU Description du CU

    ensemble des scnarii document avec flot dvnements du point de vue de lacteur

    dtaille ce que le systme doit fournir lutilisateur quand le CU estexcut

    flot normal des vnements (80 %) -Nominal-

    flots dvnements alternatifs

    flots dexceptions (quand le CU ne ne termine pas correctement)

  • 8/8/2019 Cours Uml Oeb

    36/94

    36O. El Beqqali

    CU : scnarios

    Description gnraleC.U: ce cas dutilisation concerne les oprationsque le client peut raliser sur son compte sur un distributeur bancaire.

    Description des scnarios:Le cas dutilisation commence quand lutilisateur se connecte. Le systme

    lui propose :a/de retirer du liquideb/de dposer un chque

    Si le client choisit a/, le systme lui propose divers montants. Lutilisateurchoisit une somme. Le systme vrifie que le compte est suffisammentapprovisionn, et dlivre largent et un reu. Sinon, le systme informelutilisateur de lchec de lopration, et lui rend sa carte.

    Le cas dutilisation se termine quand lutilisateur retire sa carte bancaire.

    Opration sur compteClient

    Exemple : GAB

  • 8/8/2019 Cours Uml Oeb

    37/94

    37O. El Beqqali

    Cas dutilisation et interactions

    Le diagramme des CU prsente une vue du

    systme de lextrieur Une interaction dcrit comment les casdutilisation (classes, oprations) sont raliss

    comme interactions dans une socit dobjets(communication entre objets )

    Vue dynamique du systme : deux types dediagrammes dinteraction diagrammes de collaboration

    diagrammes de squences

    C d' tili ti i

  • 8/8/2019 Cours Uml Oeb

    38/94

    38O. El Beqqali

    Cas d'utilisation : scnarios

    Exemple Nom du cas d'utilisation:

    Attribution d'une place sur un vol Le passager prsente sa rservation l'htesse

    qui lui demande son nom, le passager fournit l'information, le systme trouve sa rservation [ou ne la trouve pas

    (autre scnario)],...

    le passager accepte la place propose par le systme.

  • 8/8/2019 Cours Uml Oeb

    39/94

    39O. El Beqqali

    Scnarios - exemples

    Cas d'utilisation :1/ Acheter un produit

    2/ Passer les tourniquets du RER

    Cas d'utilisation:

  • 8/8/2019 Cours Uml Oeb

    40/94

    40O. El Beqqali

    Casd utilisation:

    un besoin

    Catalogue

    Acheter

    un

    produitAcheteur

    Vendeur

    Exemple : activit commerciale

    Cas d'utilisation : Le scnario

  • 8/8/2019 Cours Uml Oeb

    41/94

    41O. El Beqqali

    Scnario pour Ngocier aveccondition

    Acheteur demande le prixVendeur interroge le catalogueVendeur donne le prix de baseAcheteur s'tonne

    Scnario pour Ngocier avec chec

    Acheteur demande le prixVendeur interroge le catalogueVendeur donne le prix de baseAcheteur s'tonneAcheteur se plaintVendeur fait une propositionAcheteur change de produit

    ...

    Cas d utilisation : Le scnarioExemple Vente

    Le scnario est une application parmi d'autres d'un casd'utilisation.

    Pour dcrire compltement un cas, plusieurs scnario sontncessaires.

    Il apporte une comprhension prcise sur une application du

    cas d'utilisation

    Scnario pour Ngocier avec succs

    Acheteur demande le prixVendeur interroge le catalogueVendeur donne le prix de baseAcheteur s'tonneAcheteur se plaintVendeur fait une proposition

    ...

    Cas d'utilisation : Le scnario

  • 8/8/2019 Cours Uml Oeb

    42/94

    42O. El Beqqali

    Passer les tourniquets du RER Prsenter le ticket au tourniquet

    Le tourniquet avale le ticket Le tourniquet contrle le ticket le tourniquet redonne le ticket Passer le tourniquet

    ..Autres Scnarii.

    Cas d utilisation : Le scnarioExemple RER

  • 8/8/2019 Cours Uml Oeb

    43/94

    43O. El Beqqali

    Les diagrammes de squence (1)

  • 8/8/2019 Cours Uml Oeb

    44/94

    44O. El Beqqali

    Les diagrammes de squence (1)

    Le diagramme de squence montre quels sont les objetsqui participent lexcution du use-case et quels sont lesmessages quils changent : description des interactionsentre les objets dun point de vue temporel.

    Chaque bloc ou objet participant dans le processus estreprsent par une barre verticale.

    Remarque: lordre dans lequel apparaissent les barres na pasdimportance (lisibilit).

    Di d (2)Diagrammes de sq ence (2)

  • 8/8/2019 Cours Uml Oeb

    45/94

    45O. El Beqqali

    Diagrammes de squence (2)Diagrammes de squence (2)

    Interactions entre objets selon un point de

    vue temporel 2 utilisations

    Documentation des cas dutilisation Evnements qui surviennent dans le domaine de

    lapplication

    Reprsentation prcise des interactions entre objets

    Echanges de messages

    Remarque : possibilit de reprsentation de la structure de contrle, la cration etla destruction des objets, la rcursion, les branchements conditionnels.

    Diagrammes de squence :l t d l tl h i

  • 8/8/2019 Cours Uml Oeb

    46/94

    46O. El Beqqali

    exemple : systme dappel tlphonique

    Description de scnarios typiques et des

    exceptions

    temps

    Ligne

    tlphonique: Appelant : Appel

    Dcroche

    Tonalit

    Numrotation

    Indications de sonnerie*[pas dcroch] Sonnerie

    Dcroche

    Message synchrone

    Rponse dun message

    synchrone

    Diagrammes de squence

  • 8/8/2019 Cours Uml Oeb

    47/94

    47O. El Beqqali

    g qexemple : systme de gestion de comptes bancaires

    : Employ: Banque Comptes:Compte

    Compte?

    compte(noCompte)

    [ok=True] imprimASigner

    [ok=Faux] refus(retraitMax)

    ok := retrait(compte,montant)

    opration(retrait,montant)

    diminuer(montant)

    : A : B : A : B

    P(a,b)

    m m=P(a,b)

    Diagramme de squencele suivi des vnements (trace event)

  • 8/8/2019 Cours Uml Oeb

    48/94

    48O. El Beqqali

    ( )

    Exemple1 (Vente)

    Le suivi d'vnements est un diagramme qui prsente lasquence des vnements d'un scnario ainsi que les objets

    qui mettent et reoivent les vnements. Le temps augmente en partant du haut vers le bas, mais

    l'espace entre les vnements n'est pas proportionnel au

    temps. un Acheteur un Vendeur le Cataloguedemande le prix

    interrogedonne le prix de base

    tonnement

    se plaindre

    proposition prix

    nouveau produit

  • 8/8/2019 Cours Uml Oeb

    49/94

    49O. El Beqqali

    Di d ll b ti

    Diagrammes de collaboration

  • 8/8/2019 Cours Uml Oeb

    50/94

    50O. El Beqqali

    Diagrammes de collaborationDiagrammes de collaboration

    Reprsente les interactions entre objets et relationsstructurelles permettant celles-ci.

    Description:

    Du comportement collectif dun ensemble dobjets

    Des connexions entre ces objets Des messages changs par les objets

    Interaction ralise par un groupe dobjets qui collaborent en

    changeant des messages Temps non reprsent de manire implicite (numrotation

    des messages)

    Les interactions

  • 8/8/2019 Cours Uml Oeb

    51/94

    51O. El Beqqali

    Cabine

    Porte

    +ouvrir()+fermer()+tat()

    :Cabine

    :Porte

    ouvrir()

    Elments dune interaction instances

    liens (support messages)

    messages

    dclenchant les oprations rles jous par les extrmits de liens

    Interaction entre 2 objets instancesdes classes Cabine etPorte

    Modlisation dune cabine dascenseur qui demande une porte de souvrir

    Di d ll b ti

  • 8/8/2019 Cours Uml Oeb

    52/94

    52O. El Beqqali

    Diagrammes de collaboration

    : Ascenseur

    : Cabine

    : Voyant

    : Porte

    1: monter()

    3: fermer()

    2: allumer()

    4: dplacer(haut)

    Reprsentation de lordre des envois de messages pour lexempleDe lascenseur :

    i l di d / ll b i

  • 8/8/2019 Cours Uml Oeb

    53/94

    53O. El Beqqali

    quivalence diagrammes de squence / collaboration

    user 1bouton tage bouton

    ascenseurcontrleurascenseur

    ascenseur portesascenseur

    appui bouton tage

    allumerdplacer

    teindreouvrir

    portes ascenseur

    bouton tage

    ascenseur1:Appui bouton tage

    5: ouvrir 7: fermer

    3: dplacer

    user

    2: allumer

    4: teindre

    fermer

    timer

    6: timer

    contrleurascenseur

    F5(Rose)

    Diagrammede sequences

    Diagrammede collaboration

    P t ( k )

  • 8/8/2019 Cours Uml Oeb

    54/94

    54O. El Beqqali

    Paquetages (package)

    regroupement logique dlments de diagramme quientretiennent entre eux des relations troites

    clart / partage du travail dans une quipe un paquetage possde des lments de modlisation et peut

    en importer.

    forme gnrale du systme : hirarchie de paquetage +relations de dpendances entre paquetages (>,>)

    sous-systme : spcifie le comportement collectivementoffert par ses lments (en terme doprations)

    Paguetages: un espace de nommage

  • 8/8/2019 Cours Uml Oeb

    55/94

    55O. El Beqqali

    Client

    1

    1

    1

    1*

    *acheterconcerner

    Facturation::Facture Client Socit

    ProduitCommande

    nomDuPackage : : NomDeLaClasse

    Paquetages : exemple

  • 8/8/2019 Cours Uml Oeb

    56/94

    56O. El Beqqali

    Paquetages : exemple

    clientsGestion

    Reseaux

    Entreprise

    (from Client)

    Compte

    Banque

    Gestion

    >

    But : organiser un modle objet

    lien de dpendance

  • 8/8/2019 Cours Uml Oeb

    57/94

    57O. El Beqqali

    Diagrammes de classes

  • 8/8/2019 Cours Uml Oeb

    58/94

    58O. El Beqqali

    Diagrammes de classes

    Vue logique / statique / structurelle dun systme :les classes et leur relations

    Dans UML Classes : structures et comportements relations : associations, agrgations, dpendances,

    gnralisation/spcialisation, noms de rles contraintes indicateurs de multiplicit et de navigation

    Mais : toujours difficile de dterminer les classes il faut des mthodes

    Modle du domaine stable

    Objets dans les diagrammes de squence et de collaboration,

    Diagramme dobjets

    Diagramme dobjets

  • 8/8/2019 Cours Uml Oeb

    59/94

    59O. El Beqqali

    UneClasse

    priv : int

    publicprotg

    opprivee( )oppublique( )

    opprotge( )

    Diagramme d objetsDiagramme d objets

    Objet: unit atomique forme de lunion dun tat et dun comportement

    Etat dun objet: valeurs instantanes de tous ses attributs(ltat dun objet

    un moment donn est la consquence des comportements passs).

    Voiture de TotoVoiture de Toto

    CouleurCouleur == rougerougeMasseMasse == 895895 kgkgPuissancePuissance == 77 CVCV

    Voiture de TotoVoiture de Toto:: VVhiculehicule

    CouleurCouleur == rougerougeMasseMasse == 895895 kgkgPuissancePuissance == 77 CVCV

    (Rose)

    Visibilit et porte des attributs et des oprations :

    Public : llment est visible pour tous les clients de la classe

    Protg (protected): llment est visible pour les sous-classes de la classePriv (private): llment est visible pour la classe seule

    Nom objet : classe

    Diagramme de classes & objets

    Diagramme de classes & objets

  • 8/8/2019 Cours Uml Oeb

    60/94

    60O. El Beqqali

    ExempleExemple

    Roue

    Voiture

    4

    1

    4

    1

    Moteur11 11

    :Roue

    :Moteur

    :Roue :Roue

    :Voiture

    :Roue

    Diagramme de classes

    Diagramme dobjets

    est une instance de

    association

    lien

    Liens entre objets/relations entre classes

  • 8/8/2019 Cours Uml Oeb

    61/94

    61O. El Beqqali

    Liens et relations Possibilit de communication entre objets :interactions entre objets (cf. diagrammes)

    relation entre classes 3 grands types (voir plus loin)

    Associations ("est produit par", "est affili ", "se trouve ", "estconduit par") : dpendance entre classes, communication entreobjets

    Ex: un lecteur lit un livre (forme verbale)

    Agrgation/composition ("fait partie de") : objets composites /

    composantsEx : un train est compos de wagons

    Gnralisation/spcialisation ("est une sorte de") : hritage entreobjets,

    Exemple : un chat est une sorte danimal

    Associations

  • 8/8/2019 Cours Uml Oeb

    62/94

    62O. El Beqqali

    Associations

    Connexion bidirectionnelle entre classes

    Notation gnrale :

    Nom : forme verbale, sens de lecture avec flcheRles : forme nominale, identification extrmit association

    Multiplicit: 1, 0..1, M..N, *, 0..*, 1..*

    Classe 1 Classe 2nom association x..yx..y

    rle 1 rle 2

    Socit

    nom

    Personne

    nomemploie

    travaille pour

    dirige

    0..* 0..*0..1

    *

    employeur employ

    employs

    patron

    {contrainte}

    Multiplicit des associations

    Multiplicit des associations

  • 8/8/2019 Cours Uml Oeb

    63/94

    63O. El Beqqali

    Multiplicit des associationsp

    1 Un et un seul

    0..1 Zro ou 1

    N N (entier naturel)

    M..N De M N (entiers naturels)

    0..* De zro plusieurs

    1..* De 1 plusieurs

    Classes-Associations

  • 8/8/2019 Cours Uml Oeb

    64/94

    64O. El Beqqali

    Classes Associations

    Une classe-association est une association qui est

    aussi une classe. Les classes-associations sont utilises lorsque les

    associations doivent porter des informations Il est toujours possible de se passer des classes-associations. Company Employee

    Job

    * 1..*

    salary : undefined

    Associations qualifies (1)

  • 8/8/2019 Cours Uml Oeb

    65/94

    65O. El Beqqali

    q ( )

    Restrictions : slection dun sous-ensemble des objets quiparticipent lassociation laide dune cl

    1..* FichierNom fichier

    ContientRpertoire1

    Banquecentrale

    No banque

    Banque

    Remarque : Le rle dun qualificateur est de rduire la cardinalit dune association

    et joue le rle semblable une cl primaire dans une BDR.

    :A

    :B:B:B

    :B

    avec clsans cl{Linstance de A , valeur du qualificatif } identifie le sous ensemble des instance de B

    BA qualificatifqualificatif

    Exemple :

    A Bqualificatif *{sous-ensemble}

    Associations qualifies (2)

  • 8/8/2019 Cours Uml Oeb

    66/94

    66O. El Beqqali

    ce schma ne permet pas de dire que chaque sige a un numroqui est unique pour chaque avion.

    q ( )

    exemple

    Avec attribut qualifiant:

    un avion contientunsigepour un numrodonn.

    dans un avion, pour unerange donne, il y a 4 siges.

    Lagrgation

    Lagrgation

  • 8/8/2019 Cours Uml Oeb

    67/94

    67O. El Beqqali

    g gg g

    Association non symtrique Une des extrmits joue un rle prdominant par

    rapport lautre

    Une agrgation

    Agrgat Elment agrg

    EE--mailmailAttache

    Fichier*

    *

    Composition dobjets

  • 8/8/2019 Cours Uml Oeb

    68/94

    68O. El Beqqali

    Composition d objets Cas particulier dagrgation contenance physique

    Si destruction objetcompos destruction des composants

    Fentre

    CadreEn-tteAscenseur

    contenutitrebarre_dfilement

    1

    Fentre

    barre_dfilement : ascenseurtitre : en-ttecontenu : cadre

    Bouton Texte

    11

    2 1 1

    Exemple

    La composition

    La composition

  • 8/8/2019 Cours Uml Oeb

    69/94

    69O. El Beqqali

    p

    Agrgation forte

    Destruction du composite (x est une partie de y?)=> Destruction automatique de tous ses composants

    Livre Page

    Couverture

    1

    1

    1

    1..*

    {ordered}

    La contrainte { ordered } indique quela collection des pages dun livre est ordonne

    Exemple

    Agrgation

    Composition

  • 8/8/2019 Cours Uml Oeb

    70/94

    70O. El Beqqali

    Lhritage Moyen de raliser la classification ou

    lorganisation en classes vocabulaire rserver limplantation

    Principe de substitution : toutesles proprits dela classe parent doivent tre valables pour lesclasses enfant

    Hritages: simple / multiple

    Diagramme de classesGnralisation et spcialisation (1)

  • 8/8/2019 Cours Uml Oeb

    71/94

    71O. El Beqqali

    Spcialisation(symtrique gnralisation):raffinement de classe- par extension de proprits

    (ajouter un attribut)- par restriction de domaines

    de valeurs dattributs

    Transmission

    Continue Discrte

    Variateur Drailleur Bote de vitesse

    super-classe

    sous-classes{disjoint}

    {incomplte}

    Gnralisation :regroupement, est-

    un , sorte-de Vhicule terrestre

    Vhicule

    Vhicule arien

    Voiture Camion Avion Hlico

    contrainte

    Gnralisation/spcialisation (2)

    Gnralisation/spcialisation (2)

  • 8/8/2019 Cours Uml Oeb

    72/94

    72O. El Beqqali

    Relation de classification entre un lment

    plus gnral et un lment plus spcifiqueest un / est une sorte de ( is a / kind of )

    Animal

    Chat Chien

    Oeuvre

    +titre+auteur

    Livre

    Roman

    Livre

    Exemples (hritage) :

  • 8/8/2019 Cours Uml Oeb

    73/94

    73O. El Beqqali

    Hirarchies de classes Contraintes :

    {complte},{incomplte},{disjoint},

    Attributs / oprationscommuns sontmontres au niveau le

    plus haut.

    Facture

    date

    adressemontant

    imprimer()expdier()

    Facture_export

    devise_paiementmontant_devise

    convertir(devise)

    Facture_Maroc

    taux_TVAmontant_ttc

    calcul_ttc()

    Livraisonpour

    {complete}destination

    1 1..*

    La contrainte {complte} indique que la gnralisation esttermine et quil nest plus possible de rajouter des sous-classes.

  • 8/8/2019 Cours Uml Oeb

    74/94

    74O. El Beqqali

    Hritage multipleVhicule

    Vhicule terrest re Vhicule aquatique

    Automobile Vhicule amphibie Bateau

    {disjoint}

    Problme : conflits dhritage (un attribut vitesse_maxen km/h, en Nuds quhriter ?)

    En gnral, trs difficile utiliser : certains langages

    ngligent lhritage multiple

    Exemple :

    Construction du diagrammes

    Statecharts (1)

  • 8/8/2019 Cours Uml Oeb

    75/94

    75O. El Beqqali

    tats transitionStatecharts (1)

    Attach une classe ou un cas d'utilisation, il doit prsenter une classe par rapport sestats possibles et aux transitions qui le font voluer.

    Lorsque [vnement] => changement d'tatL'action peut tre conditionnelle : [condition] action.

    Un tat = image de la conjoncture instantane des valeurs des attributs dun objet

    & Prsence ou non de ses liens dautres objets.

    Une transition reprsente un changement d'tat ; elle est dclenche par un vnement.

    - Transitions peuvent tre automatiques

    peuvent tre conditionnes

    - Evnements

    dclenchent les transitions

    Construction du diagrammes

    tats transition Statecharts (2)

  • 8/8/2019 Cours Uml Oeb

    76/94

    76O. El Beqqali

    EVENEMENT_K(attributs)ETAT_I ETAT_J

    Etat final

    Etat initial

    Un Statechart est un graphe orient dont les nuds sont des tats et les arcssont des transitions.

    Entre : les diagrammes de squence et les diagrammes de classes

    Sortie : les diagrammes tats-transitionsTransformation mise en uvre

    une classe => un diagramme tats-transitions

    tats transition Statecharts (2)

    Statecharts (3)

  • 8/8/2019 Cours Uml Oeb

    77/94

    77O. El Beqqali

    Dans un tat, une activit est une opration squentielle qui se termine d'elle-mme aubout d'un certain temps, ou opration continue qui dure indfiniment (peut treinterrompue par l'arrive d'un vnement).

    Contrle des oprations:

    Uneactivitest une opration qui ncessite un certain temps dexcution; elle est

    associe un tat. Uneaction est une opration instantane (ou de dure non significative); elle est

    associe un vnement.

    ETAT

    faire : activit_1

    entre/ action_2

    sortie / action_3

    vnement/ action_4

    Actions associes un tat :

    action dentre : excution instantane de l action lors de lentre dans ltat.

    action de sortie : excution de l action au moment de quitter ltat.

    actions internes : excution dune action sur vnementsans changer dtat.

    Diagrammes dtats-transitions - Exemple

  • 8/8/2019 Cours Uml Oeb

    78/94

    78O. El Beqqali

    Raccrochattente Pice

    Attente

    Numro

    Attente

    Validit

    Communic-

    ation

    AttenteDcrochage

    racc rocherCombin

    Composer Numro

    Numro Valide

    Raccrocher Combin

    Incrmenter Crdit(p)

    DcrocherCombin[ Crdit>=0,5 ]

    Racc rocher Combin

    Raccrocher Combin

    Dbuter Communication

    taxer

    Systme Publiphone[P. Roques]

    Diagramme dactivits

  • 8/8/2019 Cours Uml Oeb

    79/94

    79O. El Beqqali

    commanderproduit

    grercommande

    expdierproduit

    recevoir

    produit

    payerfacture

    encaisserfacture

    :Commande

    etat = passe

    :Commande

    etat = envoye

    :Commande

    etat = regle

    Client Socit VPC

    *Montre le cycle de viedune classe donne.

    *En gnral divis encouloirs d'activit

    (Swimlanes)

    Fin

    Dbut

    Exemple : activit de vente par correspondance (VPC)

    On s'intresse plus aux actions qu'aux tats, il montre l'activit et le fonctionnementd'une opration d'une classe, par exemple.

    Diagramme de composants (1)

    Diagramme de composants (1)

  • 8/8/2019 Cours Uml Oeb

    80/94

    80O. El Beqqali

    Un diagramme de composant reprsente les

    composants logiciels dun systme Diagramme utilis dans la phase de conception /

    ralisation : lments physiques constituant le systme

    et leurs relations Dcrivent les lments physiques et leurs relations

    dans lenvironnement de ralisation sous forme demodules.

    Modules : toutes sortes dlments physiques (fichiers

    sources/donnes, excutables,bibliothques)

    Diagramme de composants (2)

  • 8/8/2019 Cours Uml Oeb

    81/94

    81O. El Beqqali

    g p ( )

    library

    libGL {v1.2}

    library

    libpng

    executable

    convert

    data

    .convertrc

    data

    input

    >

    >

    > >

    Exemple :

    Diagramme de dploiement (1)

    Diagramme de dploiement (1)

  • 8/8/2019 Cours Uml Oeb

    82/94

    82O. El Beqqali

    Montrent la disposition et lorganisationphysique des diffrents matriels qui entrent

    dans la composition d un systme et larpartition des programmes excutables sur

    ces matriels.La faon pour dployer les diffrenteslments dun systme

    Diagramme de dploiement (2)

  • 8/8/2019 Cours Uml Oeb

    83/94

    83O. El Beqqali

    Exemple :

    :Modem

    ADSL

    1..

    n

    1

    :StationUltraSPARC

    RAM >= 1GB

    1024 kB / s

    :PC

    client ssh:PC

    client telnet

    client NFS

    TCP/IP

    1

    0..n

    :Disque durSystme RAID

    1..

    n

    1

    Dmarche dapplication D'UML

  • 8/8/2019 Cours Uml Oeb

    84/94

    84O. El Beqqali

    tape 1 : laboration d'un diagramme de contexte du systme tudier:Prcision du champ du systme tudier

    tape 2 :identification et reprsentation des cas d'utilisation :

    Identification des fonctions du systmetape 3 : description et reprsentation des scnarios:chaquecas d'utilisation se traduit par un certain nombre de scnarios.Chaque scnario fait l'objet d'une description textuelle. Chaque scnario est ensuite

    dcrit sous forme graphique l'aide du diagramme de squence et/ou diagrammede collaboration.

    tape 4 :identification des objets et classestape 5 : laboration du diagramme de classes

    tape 6: laboration du diagramme tat-transition :pour chaque classe importante c'est dire prsentant un intrt pour le systme modliser, un diagramme tat-transition est labor.

    tape 7 :consolidation et vrification des modles:

    Itration des tapes 3, 4, 5 et 6 => niveau suffisant pour la description du systme.

    UML & Bases de donnes (1)

  • 8/8/2019 Cours Uml Oeb

    85/94

    85O. El Beqqali

    0 . . 1

    0 . . *

    E T U D I A N T

    < < R e l a t i o n a l T a b l e > >

    E N S E IG N A N T

    < < R e l a t i o n a l T a b l e > >C O U R S

    D E B U T : D A T E

    D I N : DA T E

    < < R e la t i o n a lT a b le > >

    0 . . * 0 . . *0 . . *

    + In s c ri t + S u iviP a r 0 . . 10 . . *

    + E n s e ig n

    0 . . 1

    + E n s e i g n P a r

    0 . . *

    S A L L E

    < < R e l a t i o n a l T a b l e > >

    + A l ie u D a n s

    + A c c u e i l l e

    0 . . *

    0 . . 1strotype

    -DataModelerde Rose (seul ou intgr) ,outil de dveloppement d'applications etde modlisation mtier (en plein essor pourla modlisation de donnes).

    2 approches

    -Assistantde cration deschmas de BD (Oracle)

    UML & Bases de donnes (2)

  • 8/8/2019 Cours Uml Oeb

    86/94

    86O. El Beqqali

    P e rs o n n e

    M a tr i c u l e : S M A L L I N T

    N o m : V A R C H A R (2 5 5 )

    A d re ss e : V A R C H A R (2 5 5 )

    T l e : V A R C H A R (2 5 5 )

    ( f r o m R e l a ti o n n e l)

    C li e n t

    I d C l i : S M A L L I N T

    D a t e N a s : D A T E

    M a t r i c u l e : S M A L L I N T

    ( f r o m R e l a ti o n n e l)

    1

    0 . . *

    1

    0 . . *

    < < I d e n t i f y i n g > >

    F o u rn i s se u r

    I d F o u r n : S M A L L I N T

    R a i s_ S o c : V A R C H A R ( 2 5 5 )

    M a t ri c u l e : S M A L L I N T

    ( f r o m R e l a ti o n n e l)

    1

    0 . . *

    1

    0 . . *

    < < I d e n t i fy i n g > >

    P r o d u i t

    N u m P r o d : S M A L L I N T

    D s ig n a t i o n : V A R C H A R ( 2 5 5 )

    P r i x U : S M A L L I N T

    I d F o u r n : S M A L L I N T

    M a t ri c u l e : S M A L L I N T

    ( f r o m R e l a ti o n n e l)

    1

    1 . . *

    1

    1 . . *

    < < N o n - I d e n t i f y i n g > >

    L i g n e C o m m a n d e

    N u m P r o d : S M A L L I N T

    I d C d e : S M A L L I N T

    ( f r o m R e l a ti o n n e l)

    1

    0 . . *

    1

    0 . . *

    < < Id e n t i f y i n g > >

    C o m m a n d e

    I d C d e : S M A L L I N TD a t e C d e : D A T E

    I d C l i : S M A L L I N T

    M a t r i c u l e : S M A L L I N T

    ( f r o m R e l a ti o n n e l)

    1

    1 . . *

    1

    1 . . *

    < < N o n -I d e n ti f y in g > >

    1

    0 . . *

    1

    0 . . *

    < < I d e n t i f y i n g > >

    DataModelerde Rose

    strotype visuel

    schma de BD

    gnr partir

    dun diagramme de

    classes (package)

  • 8/8/2019 Cours Uml Oeb

    87/94

    87O. El Beqqali

    gnrateurs UML -> code Diffrents types :objet , bases de donnes

    Automatique ? information dans les modles insuffisante paramtrage des outils : traduction des associations,

    mthodes engendres automatiquement degr de traduction dpend du langage cible

    Modle structurel largement traduit squelette des classes ( complter) hritage, associations,

  • 8/8/2019 Cours Uml Oeb

    88/94

    88O. El Beqqali

    Outils standards Rational Rose

    Outil de plus important du march http://www.rational.com (rachet par IBM)

    Together Outil fortement coupl avec Java http://www.togethersoft.com Rachet par Borland

    ArgoUML Outil Open Source http://argouml.tigris.org

    Visio

    Outil non complet de microsoft http://www.microsoft.com/office/visio

    Traduction en objet (C++)

  • 8/8/2019 Cours Uml Oeb

    89/94

    89O. El Beqqali

    #ifndef COURS#define COURS

    class Eleve

    class Cours {

    public:

    void associer(un_module : string) ;

    void set_titre(const string value) ;

    const string get_titre() const ;

    void set_module(const string value) ;

    const string get_module() const ;

    protected:

    Eleve* Eleves ;

    private:

    string titre ;

    string module ;

    }

    #endif

    Eleve

    annee : date

    Cours

    -titre : string-module : string

    0..*0..*

    associer(string)

    #eleves cours

    assiste

    #include "Eleve.h"

    #include Cours.h"

    void Cours::associer(un_module : string)

    {/* A ECRIRE */

    }

    void Cours::set_titre(const string value)

    { titre = value ; }const string Cours::get_titre()

    { return titre ; }

    void Cours::set_module(const string value)

    { module = value ; }

    const string Cours::get_module(){ return module ; }

  • 8/8/2019 Cours Uml Oeb

    90/94

    90O. El Beqqali

    Traduction en relationneleleve

    annee : date

    cours

    -titre : string-module : string

    10..*

    associer(string)

    #eleves cours

    assiste

    CREATE TABLE eleve (

    eleve_id NUMBER (5) ,

    annee DATE,

    PRIMARY KEY (eleve_id)) ;

    CREATE TABLE cours (

    cours_id NUMBER (5) ,titre CHAR (128) ,

    module CHAR(48) ,

    PRIMARY KEY (cours_id),

    eleve_id NUMBER (5) REFERENCES eleve(eleve_id)

    ) ;

    Ncessit de la rtro-ingnierie

    (reverse engineering)

  • 8/8/2019 Cours Uml Oeb

    91/94

    91O. El Beqqali

    Objectif Faire voluer le modle en mme

    temps que limplantation

    Modle UML

    Implantation

  • 8/8/2019 Cours Uml Oeb

    92/94

    92O. El Beqqali

    Conclusions

  • 8/8/2019 Cours Uml Oeb

    93/94

    93O. El Beqqali

    Proprits dUML

    Unification des concepts de modlisation

    Puissance dexpression

    Nombreux formalismes (issus de mthodes existantes)

    Mcanismes dextension inclus (strotypes)

    Description par un mta-modle (syntaxe et smantique des modles)

    Compromis formalisation / niveau dabstraction(impression quUML est une mthode)

    UML est devenu un standard international : adopt un peu partout (universel)

    les modles sont simples, faciles lire et communiquer difficult pour des systmes trs complexes, do la ncessit doutils

    Les outils puissants sont nombreux (Rose, Rhapsody, Select, Objectoring....)

  • 8/8/2019 Cours Uml Oeb

    94/94

    94O. El Beqqali

    BibliographiePrsentation dUML non exhaustive , pour la description exacte de toute la syntaxe et la smantique :

    Rfrences :

    www.omg.org, www.rational.com

    A. Muller : Modlisation objet avec UML , Eyrolles, 2000 P. Roques, UML par la pratique , Eyrolles, 2004

    J. Rumbaugh, I. Jacobson, and E. Booch, The Unified

    Modeling Language Reference Manual . Reading, MA:Addison-Wesley, 1999.

    Web.