coursmcoo
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
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