coursmcoo

Upload: azza

Post on 04-Feb-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/21/2019 CoursMCOO

    1/171

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Modlisation et Conception Oriente-Objet

    Frdric Dadeau

    Laboratoire dInformatique de luniversit de Franche-Comt

    Bureau 421C

    [email protected]

    Licence 3 Informatique

    1/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    http://goforward/http://find/http://goback/
  • 7/21/2019 CoursMCOO

    2/171

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    M.C.O.O.Mthodes de dveloppementConcepts objetU.M.L.

    Plan du cours

    1 Prsentation du module MCOOM.C.O.O.

    Mthodes de dveloppement

    Concepts objet

    U.M.L.

    2 Les diagrammes des aspects statiques

    Diagrammes de cas dutilisation

    Diagrammes de classes et dobjets

    Diagrammes de composants

    Diagrammes de dploiement

    3 Les diagrammes des aspects dynamiques

    Diagrammes de squence

    Diagrammes de collaboration

    Diagrammes dtats-transition

    Diagrammes dactivit

    2/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    http://find/
  • 7/21/2019 CoursMCOO

    3/171

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    M.C.O.O.Mthodes de dveloppementConcepts objetU.M.L.

    M.C.O.O. quest-ce que cest ?

    Modlisation et

    Conception

    Orient

    Objet

    3/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    http://find/
  • 7/21/2019 CoursMCOO

    4/171

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    M.C.O.O.Mthodes de dveloppementConcepts objetU.M.L.

    M.C.O.O. quest-ce que cest ?

    Modlisation ettablir un modle

    Conceptionlaborer, se reprsenter quelque chose

    Orient

    Objetvers lobjet

    MCOO : modliser et concevoir en utilisant les objets du monde rel.

    3/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    M C O O

    http://find/
  • 7/21/2019 CoursMCOO

    5/171

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    M.C.O.O.Mthodes de dveloppementConcepts objetU.M.L.

    Cours : 3 sances + 1 interrogation crite

    lundi 14 septembre de 13h30 15h

    mardi 15 septembre de 13h30 15h

    lundi 21 septembre de 11h 12h30

    Travaux dirigs : 10 sances (dont 1 interrogation crite)

    TD1 : mardi de 15h 16h30TD2 : mardi de 13h30 15h

    Travaux pratiques : 1 sance de 1h30 la semaine du 30 novembre

    TP A : jeudi de 13h30 15h

    TP AB : lundi de 9h30 11h

    TP B : lundi de 16h30 18h

    Travail personnel : tude de cas travailler en autonomie (crneaux de TP rservs)

    4/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    M C O O

    http://find/
  • 7/21/2019 CoursMCOO

    6/171

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    M.C.O.O.Mthodes de dveloppementConcepts objetU.M.L.

    Historique des mthodes de dveloppement

    Lies aux langages de programmations.

    Les mthodes fonctionnelles (1970 )

    Dcomposition dune fonction en plusieurs sous-fonctions.

    Architecture base sur la dcomposition fonctionnelle : peu dvolutions possibles

    Peu de rutilisation des composants

    Les mthodes classiques (1980 )

    Modlisation des donnes et des traitements.

    JSD : Jackson System Development

    MACH : Mthode dAnalyse et de Conception Hirarchise

    MERISE : Mthode dEtude et de Ralisation Informatique pour les SystmesdEntreprise

    SADT : Structured Analysis and Design Technique

    SASD : Structured Analysis Structured Design

    5/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    d d l M C O O

    http://find/
  • 7/21/2019 CoursMCOO

    7/171

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    M.C.O.O.Mthodes de dveloppementConcepts objetU.M.L.

    Historique des mthodes de dveloppement

    Lies aux langages de programmations.

    Les mthodes objet

    Objet = abstraction des entits du monde rel

    aide visualiser les objets tel quils sont ou tels quon le souhaite

    permet de spcifier la structure ou le comportement dun objet

    fournit un guide pour la construction du systme

    documente les dcisions prises lors de la construction dun systme

    Quelques mthodes orientes-objet

    OOA : Object Oriented Analysis, Schlaer/Mellor (1988,91,93)

    OOD : Object Oriented Design, Booch (1991,93)

    OMT : Object Modelling Technique, Rumbaugh (1991,95)

    OOSE : Object Oriented Software Engineering, Jacobson (1992)

    5/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    i d d l COO M C O O

    http://find/http://goback/
  • 7/21/2019 CoursMCOO

    8/171

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    M.C.O.O.Mthodes de dveloppementConcepts objetU.M.L.

    Unification des mthodes

    Unified Method

    auteurs : Booch, Rumbaugh et Jacobson

    rapprochement de leurs mthodes + cas dutilisation

    Historique de la cration dUML1995 Dbut du travail sur la mthode unifie

    1996 Cration dun consortium de partenaires pour travailler sur la dfinition dUMLdans lOMG

    1997 UML 1.1 (normalis par lOMG)

    1998 UML 1.21999 UML 1.3

    2001 UML 1.4

    2003 UML 1.5

    2005 UML 2.0

    6/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    P t ti d d l MCOO M.C.O.O.

    http://find/
  • 7/21/2019 CoursMCOO

    9/171

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    M.C.O.O.Mthodes de dveloppementConcepts objetU.M.L.

    Unification des mthodes

    Unified Method

    auteurs : Booch, Rumbaugh et Jacobson

    rapprochement de leurs mthodes + cas dutilisation

    Object Management Group OMGOrganisation internationale cre en 1989

    Plus de 800 membres (informaticiens et utilisateurs)

    Vise promouvoir la thorie et la pratique de la technologie objet dans ledveloppement logiciel

    Egalement la base des standards Meta-Object Facility (MOF), COmmonRequest Broker Architecture (CORBA) et Interface Definition Language (IDL)

    6/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    http://find/
  • 7/21/2019 CoursMCOO

    10/171

    Prsentation du module MCOO M.C.O.O.h d d d l

  • 7/21/2019 CoursMCOO

    11/171

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Mthodes de dveloppementConcepts objetU.M.L.

    UML : Unified Modeling Language

    Notation graphique de modlisation objets

    Permet de visualiser, spcifier, construire et documenter les diffrentes partiesdun systme logiciel

    Langage graphique, bas sur des diagrammes (9 pour UML 1.5, 13 pour UML2.0)

    Pas une mthode !mais utilisable dans tout le cycle de dveloppement dunlogiciel

    Buts initiaux des concepteurs dUML

    reprsenter des systmes entiers (pas uniquement logiciels) par des conceptsobjets ;

    lier explicitement des concepts et le code qui les implantent ;

    pouvoir modliser des systmes diffrents niveaux de granularit (pourpermettre dapprhender des systmes complexes) ;

    crer un langage de modlisation utilisable la fois par les humains et lesmachines.

    7/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOO M.C.O.O.h d d d l

    http://find/
  • 7/21/2019 CoursMCOO

    12/171

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Mthodes de dveloppementConcepts objetU.M.L.

    Lobjet

    Entit du monde rel (ou virtuel) centralisant les donnes et les traitements associs.

    Objet = Identit + Etat + Comportement

    8/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOO M.C.O.O.M h d d d l

    http://find/
  • 7/21/2019 CoursMCOO

    13/171

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Mthodes de dveloppementConcepts objetU.M.L.

    Lobjet

    Entit du monde rel (ou virtuel) centralisant les donnes et les traitements associs.

    Objet = Identit + Etat + Comportement

    Identit dun objet

    Proprit qui permet de distinguer un objet par rapport aux autres sans ambiguts.Distingue deux objets dont les valeurs des diffrents attributs sont identiques.

    8/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOO M.C.O.O.Mthodes de dveloppement

    http://find/
  • 7/21/2019 CoursMCOO

    14/171

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Mthodes de dveloppementConcepts objetU.M.L.

    Lobjet

    Entit du monde rel (ou virtuel) centralisant les donnes et les traitements associs.

    Objet = Identit + Etat + Comportement

    Identit dun objet

    Proprit qui permet de distinguer un objet par rapport aux autres sans ambiguts.Distingue deux objets dont les valeurs des diffrents attributs sont identiques.

    Etat dun objet

    Valeur de tous ses attributs un tat donn.Un attribut est une information qui qualifie lobjet qui la contient.

    8/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOd d

    M.C.O.O.Mthodes de dveloppement

    http://find/
  • 7/21/2019 CoursMCOO

    15/171

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Mthodes de dveloppementConcepts objetU.M.L.

    Lobjet

    Entit du monde rel (ou virtuel) centralisant les donnes et les traitements associs.

    Objet = Identit + Etat + Comportement

    Identit dun objet

    Proprit qui permet de distinguer un objet par rapport aux autres sans ambiguts.Distingue deux objets dont les valeurs des diffrents attributs sont identiques.

    Etat dun objet

    Valeur de tous ses attributs un tat donn.Un attribut est une information qui qualifie lobjet qui la contient.

    Comportement dun objet

    Dfinit lensemble des oprations que lobjet peut excuter en raction aux messagesenvoys par les autres objets.Ltat et le comportement sont lis.

    8/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    http://find/
  • 7/21/2019 CoursMCOO

    16/171

    Prsentation du module MCOOL di d t t ti

    M.C.O.O.Mthodes de dveloppement

  • 7/21/2019 CoursMCOO

    17/171

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Mthodes de dveloppementConcepts objetU.M.L.

    Relations entre classes

    Association

    Relation entre plusieurs classes.Elles reprsentent une abstraction des diffrents liens qui peuvent exister entre lesdiffrents objets.

    Agrgation et compositionForme particulire dassociation entre deux classes.

    Exprime le fait quune classe est compose dune ou plusieurs autres classes.

    Spcialisation et gnralisation

    Le mcanisme dhritage permet de dfinir de nouvelles classes partir de classes djexistantes.

    Gnralisation : factorisation dans une classe (appelle super-classe) deproprits de plusieurs classes

    Spcialisation : inverse de le gnralisation, consiste crer partir dune classeplusieurs classes spcialises.

    10/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    M.C.O.O.Mthodes de dveloppement

    http://find/
  • 7/21/2019 CoursMCOO

    18/171

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    ppConcepts objetU.M.L.

    Notions relatives aux composants des classes

    Encapsulation

    Possibilit de masquer certains dtails de limplantation. Peut-tre ralis enparticuliers par des constituants privs des objets.

    Polymorphisme

    Poly = plusieurs, morphisme = forme

    Caractristique dun lment qui peut se prsenter sous plusieurs formes.

    Capacit donne une mme opration de seffectuer diffremment suivant lecontexte de la classe o elle se trouve.

    11/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    M.C.O.O.Mthodes de dveloppement

    b

    http://find/
  • 7/21/2019 CoursMCOO

    19/171

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques Concepts objetU.M.L.

    Les diagrammes dUML

    Un diagramme donne lutilisateur la possibilit de visualiser et de manipuler deslments de modlisation.UML 2.0 comporte 13 diagrammes permettant de modliser diffrents aspects dunsystme. On se focalisera dans ce cours sur les 9 diagrammes issus dUML 1.5.

    2 catgories de diagrammes UML

    Aspects statiques (structure logicielle et physique) 5 diagrammes

    Aspects dynamiques (comportements) 4 diagrammes

    12/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    M.C.O.O.Mthodes de dveloppementC bj

    http://find/
  • 7/21/2019 CoursMCOO

    20/171

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques Concepts objetU.M.L.

    Les diagrammes dUML

    Un diagramme donne lutilisateur la possibilit de visualiser et de manipuler deslments de modlisation.UML 2.0 comporte 13 diagrammes permettant de modliser diffrents aspects dunsystme. On se focalisera dans ce cours sur les 9 diagrammes issus dUML 1.5.

    Diagrammes des aspects statiques

    1 Diagramme de cas dutilisation : reprsente les fonctions du systme du pointde vue de lutilisateur.

    2 Diagramme de classes : dfinit les classes et les relations entre les classes.

    3 Diagramme dobjets : dfinit les instances des classes, ainsi que les liens entreces instances.

    4 Diagramme de composants : permet de dcrire les composants (ou modules)dun systme (fichiers sources, fichiers objets, librairies excutables).

    5 Diagramme de dploiement : dcrit la disposition physique du matriel et larpartition des composants sur le matriel.

    12/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    M.C.O.O.Mthodes de dveloppementC t bj t

    http://find/
  • 7/21/2019 CoursMCOO

    21/171

    g p quLes diagrammes des aspects dynamiques Concepts objetU.M.L.

    Les diagrammes dUML

    Un diagramme donne lutilisateur la possibilit de visualiser et de manipuler deslments de modlisation.UML 2.0 comporte 13 diagrammes permettant de modliser diffrents aspects dunsystme. On se focalisera dans ce cours sur les 9 diagrammes issus dUML 1.5.

    Diagrammes des aspects dynamiques

    6 Diagramme de squences : reprsente les interactions dun point de vuechronologique ; dune part, les interactions entre le systme et les acteurs et,dautre part, les interactions entre les objets lintrieur du systme.

    7 Diagramme de collaboration : reprsente les interactions entre objets dun pointde vue spacial.

    8 Diagramme dtats-transitions : automates hirarchiques permettant reprsenterles comportements dun acteur, dun systme ou dun objet dune certaine classe.

    9 Diagramme dactivits : permet de modliser le comportement dune mthodeen reprsentant un enchanement dactivits.

    12/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    M.C.O.O.Mthodes de dveloppementConcepts objet

    http://find/
  • 7/21/2019 CoursMCOO

    22/171

    g p qLes diagrammes des aspects dynamiques Concepts objetU.M.L.

    Les diagrammes dUML

    Un diagramme donne lutilisateur la possibilit de visualiser et de manipuler deslments de modlisation.UML 2.0 comporte 13 diagrammes permettant de modliser diffrents aspects dunsystme. On se focalisera dans ce cours sur les 9 diagrammes issus dUML 1.5.

    4 diagrammes UML 2.0 (non traits en cours)

    Diagramme de paquetages : permet de dcrire les interactions entre lespaquetages (paquetage = structure logique de regroupement et dorganisationdes lments du modle UML).

    Diagramme de structure composite : dcrit sous la forme dune bote blancheles relations entre les composants dune classe.

    Diagramme global dinteraction : permet de dcrire les enchanements possiblesentre les scnarios pralablement identifis sous forme de diagrammes desquences.

    Diagramme de temps : permet de dcrire les variations dune donne au coursdu temps.

    12/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    d d d

    Diagrammes de cas dutilisationDiagrammes de classes et dobjetsDiagrammes de composants

    http://find/
  • 7/21/2019 CoursMCOO

    23/171

    Les diagrammes des aspects dynamiques Diagrammes de composantsDiagrammes de dploiement

    Les aspects statiques

    Les diagrammes de cas dutilisation

    Les diagrammes de classes et dobjets

    Les diagrammes de composantsLes diagrammes de dploiement

    13/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    L di d d i

    Diagrammes de cas dutilisationDiagrammes de classes et dobjetsDiagrammes de composants

    http://find/
  • 7/21/2019 CoursMCOO

    24/171

    Les diagrammes des aspects dynamiques Diagrammes de composantsDiagrammes de dploiement

    Diagramme des cas dutilisation

    Les cas dutilisation permettent de dcrire le systme du point de vue de lutilisateur.Ils permettent de dfinir les limites du systme et les relations entre le systme et sonenvironnement.

    Identification des acteurs

    Un acteur reprsente un rle jou par une personne ou une chose qui interagit avec lesystme.

    N.B. : Une mme personne physique peut correspondre plusieurs acteurs si celle-ci

    peut jouer plusieurs rles.

    14/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    L di d t d i

    Diagrammes de cas dutilisationDiagrammes de classes et dobjetsDiagrammes de composants

    http://find/
  • 7/21/2019 CoursMCOO

    25/171

    Les diagrammes des aspects dynamiques Diagrammes de composantsDiagrammes de dploiement

    Acteurs et cas dutilisation

    Cas dutilisation : fonctionnalit du systme utilise par un acteur.

    Un acteur qui interagit avec le systme pour utiliser une fonctionnalit est reprsentpar une relation entre cet acteur et le cas dutilisation reprsentant cettefonctionnalit.On dit que lacteur dclenche le cas dutilisation auquel il est li.

    15/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjetsDiagrammes de composants

    http://find/
  • 7/21/2019 CoursMCOO

    26/171

    Les diagrammes des aspects dynamiques g pDiagrammes de dploiement

    Exemple de cas dutilisation

    Distributeur de billets

    Un premier acteur : client, consulte le solde de son compte, ou retire delargent.

    Un second acteur : technicien, allume, teint ou ravitaille le distributeur.

    On note quun rectangle symbolise les limites du systme.

    16/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjetsDiagrammes de composants

    d d l

    http://find/
  • 7/21/2019 CoursMCOO

    27/171

    Les diagrammes des aspects dynamiques Diagrammes de dploiement

    Inclusion entre deux cas dutilisation

    Un cas dutilisation, nomm source, inclut un cas dutilisation nomm destination, siles comportements dcrits par le cas source contiennent les comportements dcrits parle cas destination.

    Notation de linclusion

    Utilis en particulier pour factoriser une fonctionnalit partage par plusieurs cas

    dutilisation.

    17/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjetsDiagrammes de composantsDi d d l i

    http://goforward/http://find/http://goback/
  • 7/21/2019 CoursMCOO

    28/171

    Les diagrammes des aspects dynamiques Diagrammes de dploiement

    Extension dun cas dutilisation

    Un cas dutilisation, nomm source, tend un cas dutilisation nomm destination, siles comportements dcrits par le cas source tendent les comportements dcrits par lecas destination.

    Notation de lextension

    Lextension peut tre soumise une condition.

    18/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjetsDiagrammes de composantsDi d d l i t

    http://find/
  • 7/21/2019 CoursMCOO

    29/171

    g p y q Diagrammes de dploiement

    Exemple dinclusion et dextension

    Systme de virements par internet

    Client local : virements (incluant une identification)

    Client distant : virements par internet (tendant le virement standard)

    19/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    http://find/
  • 7/21/2019 CoursMCOO

    30/171

    g p y q Diagrammes de dploiement

    Petit exercice

    Enonc

    On souhaite modliser les interactions de diffrents utilisateurs avec un systme devalidation de cartes de crdit (basiquement un terminal avec un lecteur de cartes).

    Les cartes de crdit sont dtenues par des clients, pouvant tre soit des personnesindividuelles ou une entreprise, et sont utilises sous la supervision dune institution.Une institution commerciale supervise les transactions et le traitement de factures desclients.

    Une institution financire supervise galement ces factures, mais soccupe aussi degrer le compte du client, avec son accord.

    20/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    http://find/
  • 7/21/2019 CoursMCOO

    31/171

    Diagrammes de dploiement

    Petit exercice

    Une solution possible

    Cette solution fait apparatre un hritage entre acteurs : les comportements de chacundes deux sous-acteurs sont factoriss dans le super-acteur.

    20/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    http://find/
  • 7/21/2019 CoursMCOO

    32/171

    Diagrammes de dploiement

    Les aspects statiques

    Les diagrammes de cas dutilisation

    Les diagrammes de classes et dobjets

    Les diagrammes de composants

    Les diagrammes de dploiement

    21/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    http://find/
  • 7/21/2019 CoursMCOO

    33/171

    g p

    Les diagrammes de classes et dobjets

    Le diagramme de classes

    Il se prsente sous la forme dun rseau :

    de classes, dcrivant un ensemble dobjets, et

    dassociations, decrivant un ensemble de liens.

    Il donne les informations sur les liens dun objet vers les autres objets.Le but est de dcrire ce quil faut raliser, et non pas comment le raliser.

    Le diagramme dobjets

    Cest une instanciation dun diagramme de classe. Il se prsente sous la forme dun

    rseau :dobjets, instances des classes du diagramme associ, et

    de liens, dcrivant les interactions existantes entre les objets

    22/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    http://find/
  • 7/21/2019 CoursMCOO

    34/171

    g p

    2.1. Les classes

    23/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    http://find/http://goback/
  • 7/21/2019 CoursMCOO

    35/171

    La notion de classe

    Dfinition

    Une classe est une abstraction qui reprsente un ensemble dobjets, ayant unestructure et un comportement commun.Par exemple : Etudiant est une classe dobjets.

    Un objet est une instance de sa classe ; une classe est dite instancie lorsquellecontient au moins un objet.

    Concrtement ...

    Une classe contient :

    un nom

    des attributs

    des oprations

    24/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    http://find/
  • 7/21/2019 CoursMCOO

    36/171

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

  • 7/21/2019 CoursMCOO

    37/171

    Les attributs

    Un attribut est une proprit dun objet de la classe qui comporte :

    un nom (unique dans sa classe)

    un type (facultatif, mais conseill)

    une valeur initiale (facultative)

    Un attribut est dit driv si sa valeur peut tre calcule partir dattributsnon-drivs. Leurs noms sont prcds par /.

    Attribut driv

    Chaque attribut une valeur pour chaque instance de classe. Les instances de classepeuvent avoir des valeurs identiques ou diffrentes pour un attribut donn.

    26/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    http://find/
  • 7/21/2019 CoursMCOO

    38/171

    Les oprations et les mthodes

    Une opration est un service offert par les objets de la classe.En UML, on distingue opration et mthodes :

    une opration spcifie un service

    une mthode implante une opration

    Syntaxe dune opration

    Opration (mode1 arg1 : Type1 = Val1, . . ., modeN argN : TypeN = ValN) : TypeR

    Le modepeut tre : in (paramtre dentre), out (paramtre de sortie), inout(paramtre dentre et de sortie). Le mode par dfaut est in.

    Les paramtres, le type et la valeur initiale sont optionnels.

    27/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    http://find/
  • 7/21/2019 CoursMCOO

    39/171

    Visibilit des attributs et des oprations

    Il y a 4 niveau de visibilit qui peuvent sappliquer aux attributs et aux oprations.

    Le niveau public (+), qui indique quun lment est visible par tous les clientsde la classe.

    Le niveau protg (#), qui indique quun lment nest accessible que pour lessous-classes de la classe o il apparat.

    Le niveau paquetage (), qui indique quun lment est visible uniquement pourles classes dfinies dans le mme paquetage.

    Le niveau priv (-), qui indique que seule la classe o est dfini cet lment peut

    y accder.

    28/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    http://find/
  • 7/21/2019 CoursMCOO

    40/171

    Nombres complexes, sans prciser limplantation

    Nombres complexes, implantation laide du module et de largument

    Nombres complexes, implantation laide de la partie relle et de la partie imaginaire

    29/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    http://find/
  • 7/21/2019 CoursMCOO

    41/171

    Classes utilitaires

    Une classe utilitaire permet de regrouper un ensemble de valeurs (valeurs dattributs)et doprations. Elle ne peut tre instancie et ne comporte que des attributs ouoprations de classe.

    Classe utilitaire Math

    30/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    http://find/
  • 7/21/2019 CoursMCOO

    42/171

    Strotypes sur les classes

    Une classe peut admettre un strotype, crit entre chevrons au dessus du nom de laclasse. Similairement, les strotypes peuvent sappliquer certaines oprations desclasses.Les strotypes permettent dtendre la smantique des lments de modlisation. Ilspermettent de dfinir de nouvelles classes dlments de modlisation, en plus du

    noyau prdfini par UML. UML propose de nombreux strotypes standards maisdautres plus spcifiques peuvent tre crs pour des besoins de modlisation.

    Quelques strotypes standards

    thread , appliqu une classe, qui indique que cette classe reprsente unprocessus lger

    utility , appliqu une classe, qui indique que cette classe est une classeutilitaire

    constructor , getter , setter , appliqus des oprations.

    31/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    http://find/
  • 7/21/2019 CoursMCOO

    43/171

    Prsentation du module MCOOLes diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

  • 7/21/2019 CoursMCOO

    44/171

    Dfinition dune association

    Une association est une relation n-aire entre n classes dobjets. Les relations les plusutilises sont les relations binaires, entre deux classes.

    Exemple dassociation informel

    Relation de possession entre une personne et un compte courant.

    Classes : Personne et Compte

    Association : relation possde

    33/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    http://find/
  • 7/21/2019 CoursMCOO

    45/171

    Dfinition dune association

    Une association est une relation n-aire entre n classes dobjets. Les relations les plusutilises sont les relations binaires, entre deux classes.On appelle lien linstanciation dune association entre deux objets.

    Exemple de lien informelPierre Dupont possde le compte dont le solde est -400.

    33/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    http://find/
  • 7/21/2019 CoursMCOO

    46/171

    Prsentation du module MCOOLes diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

  • 7/21/2019 CoursMCOO

    47/171

    Les multiplicits

    La multiplicit prcise combien dinstances dune classe peuvent se rattacher uneseule instance dune classe associe.

    Valeurs de multiplicit

    1 un et un seul0..1 cas optionnel

    N si on connat la valeur, on la prcise

    M..N intervalle de valeurs (de M N N N)

    0 ou plusieurs (identique 0..)

    1.. au moins un

    Graphiquement, la multiplicit se place du ct de la classe quelle dcrit.

    35/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    http://find/
  • 7/21/2019 CoursMCOO

    48/171

    Dun point de vue mathmatique

    Les associationsUne association entre deux classes A et Best une relation binaire, au sensmathmatique, cest--dire un sous-ensemble de AB.

    RA B (1)

    Il est donc impossible davoir deux liens diffrents symbolisant une mme association

    entre deux objets identiques.

    Les relations

    Soit Rune relation entre deux classes A et B, avec les multiplicits MA, associe A,et MB, associe B. Les multiplicits MA et MBimposent les contraintes suivantes :

    Pour chaque objet bde la classe B, le nombre dobjets de la classe A lis b

    appartient MA.

    bB, card{(a, b) R; a A} MA (2)

    Pour chaque objet a de la classe A, le nombre dobjets de la classe B lis aappartient MB.

    a A, card{(a, b) R; bB} MB (3)

    36/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    http://find/
  • 7/21/2019 CoursMCOO

    49/171

    Un exemple : compte et personne

    Diagramme de classes

    Ceci signifie :

    Une personne peut ouvrir un nombre quelconque de comptes

    Un compte est ouvert pour une ou deux personnes

    37/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    http://find/
  • 7/21/2019 CoursMCOO

    50/171

    Un exemple : compte et personne

    Diagramme de classes

    Un diagramme dobjets correct

    37/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisation

    Diagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    http://find/
  • 7/21/2019 CoursMCOO

    51/171

    Un exemple : compte et personne

    Diagramme de classes

    Un diagramme dobjets incorrect

    37/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisation

    Diagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    b l d

    http://find/
  • 7/21/2019 CoursMCOO

    52/171

    Navigabilit dune association

    Par dfaut, une association est navigable dans les deux sens.

    Diagramme de classes

    partir dune personne, on peut retrouver les comptes qui lui sont associs ;

    partir dun compte on peut retrouver son (ou ses deux) propritaire(s)

    Pour spcifier quun seul sens de navigation est autoris, on peut orienter la relation.

    Association oriente

    A partir dun objet de la classe A, on peut accder aux objets de la classe B qui luisont lis. Linverse nest pas autoris.

    38/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisation

    Diagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    L i d l

    http://find/
  • 7/21/2019 CoursMCOO

    53/171

    La notion de rles

    Les rles dsignent les extrmits dune association. Ils peuvent tre nomms.

    Exemple de rles

    une personne joue le rle dun employune entreprise joue le rle dun employeur

    Principalement utiliss dans les associations rflexives :

    Deux exemples dassociations rflexives

    39/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisation

    Diagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    Cl i i

    http://find/
  • 7/21/2019 CoursMCOO

    54/171

    Classe-associations

    Une classe-association est une entit qui combine les proprits dune classe et lesproprits dune association.

    Une association R entre deux classes A et Bpermet dassocier tout lien entre unobjet de la classe A et un objet de la classe Bun objet de la classe R.

    Exemple de classe-association

    40/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisation

    Diagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    Cl i ti t lti li it

    http://find/
  • 7/21/2019 CoursMCOO

    55/171

    Classe-associations et multiplicits

    Une classe-association entre deux classes peut se simuler par lintermdiaire dune classeet de deux associations.

    Simulation dune classe association

    Se simule par :

    41/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisation

    Diagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    Cl i ti t lti li it

    http://find/
  • 7/21/2019 CoursMCOO

    56/171

    Classe-associations et multiplicits

    Simulation dune classe association

    Lecture des multiplicitsChaque objet de la classe Z est associ un objet de la classe X et un objet dela classe Y

    Chaque objet de la classe X est associ n objets de la classe Z, avec n MY

    Chaque objet de la classe Y est associ n objets de la classe Z, avec n MX

    41/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisation

    Diagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    Cl i ti t bj t

    http://find/
  • 7/21/2019 CoursMCOO

    57/171

    Classes-associations et objets

    Classe-association

    42/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de cas dutilisation

    Diagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    Classes associations et objets

    http://find/
  • 7/21/2019 CoursMCOO

    58/171

    Classes-associations et objets

    Classe-association simule

    42/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de cas dutilisation

    Diagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    http://find/
  • 7/21/2019 CoursMCOO

    59/171

    2.3. Les associations plus complexes

    43/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de cas dutilisation

    Diagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    Agrgation et composition (1/2)

    http://find/
  • 7/21/2019 CoursMCOO

    60/171

    Agrgation et composition (1/2)

    Lagrgation est un association binaire particulire qui modlise une relation entre untout et une partie, autrement dit, une relation dappartenance.

    Notation de lagrgation

    Un objet de la classe B, appel agrgat contient un certain nombre dobjets de la

    classe A, appels composants.

    4/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de cas dutilisation

    Diagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    Exemple dagrgation

    http://find/
  • 7/21/2019 CoursMCOO

    61/171

    Exemple d agrgation

    Diagramme de classes

    Diagramme dobjets

    45/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de cas dutilisation

    Diagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    Remarque sur lagrgation

    http://find/
  • 7/21/2019 CoursMCOO

    62/171

    Remarque sur l agrgation

    La relation dagrgation interdit les cycles dans les diagrammes dobjets.Par contre, dans le diagramme de classes, on peut dfinir une classe A en agrgationavec elle-mme.

    Diagramme de classes et diagramme dobjet

    Dans une agrgation, certaines parties peuvent tre partages. Par dfaut, il ny a pasde contrainte de multiplicit sur lagrgat.

    46/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de cas dutilisation

    Diagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    Agrgation et composition (2/2)

    http://find/
  • 7/21/2019 CoursMCOO

    63/171

    Agrgation et composition (2/2)

    La composition est une agrgation particulire pour laquelle une partie ne peut pastre partage entre plusieurs agrgats. Autrement dit, la multiplicit du ct delagrgat est 0 ou 1.

    Notation de la composition, quivalence avec lagrgation

    Les cycles de vies des composants et de lagrgat sont lis : si lagrgat est dtruit, sescomposants le sont aussi.

    47/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de cas dutilisation

    Diagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    Exemple de composition

    http://find/
  • 7/21/2019 CoursMCOO

    64/171

    Exemple de composition

    Diagramme de classes

    Diagramme dobjets

    48/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de cas dutilisation

    Diagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    Remarque sur la composition

    http://find/http://goback/
  • 7/21/2019 CoursMCOO

    65/171

    Remarque sur la composition

    Il est galement possible de reprsenter les composants dun objet lintrieur delobjet lui-mme.

    Reprsentation

    Attention : ceci nest possible que pour les compositions car deux objets ne peuventpas partager un mme composant.

    49/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de cas dutilisation

    Diagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    Associations n-aires

    http://find/
  • 7/21/2019 CoursMCOO

    66/171

    Associations n aires

    Une association n-aire est une relation entre n classes.

    Mathmatiquement parlant ...Une association n-aire entre les classes A1,A2, . . ., An est un sous-ensemble RdeA1 A2 . . . An, donc un ensemble de n-uplets de la forme (a1, a2, . . . ,an) aveci1, 2, . . . ,n, ai Ai.

    50/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOO

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisation

    Diagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    Associations n-aires, multiplicits

    http://find/http://goback/
  • 7/21/2019 CoursMCOO

    67/171

    , p

    La multiplicit associe une classe pose une contrainte sur le nombre de n-uplets dela relation lorsque les n1 autres valeurs sont fixes.

    Notation

    y0 Y, z0 Z, card((x,y0, z0) R; xX) MX

    x0 X,z0 Z, card((x0, y, z0) R; y Y) MY

    x0 X,y0 Y, card((x0, y0, z) R; zZ) MZ

    51/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOO

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisation

    Diagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    Exemple dassociation n-aire

    http://find/http://goback/
  • 7/21/2019 CoursMCOO

    68/171

    p

    Association ternaire

    un enseignant peut faire un mme cours plusieurs classes(multiplicit * associe la classe Classe)

    52/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOO

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisation

    Diagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    Exemple dassociation n-aire

    http://find/http://goback/
  • 7/21/2019 CoursMCOO

    69/171

    p

    Association ternaire

    dans une classe, un cours est effectu par un seul enseignant(multiplicit 1 associe la classe Enseignant)

    52/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOO

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisation

    Diagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    Exemple dassociation n-aire

    http://find/
  • 7/21/2019 CoursMCOO

    70/171

    p

    Association ternaire

    un enseignant peut faire plusieurs cours dans une mme classe(multiplicit * associe la classe Cours)Un enseignant peut donc enseigner plusieurs matires.

    52/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOO

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisation

    Diagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    Lextension

    http://find/http://goback/
  • 7/21/2019 CoursMCOO

    71/171

    Une classe Y tendou spcialise une classe X si tout objet de la classe Y est, ou peuttre considr comme, un objet de la classe X.A linverse, on dira que la classe X gnralise la classe Y.

    Notation de lextension

    53/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOO

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisation

    Diagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    Les proprits de lextension

    http://find/
  • 7/21/2019 CoursMCOO

    72/171

    Proprit dhritage

    Les attributs et les oprations dfinis dans X, qui ne sont pas privs, et qui ne sontredfinisdans Y, sont hrits dans Y.

    Proprit de substitution

    La proprit de substitution exprime que tout objet de la classe Y est ou peut treconsidr commeun objet de la classe X.Chaque fois quon a besoin dune instance de X, on peut utiliser la place uneinstance de Y.

    54/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOO

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisation

    Diagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    Un exemple dextension

    http://find/
  • 7/21/2019 CoursMCOO

    73/171

    Exemple avec des points

    55/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOO

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisation

    Diagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    Hirarchie des classes

    http://find/http://goback/
  • 7/21/2019 CoursMCOO

    74/171

    Lextension permet dexprimer la notion de hirarchie entre diffrentes classes.

    Hirarchie de vhicules

    On considre diffrents types de vhicules :

    Les vhicules ariens : les avions

    Les vhicules aquatiques : les bateauxet les sous-marinsLes vhicules terrestres : les charset les voitures

    On prcise :

    quun hydravion est la fois un avion et un bateau,

    quun char amphibieest la fois un sous-marin et un char

    quun avion est compos dailes

    quun char est compos de chenilles

    quune voiture est compose de roues

    56/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOO

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    Hirarchie des classes

    http://find/http://goback/
  • 7/21/2019 CoursMCOO

    75/171

    Lextension permet dexprimer la notion de hirarchie entre diffrentes classes.

    Hirarchie de vhicules (diagramme)

    56/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOO

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    Hritage de relation

    http://find/
  • 7/21/2019 CoursMCOO

    76/171

    Relation hrite

    Dans lexemple prcdent : un hydravion est, en tant quavion, galement composdailes, et un char amphibie est, en tant que char, galement compos de chenilles.

    57/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOO

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    Classe abstraite

    http://find/
  • 7/21/2019 CoursMCOO

    77/171

    Une classe abstraite est une classe qui ne peut tre instancie, et qui peut contenir desoprations abstraites.

    Une opration abstraite est une opration sans implantation, cest--dire laquelle necorrespond aucun code. Une classe abstraite peut aussi contenir des oprationsconcrtes (= non-abstraites).

    Les classes abstraites servent notamment dans les hirarchies de classes, o ellespermettent de regrouper des attributs et des oprations communs plusieurs classes.

    En programmation objet (par exemple, en Java) une classe concrte doit implanter lesoprations abstraites dont elle hrite.

    Notation

    58/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOO

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    Exercice

    http://find/http://goback/
  • 7/21/2019 CoursMCOO

    78/171

    Description

    On souhaite modliser des uvres, qui sont soit des bandes dessines, des romans, oudes films. Ces uvres ont un titre et un auteur. Les livres ont un certain nombre depages, et une bande dessine possde en plus un dessinateur. Les films, eux, ont une

    dure bien dfinie.Raliser le diagramme de classes correspondant.

    59/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOO

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    Exercice

    http://find/
  • 7/21/2019 CoursMCOO

    79/171

    Une solution possible

    59/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOO

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    Les interfaces

    http://find/http://goback/
  • 7/21/2019 CoursMCOO

    80/171

    Une interface spcifie un ensemble doprations qui constituent un ensemble cohrent.Elle contient uniquement des oprations abstraites, sans implantation.

    Une interface est quivalente une classe abstraite qui ne contient que des oprationsabstraites.

    Une classe implante (ou implmente ou ralise) une interface lorsquelle fournit toutesles oprations de linterface.

    60/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOO

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    Exemple dinterfaces

    http://find/http://goback/
  • 7/21/2019 CoursMCOO

    81/171

    Les collections en Java

    On note un lien dutilisation entre les deux interfaces, et deux liens de ralisation(HashSet implante Set et Vector implante List).

    61/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOO

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    http://find/http://goback/
  • 7/21/2019 CoursMCOO

    82/171

    2.3. Object Constraint Language

    62/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOO

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjetsDiagrammes de composantsDiagrammes de dploiement

    Quelques notions dOCL

    http://find/http://goback/
  • 7/21/2019 CoursMCOO

    83/171

    UML formalise lexpression des contraintes avec OCL (Object Constraint Language).

    OCL est une contribution dIBM UML 1.1.

    Ce langage formel est volontairement simple daccs et possde une grammairelmentaire (OCL peut tre interprt par des outils).

    OCL permet ainsi de limiter les ambiguts du langage naturel, tout en restant

    accessible.OCL permet de dcrire des invariants dans un modle, sous forme de

    pseudo-code :

    pr et post-conditions pour une opration,expressions de navigation,expressions boolennes, etc...

    OCL permet denrichir ce diagramme, en dcrivant toutes les contraintes et tous lesinvariants du modle prsent, de manire normalise et explicite ( lintrieur dunenote rattache un lment de modlisation du diagramme).

    63/131 Frdric Dadeau Modlisation et Conception Oriente-Objet Prsentation du module MCOO

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjets

    Diagrammes de composantsDiagrammes de dploiement

    Syntaxe des contraintes OCL (1/5)Contexte dune contrainte

    http://find/http://goback/
  • 7/21/2019 CoursMCOO

    84/171

    Contexte d une contrainte

    Une contrainte sapplique sur tous les objets de la classe considre.Le contexte dfinit la porte de la contrainte. Il peut sagir :

    dune classe : la contrainte devra alors tre un invariant, prcis par invcontext MaClasse

    inv : . . .

    dune opration : la contrainte pourra alors tre une prcondition (pre) ou unepostcondition (post).context MaClasse ::MonOperation(i :Integer)

    pre : . . .post : . . .

    Les dcoupages sont possible lintrieur dun mme contexte. La conjonction descontraintes proposes sera alors considre.

    64/131 Frdric Dadeau Modlisation et Conception Oriente-Objet Prsentation du module MCOO

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjets

    Diagrammes de composantsDiagrammes de dploiement

    Syntaxe des contraintes OCL (2/5)Les expressions

    http://find/
  • 7/21/2019 CoursMCOO

    85/171

    Les expressions

    Les invariants, prconditions et postconditions expriment des contraintes qui sont desprdicats de logique du premier ordre portant sur :

    linstance courante de la classe, self

    les attributs dune instance, instance.att (self.att peut scrire att)

    les collections dobjets associs aux classes instance.role

    les valeurs ltat avant lopration dans les postconditions uniquement, attpre

    les paramtres dentre ou de sortie des oprations, pour les pr- etpostconditions

    la valeur de retour dune opration, result

    65/131 Frdric Dadeau Modlisation et Conception Oriente-Objet Prsentation du module MCOO

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjets

    Diagrammes de composantsDiagrammes de dploiement

    Syntaxe des contraintes OCL (2/5)Les expressions

    http://find/http://goback/
  • 7/21/2019 CoursMCOO

    86/171

    p

    Quelques oprateurs de manipulation des donnes :

    entiers, rels : =, , =, +, -, *, /, x.div(y), x.mod(y)

    chaines : s.concat(t), s.size(), s.subString(debut,fin)

    boolens : and, or, not, xor, =, implies, if ... then ... else ... endif

    objets : obj.isOclUndefined() (eq. obj = null),obj.isOclInstance(Classe), obj.isOclNew()

    65/131 Frdric Dadeau Modlisation et Conception Oriente-Objet Prsentation du module MCOO

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjets

    Diagrammes de composantsDiagrammes de dploiement

    Syntaxe des contraintes OCL (3/5)Collections et accs aux objets associs dune classe

    http://find/
  • 7/21/2019 CoursMCOO

    87/171

    j

    On compte quatre type de collections :

    Set: pas de doublons, pas dordre

    Bag : doublons possibles, pas dordre

    OrderedSet : pas de doublons, ordonn

    Sequence : doublons possibles, pas dordre

    Lexpression instance.role renverra diffrents types en fonction des multiplicits duct du role :

    multiplicit 0 ou 1, instance.role est un objet (ventuellement la valeur nullsi aucun objet nest associ instance)

    multiplicit N (> 1) ou M..N, instance.role est un Set.

    66/131 Frdric Dadeau Modlisation et Conception Oriente-Objet Prsentation du module MCOO

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjets

    Diagrammes de composantsDiagrammes de dploiement

    Syntaxe des contraintes OCL (4/5)Oprations de manipulation des collections

    http://find/
  • 7/21/2019 CoursMCOO

    88/171

    Ces oprations sappliquent en utilisant loprateur ->suite au nom de la collection.Quelques oprations utiles :

    coll->size : compte le nombre dobjets dune collection (renvoie un entier)

    coll->isEmpty : quivalent coll->size = 0)

    coll->notEmpty : quivalent coll->size 0)

    coll->count(obj) : compte le nombre doccurrences de objdans coll

    coll->includes(obj) : quivalent coll->count(obj) > 0)

    coll->excludes(obj) : quivalent coll->count(obj) = 0)

    coll->includesAll(coll2) : vrifie si tous les lments de coll2 sont inclusdans coll

    67/131 Frdric Dadeau Modlisation et Conception Oriente-Objet Prsentation du module MCOO

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjets

    Diagrammes de composantsDiagrammes de dploiement

    Syntaxe des contraintes OCL (5/5)Oprations collectives et simplification dcriture

    http://find/
  • 7/21/2019 CoursMCOO

    89/171

    Ces oprations permettent deffectuer des requtes sur les collections.Quelques oprations utiles :

    coll->collect(role) : renvoie un Bagcontenant les objets lis ceux de collpar le rle role

    coll->exists(expr) : vrifie si expr est satisfait pour au moins un lment dela collection

    coll->forAll(expr) : vrifie si expr est satisfait pour tous les lments de lacollection

    coll->select(expr) : renvoie la collection compose des lments de coll quisatisfont expr

    Il est possible de dfinir des attributs ou des oprations temporaires afin de simplifieret compacter les expressions. context MaClasse

    inv : let val1 :Boolean = self.att1 >= 1 and self.att1 = 18 inval1 and (self.attr2 = 42 or majeur(self.attr3)

    68/131 Frdric Dadeau Modlisation et Conception Oriente-Objet Prsentation du module MCOO

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjets

    Diagrammes de composantsDiagrammes de dploiement

    Quelques exemples de spcifications en OCL

    http://find/http://goback/
  • 7/21/2019 CoursMCOO

    90/171

    Diagramme de classes dun htel

    Un htel ne contient jamais dtage numro 13 (superstition oblige)

    context Chambre inv : context SalleDeBain inv :self.etage 13 self.etage 13

    69/131 Frdric Dadeau Modlisation et Conception Oriente-Objet Prsentation du module MCOO

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjets

    Diagrammes de composantsDiagrammes de dploiement

    Quelques exemples de spcifications en OCL

    http://find/http://goback/
  • 7/21/2019 CoursMCOO

    91/171

    Diagramme de classes dun htel

    Ltage de chaque chambre est compris entre le premier et le dernier tage de lhtel.context Htel inv :

    self.chambre->forAll(c : Chambre | c.etage = self.etageMin)

    69/131 Frdric Dadeau Modlisation et Conception Oriente Objet Prsentation du module MCOO

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjets

    Diagrammes de composantsDiagrammes de dploiement

    Quelques exemples de spcifications en OCL

    http://find/
  • 7/21/2019 CoursMCOO

    92/171

    Diagramme de classes dun htel

    On ne peut repeindre une chambre que si elle nest pas loue. Une fois repeinte, unechambre cote 10% de plus.

    context Chambre : :repeindre(c : Couleur)

    pre : client->isEmptypost : prix = prixpre * 1.1

    69/131 Frdric Dadeau Modlisation et Conception Oriente Objet Prsentation du module MCOO

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjets

    Diagrammes de composantsDiagrammes de dploiement

    Quelques exemples de spcifications en OCL

    http://find/
  • 7/21/2019 CoursMCOO

    93/171

    Diagramme de classes dun htel

    Le loyer de lhtel est gal la somme du prix de toutes les chambres loues.context Htel : : calculerLoyer() : relpre :post : result = self.chambre->select(client->notEmpty).prix->sum

    69/131 Frdric Dadeau Modlisation et Conception Oriente Objet Prsentation du module MCOO

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjets

    Diagrammes de composantsDiagrammes de dploiement

    Les aspects statiques

    http://find/
  • 7/21/2019 CoursMCOO

    94/171

    Les aspects statiques

    Les diagrammes de cas dutilisationLes diagrammes de classes et dobjets

    Les diagrammes de composants

    Les diagrammes de dploiement

    70/131 Frdric Dadeau Modlisation et Conception Oriente Objet Prsentation du module MCOO

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjets

    Diagrammes de composantsDiagrammes de dploiement

    Les diagrammes de composants

    http://find/http://goback/
  • 7/21/2019 CoursMCOO

    95/171

    Les diagrammes de composants permettent de dcrire larchitecture physique duneapplication en termes de modules.

    Diagramme de composants

    Composants dun serveur Oracle utilisant une base de donnes servant de catalogue.

    71/131 Frdric Dadeau Modlisation et Conception Oriente Objet Prsentation du module MCOO

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjets

    Diagrammes de composantsDiagrammes de dploiement

    Diagrammes de composants

    http://find/http://goback/
  • 7/21/2019 CoursMCOO

    96/171

    ComposantsApplication construite partir de deux fichiers source et dune bibliothquemathmatiques.

    72/131 F d i D de M dli ti n et C n e ti n O iente Objet Prsentation du module MCOO

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjets

    Diagrammes de composantsDiagrammes de dploiement

    Les aspects statiques

    http://find/http://goback/
  • 7/21/2019 CoursMCOO

    97/171

    Les aspects statiques

    Les diagrammes de cas dutilisationLes diagrammes de classes et dobjets

    Les diagrammes de composants

    Les diagrammes de dploiement

    73/131 F d i D d M dli ti t C ti O i t Obj t Prsentation du module MCOO

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjets

    Diagrammes de composantsDiagrammes de dploiement

    Les diagrammes de dploiement

    http://find/
  • 7/21/2019 CoursMCOO

    98/171

    Les diagrammes de dploiement dcrivent la disposition physique des matriels et la

    rpartition des composants sur ces matriels.

    74/131 F d i D d M dli ti t C ti O i t Obj t Prsentation du module MCOO

    Les diagrammes des aspects statiquesLes diagrammes des aspects dynamiques

    Diagrammes de cas dutilisationDiagrammes de classes et dobjets

    Diagrammes de composantsDiagrammes de dploiement

    Les diagrammes de dploiement

    http://find/http://goback/
  • 7/21/2019 CoursMCOO

    99/171

    Diagramme de dploiement

    75/131 F d i D d M dli ti t C ti O i t Obj t Prsentation du module MCOO

    Les diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de squenceDiagrammes de collaboration

    Diagrammes dtats-transitionDiagrammes dactivit

    Les aspects dynamiques

    http://find/http://goback/
  • 7/21/2019 CoursMCOO

    100/171

    Les aspects dynamiques

    Les diagrammes de squenceLes diagrammes de collaboration

    Les diagrammes dtats-transitions

    Les diagrammes dactivit

    76/131 F d i D d M dli i C i O i Obj Prsentation du module MCOO

    Les diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de squenceDiagrammes de collaboration

    Diagrammes dtats-transitionDiagrammes dactivit

    Les diagrammes de squence

    http://find/http://goback/
  • 7/21/2019 CoursMCOO

    101/171

    Les diagrammes de squence permettent de reprsenter les interactionsentre objetsdun point de vue chronologique.

    Ils se concentrent sur la squence des interactions dun point de vue temporel.

    Ils font partie des diagrammes dits dinteraction, avec les diagrammes de collaboration.

    77/131 F d i D d M dli i C i O i Obj Prsentation du module MCOO

    Les diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de squenceDiagrammes de collaboration

    Diagrammes dtats-transitionDiagrammes dactivit

    Les diagrammes de squence

    http://find/
  • 7/21/2019 CoursMCOO

    102/171

    Les interactions se traduisent par des envois de messages entre les objets.

    Les diagrammes de squences peuvent sappliquer

    la documentation des cas dutilisation, en reprsentant les interactions entreles acteurs et le systme. Les tiquettes des messages sont des vnements qui seproduisent dans le systme.

    la reprsentation des interactions informatiques et la rpartition des flots decontrle. Les messages changs unifient les diffrentes formes decommunication entre les objets (appels de procdure, mission de signaux, etc.).

    78/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de squenceDiagrammes de collaboration

    Diagrammes dtats-transitionDiagrammes dactivit

    Les objets des diagrammes de squence

    http://find/
  • 7/21/2019 CoursMCOO

    103/171

    Ce sont des entits appartenant au systme (instance dune classe), ou se trouvant ses limites (les acteurs), ou le systme lui-mme.

    Ils reprsentent :

    Soit des concepts abstraits, ou des acteurs (documentation des cas dutilisations)

    Soit des objets dimplantation (interactions informatiques)

    Les objets sont identifis par lintermdiaire des diagrammes de cas dutilisation ou desdiagrammes de classes. Ils sont dnots classiquement.

    79/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de squenceDiagrammes de collaboration

    Diagrammes dtats-transitionDiagrammes dactivit

    La ligne de vie des objets

    http://find/
  • 7/21/2019 CoursMCOO

    104/171

    Elle reprsente la priode de temps durantlaquelle lobjet existe.

    La priode dactivation correspond unintervalle de temps durant lequel lobjet effectue

    une actions, soit directement, soit parlintermdiaire dun autre objet qui lui sert desous-traitant (appel de procdure).

    La vie de lobjet commence par lobjet lui-mmeet se termine la fin de la ligne de vie,ventuellement marque par une croix indiquant

    la destruction de lobjet.

    80/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de squenceDiagrammes de collaboration

    Diagrammes dtats-transitionDiagrammes dactivit

    Les types de messages

    http://find/
  • 7/21/2019 CoursMCOO

    105/171

    On distingue 3 types de messages.

    1. Message synchrone : correspond un appel de procdure ou flot de contrle im-

    briqu. La squence imbrique est entirement faite avant que lappelant ne continue :lappelant est bloqu jusqu ce que lappel termine.

    81/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de squenceDiagrammes de collaboration

    Diagrammes dtats-transitionDiagrammes dactivit

    Les types de messages

    http://find/
  • 7/21/2019 CoursMCOO

    106/171

    On distingue 3 types de messages.

    2. Message asynchrone :correspond un message " plat", non imbriqu. Lappelant

    nest pas bloqu jusqu ce que lappel termine.

    81/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de squenceDiagrammes de collaboration

    Diagrammes dtats-transitionDiagrammes dactivit

    Les types de messages

    http://find/
  • 7/21/2019 CoursMCOO

    107/171

    On distingue 3 types de messages.

    3. Retour de procdure : correspond la terminaison dune procdure avec le retour

    ventuel dune valeur. Ces messages peuvent ne pas tre dessins, ils sont alors implicites.

    81/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de squenceDiagrammes de collaboration

    Diagrammes dtats-transitionDiagrammes dactivit

    Un premier exemple

    http://find/http://goback/
  • 7/21/2019 CoursMCOO

    108/171

    Exemple dun systme de communication tlphonique

    Illustration dun diagramme de cas dutilisation, avec messages asynchrones.

    82/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de squenceDiagrammes de collaborationDiagrammes dtats-transitionDiagrammes dactivit

    Un second exemple

    http://find/
  • 7/21/2019 CoursMCOO

    109/171

    Contrle de flot dexcution

    83/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de squenceDiagrammes de collaborationDiagrammes dtats-transitionDiagrammes dactivit

    Cration et destruction dun objet

    http://find/http://goback/
  • 7/21/2019 CoursMCOO

    110/171

    Crer et dtruire des objets

    Deux types de messages particuliers permettent de crer et de dtruire des objets.

    La cration se symbolise par un message

    La destruction se symbolise par un message

    84/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de squenceDiagrammes de collaborationDiagrammes dtats-transitionDiagrammes dactivit

    Etiquettes des messages

    http://find/
  • 7/21/2019 CoursMCOO

    111/171

    Syntaxe gnrale

    La syntaxe des tiquettes de message est la suivante :

    [Garde] Iteration resultat := nom_message(arguments)

    o[Garde] est la condition denvoi du message (facultatif)

    Iteration dcrit une ventuelle itration sur lenvoi du message (facultatif)

    resultat := est laffectation dune valeur de retour (facultatif)

    nom_message est le nom du message

    argumentssont les arguments du message (facultatif)

    85/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de squenceDiagrammes de collaborationDiagrammes dtats-transitionDiagrammes dactivit

    Etiquettes : messages gards

    Les gardes permettent de spcifier des conditions pour lenvoi des messages. Lesmessages ne sont envoys que si la condition est satisfaite.

    http://find/http://goback/
  • 7/21/2019 CoursMCOO

    112/171

    g y q

    Messages conditionnels

    86/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de squenceDiagrammes de collaborationDiagrammes dtats-transitionDiagrammes dactivit

    Etiquettes : messages gards

    Les gardes permettent de spcifier des conditions pour lenvoi des messages. Lesmessages ne sont envoys que si la condition est satisfaite.

    http://find/
  • 7/21/2019 CoursMCOO

    113/171

    g y q

    La ligne de vie dun objet peut tre ddouble pour indiquer des actions qui sont effec-tues suite un message conditionnel (UML 1.5).

    Ddoublement de la ligne de vie

    86/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de squenceDiagrammes de collaborationDiagrammes dtats-transitionDiagrammes dactivit

    Etiquettes : messages gards

    Les gardes permettent de spcifier des conditions pour lenvoi des messages. Lesmessages ne sont envoys que si la condition est satisfaite.

    http://find/
  • 7/21/2019 CoursMCOO

    114/171

    UML 2.0 ajoute la possibilit dutiliser des fragments, plus lisibles.

    Utilisation dun fragment dalternative

    86/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de squenceDiagrammes de collaborationDiagrammes dtats-transitionDiagrammes dactivit

    Etiquettes : messages gards

    Les gardes permettent de spcifier des conditions pour lenvoi des messages. Lesmessages ne sont envoys que si la condition est satisfaite.

    http://find/
  • 7/21/2019 CoursMCOO

    115/171

    UML 2.0 ajoute la possibilit dutiliser des fragments, plus lisibles.

    Notamment pour les actions optionnelles.

    Utilisation dun fragment optionnel

    86/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de squenceDiagrammes de collaborationDiagrammes dtats-transitionDiagrammes dactivit

    Etiquettes : itrations

    Deux types ditrations

    http://find/
  • 7/21/2019 CoursMCOO

    116/171

    On distingue deux types ditrations :

    Itration squentielle: envoi squentiel de plusieurs instances du mme message,dnot par [clause ditration]

    Itration parallle: envoi en parallle de plusieurs instances du mme message,dnot par [clause ditration]

    Envoi squentiel

    87/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de squenceDiagrammes de collaborationDiagrammes dtats-transitionDiagrammes dactivit

    Etiquettes : itrations

    Deux types ditrations

    http://find/
  • 7/21/2019 CoursMCOO

    117/171

    On distingue deux types ditrations :

    Itration squentielle: envoi squentiel de plusieurs instances du mme message,dnot par [clause ditration]

    Itration parallle: envoi en parallle de plusieurs instances du mme message,dnot par [clause ditration]

    Envoi squentiel, avec un fragment

    87/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de squenceDiagrammes de collaborationDiagrammes dtats-transition

    Diagrammes dactivit

    Etiquettes : valeur de retour

    http://find/
  • 7/21/2019 CoursMCOO

    118/171

    Le rsultat est constitu dune liste de valeurs retournes par le message.Ces valeurs peuvent tre utilises comme paramtres dautres messages.

    Deux notations possibles

    88/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de squenceDiagrammes de collaborationDiagrammes dtats-transition

    Diagrammes dactivit

    Contraintes temporelles

    On peut nommer linstant dmission dun message, ainsi que linstant de sa rception.

    http://find/
  • 7/21/2019 CoursMCOO

    119/171

    Cela permet de poser des contraintes de temps sur lenvoi et sur la rception demessages.Par convention, si linstant dmission est dnot par x, linstant de rception de cemme message est dnot par x.

    Utilisation de contraintes temporelles

    89/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de squenceDiagrammes de collaborationDiagrammes dtats-transition

    Diagrammes dactivit

    Objets actifs

    http://find/
  • 7/21/2019 CoursMCOO

    120/171

    Dfinition

    Un objet actif est un objet qui a son propre flot dexcution.

    Quelques exemples dobjets actifs

    les processus et les threads

    les objets sources dvnements, comme les boutons dans les interfacesgraphiques

    les minuteries, comme les timers en Java

    Ces objets permettent dexcuter une opration soit une seule fois, aprs un certain

    intervalle de temps, soit de faon rpte intervalles de temps donnes.

    90/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de squenceDiagrammes de collaborationDiagrammes dtats-transition

    Diagrammes dactivit

    Objets actifs (suite)

    Un objet actif peut, le temps dune opration, activer un objet passif qui peut alors

    http://find/
  • 7/21/2019 CoursMCOO

    121/171

    activer dautres objets passifs. Lorsque lopration est termine lobjet passif redonnele contrle lobjet qui la activ.

    Illustration

    Un objet actif est reprsent par des contours plus pais.

    Dans un environnement multi-tches, plusieurs objets peuvent tre actifssimultanment.

    91/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de squenceDiagrammes de collaborationDiagrammes dtats-transition

    Diagrammes dactivit

    Les aspects dynamiques

    http://find/
  • 7/21/2019 CoursMCOO

    122/171

    Les diagrammes de squenceLes diagrammes de collaboration

    Les diagrammes dtats-transitions

    Les diagrammes dactivit

    92/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de squenceDiagrammes de collaborationDiagrammes dtats-transition

    Diagrammes dactivit

    Les diagrammes de collaboration

    http://find/http://goback/
  • 7/21/2019 CoursMCOO

    123/171

    Les diagrammes de collaboration permettent de reprsenter les interactionsentre desobjets (et ventuellement des acteurs).

    Par opposition aux diagrammes de squences, les contextes sont explicitementsreprsents, en prcisant les tats des objets qui interagissent. Pour mettre en vidence

    la dimension temporelle, les messages envoys par les diffrents objets peuvent trenumrots.

    Ils font partie des diagrammes dits dinteraction, avec les diagrammes de sequence.Le passage dun diagramme de collaboration un diagramme de squence (etinversement) est simple.

    93/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de squenceDiagrammes de collaborationDiagrammes dtats-transition

    Diagrammes dactivit

    Les collaborations

    L ll b i d fi i l l il b i l ifi

    http://find/
  • 7/21/2019 CoursMCOO

    124/171

    Les collaborations dfinissent les lments utiles pour obtenir un rsultat en spcifiantleursrlesdans le contexte de la collaboration.

    Une collaboration est compose de deux descriptions.

    Description gnrale au niveau de la spcification

    Celle-ci reprsente les rlesdes cas dutilisation, des classes, des mthodes et desassociations. Une interaction sera alors une squence de messages changs entre lesrles.

    Description spcifique au niveau instance

    Celle-ci reprsente une instance particulire dune interaction compose dobjets et deliens respectants les rles, et de stimulusqui sont des instances de messages changsentre ces objets.

    94/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de squenceDiagrammes de collaborationDiagrammes dtats-transition

    Diagrammes dactivit

    Les rles

    Chaque lment dune collaboration joue un rle.

    Ch d l ifi ( l d ili i ) b l

    http://find/
  • 7/21/2019 CoursMCOO

    125/171

    Chacun des classificateurs (classe, cas dutilisation, etc.) est reprsent par un symbolede classe.

    Notation des rles

    Les rles des associations sont reprsents classiquement par rapport aux diagrammesde classes.

    95/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de squenceDiagrammes de collaborationDiagrammes dtats-transition

    Diagrammes dactivit

    Collaboration au niveau spcification

    L ll b ti f h d l li d l d i ti

    http://find/
  • 7/21/2019 CoursMCOO

    126/171

    La collaboration forme un graphe de rles lis par des rles dassociations.En gnral, une collaboration au niveau spcification reprsente un contexte.

    Un contexte

    96/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de squenceDiagrammes de collaborationDiagrammes dtats-transition

    Diagrammes dactivit

    Collaboration au niveau instance

    ll b d

    http://find/http://goback/
  • 7/21/2019 CoursMCOO

    127/171

    La collaboration niveau instance est un diagramme reprsentant une instance auniveau spcification avec des stimulus.Un stimulusest une instance dun message envoy dun objet vers un autre.

    Exemple illustratif

    97/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de squenceDiagrammes de collaborationDiagrammes dtats-transition

    Diagrammes dactivit

    Les messages

    Les objets communiquent en changeant des messages reprsents sous forme de

    http://find/http://goback/
  • 7/21/2019 CoursMCOO

    128/171

    Les objets communiquent en changeant des messages reprsents sous forme deflche. Les messages sont tiquets par le nom de lopration ou du signal invoqu.Lenvoi dun message ncessite que le rcepteur puisse raliser lopration.

    Trois types de messages

    On distingue 3 types de messages :

    Lappel de procdure ou flot de contrle embot : la squence emboite doit se ter-miner pour que la squence englobante reprenne le contrle.

    98/131 Frdric Dadeau Modlisation et Conception Oriente-Objet

    Prsentation du module MCOOLes diagrammes des aspects statiques

    Les diagrammes des aspects dynamiques

    Diagrammes de squenceDiagrammes de collaborationDiagrammes dtats-transition