Vous êtes sur la page 1sur 119

Modlisation objet Le langage UML

ADIL ANWAR anwar@univ-tlse2.fr

La base de contrle

Robot

Zone explorer

IRIT UTM

La complexit des logiciels Les systmes peuvent tre dcomposs selon


Ce quils font approc!e fonctionnelle" Ce quils sont approc!e objet"

Lapproc!e objet gre plus efficacement la complexit


Modles bass sur le monde rel
stabilit# $$

%tructure indpendante des fonctions volutivit# $$ &pproc!e modulaire maintenance# rutilisabilit# $$

IRIT"UTM

'istorique des langages (bjets Langages de programmation orients objets


(im la )1*+,(malltal. )1*,/0 pl s 0lasses)1*1/022 )1*134iffel )1*115a!a )1**3-

%)*+ orients objets


Utilisation des bds avec un langage ((

)ense des mt!odes danalyse


,mplmentation
0onception )sol tion informati6 e7nal8se )comprendre et mod9liser le probl:me; <

IRIT"UTM

'

Les mt!odes d-analyse Mt!odes orientes comportement


(n sintresse . la dynamique du systme rseaux de Ptri, ..)

Mt!odes fonctionnelles
%inspirent de larc!itecture des ordinateurs (n sintresse aux fonctions du systme SADT, ..)

Mt!odes orientes donnes


(n ne sintresse pas aux traitements Merise, ..)

Mt!odes orientes objets


(n ne spare pas les donnes et les traitements Booch, OMT,RUP)

IRIT"UTM

/frences
*oo0s1
2!e Unified soft3are development process# ,$ 4acobson# )$ *ooc!# 4$ /ambaug!# ed$ &ddison56esley# 7888 +esign 9atterns1 :lements of reusable (bject (riented %oft3are# :$ )amma# /$ 'elm# /$ 4o!nson# 4$ ;lissides# ed$ &ddison56esley# 788< Modlisation objet avec UML# 9&$ Muller# =$ )aertner# ed$ :yrolles

Liens1
!ttp1>>333$(M)$org 1 les normes UML# (CL# M+&# ? !ttp1>>uml$free$fr 1 UML en fran@ais

+autres cours sur le 3eb1


!ttp1>> 3335igm $univ5mlv $fr>Adr>+:%%>:laboration>siframes$!tm !ttp1>>333$iutcB$unicaen$fr>Amoranb>cours>acsi> menucoo$!tm !ttp1>>333$cnam5versailles$fr>ressCuvCpres>progCoo>/essources Dpedagogiques>=otationUML5EB88$ppt

IRIT"UTM

9lan de prsentation Les concepts dUML UML


Introd ction a lan>a>e UML ? e str ct relle )@ia>ramme de classes % @ia>ramme dAobBets ? e fonctionnelle )@ia>ramme des cas dA tilisation % @ia>ramme de collaboration % @ia>ramme de s96 ence ? e d8nami6 e )@ia>ramme dA9tats"transitions % @ia>ramme dAacti!it9-

UML avanc
Les composants (CL1 ajout de contraintes sur les modles UML Mta5modlisation et profils

IRIT"UTM

Introduction

IRIT"UTM

UML dans ce baFarre UML G Unified Modeling Language


Langage unifi pour la modlisation objet

Langage de modlisation des applications construites . laide dobjets# indpendant de la mt!ode utilise
Langage de modlisation1 notations Mt!ode1 utilisation du langage de modlisation recueil des besoins# analyse# conception# mise en Huvre# validation?" (bjet1 reprsentation du problme base sur des entits concrtes ou abstraites" du monde rel

IRIT"UTM

)ense d-UML
OM) Booch OOSE Iusion Classe5/elation /((M '((+ etc$$$

tilisation dA n standard de mod9lisation C ni!ersel ; a d9partD pl s de 13/ m9thodes EE nification pro>ressi!e de pl sie rs m9thodesD de remar6 es des tilisate rsD des partenaires 1*1* $ cr9ation de lA(M) )FbBect Mana>ement >ro p- G >ro pe cr99 lAinitiati!e de >randes soci9t9s informati6 es am9ricaines afin de normaliser les s8st:mes obBets G 1:re r9alisation de lAFMH $ 0FRI7 )comm nication entre applications obBets dans n s8st:me distrib 9 h9t9ro>:neUML &.0

Fin 1990
OM)
(R'*ba'+h et al.)

Rational
1995
Unified Method
0.8

FMH
UML

UML .$
999

.%
&00$

Booch OOSE
(Jacobson et al.)

1996 UML 0.9

UML
!o".

.
99#

J'in

Catalysis

ROOM

etc.
IRIT"UTM

L-unification +es mt!odes


La guerre des mt!odes ne fait plus avancer la tec!nologie des objets /ec!erc!e dun langage commun unique
tilisable par to tes les m9thodes adapt9 to tes les phases d d9!eloppement compatible a!ec to tes les techni6 es de r9alisation

%ur plusieurs domaines dapplications


%cientifique ,ndustriel )estion Multimdia ?

IRIT"UTM

1/

9orte /este au niveau dun langage ne propose pas un processus de dveloppement


=i ordonnancement des tJc!es# =i rpartition des responsabilits# =i rgles de mise en Huvre

Certains ouvrages et &)L bass sur UML ajoutent cet aspect fondamental en mt!odologie Le M+&
Le MDA est une sorte de guide structur qui fait actuellement rfrence en IDM (OM ! Il se r"#le $tre un %eu de standards &our la modlisation

IRIT"UTM

11

9orte /este au niveau dun langage ne propose pas un processus de dveloppement


=i ordonnancement des tJc!es# =i rpartition des responsabilits# =i rgles de mise en Huvre

Certains ouvrages et &)L bass sur UML ajoutent cet aspect fondamental en mt!odologie :n rsum1
UML est une notation# pas une mt!ode UML est un langage de modlisation objet UML convient pour toutes les mt!odes objet UML est dans le domaine public UML est la notation standard pour documenter les modles objets
IRIT"UTM

1#

Les objets 5rappels Les objets du monde rel nous entourent# ils naissent# vivent et meurent Les objets informatiques dfinissent une reprsentation simplifie des entits du monde rel Les objets reprsentent des entits
Concrtes 1 avec une masse &bstraites 1 concept

IRIT"UTM

1'

Les objets 5rappels Une abstraction est un rsum# un condens Mise en avant des caractristiques essentielles +issimulation des dtails Une abstraction se dfinit par rapport . un point de vue
:xemples dabstractions
ne carte ro ti:re n nombre complexe n t9l9!ise r ne transaction bancaire ne porte lo>i6 e ne pile n 9t diant

IRIT"UTM

1=

Les objets 5rappels (bjet G Ktat L Comportement L ,dentit Communication entre objets ec!ange de message >appel de mt!ode"

IRIT"UTM

13

Les objets 5rappels 5tat Ltat dun objet 1 /egroupe les valeurs instantanes de tous les
attributs dun objet :volue au cours du temps &un instant donn est la consquence de ses comportements passs

:xemples
9our un signal lectrique 1 lamplitude# la pulsation# la p!ase# ? 9our une voiture 1 la marque# la puissance# la couleur# le nombre de places assises# ? 9our un tudiant 1 le nom# le prnom# la date de naissance# l-adresse# ?

IRIT"UTM

1+

Les objets 5rappels 5comportement Le comportement +crit les actions et les ractions dun objet
/egroupe toutes les comptences dun objet /epreprsente sous la forme doprations mt!odes"

Un objet peut faire appel aux comptences dun autre objet Ltat et le comportement sont lis
Le comportement dpend de ltat Ltat est modifi par le comportement

IRIT"UTM

1,

Les objets 5rappels 5identit 2out objet possde une identit qui lui est propre et qui le caractrise Lidentit permet de distinguer tout objet de fa@on non ambiguM# indpendamment de ltat Les langages objets utilisent gnralement des pointeurs pour raliser un identifiant$ Un attribut identifiant nest pas ncessaire

IRIT"UTM

11

Les objets 5rappels 5communication entre objets &pplication G socit d-objets collaborant Les objets travaillent en synergie afin de raliser les fonctions de lapplication Le comportement global dune application repose donc sur la communication entre les objets qui la composent Les objets =e vivent pas en ermites
Les objets interagissent les uns avec les autres Les objets communiquent en c!angeant des messages

IRIT"UTM

1*

Les objets 5rappels 5communication entre objets


Catgories de messages Constructeurs1 crent des objets +estructeurs1 dtruisent des objets &ccesseurs1 renvoient tout ou partie de ltat Modifieurs1 c!angent tout ou partie de ltat ,trateurs1 traversent une collection dobjets

IRIT"UTM

#/

Les objets 5rappels 5les classes La classe


:st une description abstraite dun ensemble dobjets 9eut tre vue comme la factorisation des lments communs . un ensemble dobjets +crit le domaine de dfinition dun ensemble dobjets

+escription des classes


%pare en deux parties
la spcification dA ne classe 6 i d9crit le domaine de d9finition et les propri9t9s des instances de cette classe )t8pe de donn9e la ralisation 6 i d9crit comment la sp9cification est r9alis9e

IRIT"UTM

#1

Les objets 5rappels Les objets naissent# vivent et meurent Les objets interagissent entre eux Les objets sont regroups dans des classes qui les dcrivent de manire abstraite La classe intgre les concepts de type et de module

IRIT"UTM

##

Les 8 diagrammes ;ue structurelle


+iagramme de classes +iagramme objet +iagramme de composants +iagrammes de dploiement

;ue comportementale
+iagramme des cas dutilisation +iagramme tats5transition +iagramme dactivits +iagramme de collaboration +iagramme de squence

IRIT"UTM

#'

Les 8 diagrammes

IRIT"UTM

#=

'ue (tructurelle Diagramme de classes

IRIT"UTM

#3

+iagramme de classes %tructure statique dun systme


Classes ensembles dobjets" /elations entre classes ensembles de liens entre objets"

(prations > mt!odes


(pration 1 service qui peut tre demand . nimporte quel objet de la classe Mt!ode 1 implmentation dune opration C!aque opration non abstraite dune classe doit avoir une mt!ode qui fournit un algorit!me excutable comme corps cet algorit!me est donn dans un langage de programmation ou dans du texte structur"$

IRIT"UTM

#+

=iveau de dtail d-analyse %pcification 1 plusieurs niveaux de dtails =iveau de dtail danalyse
pas de pr9cision s r la mise en J !re ind9pendant d lo>iciel pl sie rs ni!ea x de pr9cision a fil des it9rations dAanal8se simplifi9 NomClasse NomClasse
ni6 ement le nom de la classe

interm9diaire

nom de la classe nom des attrib tsD o des op9rations

attribut1 attribut2 attribut3

NomClasse attribut1 attribut2 attribut3 Opration1 Opration2


#,

complet nom de la classe


noms des attrib ts noms des m9thodes

IRIT"UTM

=iveau de dtail de conception =iveau de dtail de conception


,dentification de linterface des classes 1 t8pe des obBetsD comportement externeD faKon interne de les mettre en J !re ind9pendant d lo>iciel attrib ts$ t8pe
!ale rs par d9fa t de>r9 de !isibilit9 0aract9risti6 e
NomClasse - Attribut1 : t pe1 ! Attribut2 : t pe2 " #aleur2 ! $Attribut3 : t pe3 % Opration1 &ar'1( ar'2() : t pe* ! Opration2 &) : #oi+

op9rations$
(i>nat re de>r9 de !isibilit9 caract9risti6 e

IRIT"UTM

#1

=otations des attributs et oprations &ttribut


NvisibilitO Nnom&ttributO 1 NtypeO G Nvaleur par dfautO

(pration
NvisibilitO Nnom(prationO liste9aramtres" Ntype/etourO

9aramtre
NnomO 1 NtypeO G Nvaleur par dfautO
Lom de classe 7ttrib ts Fp9rations) -

IRIT"UTM

#*

;isibilit
;isibilit G degr de protection
L 1 publique accessible . toutes les classes" P 1 protg accessibles uniquement aux sous5classes" 5 1 priv inaccessible . tout objet !ors de la classe" Pas de visibilit ar d!aut

NomClasse % Attribut publi,ue ! Attribut prot' - Attribut pri# % Opration publi,ue ! Opration prot'e - Opration pri#e

IRIT"UTM

'/

2ype &ttribut
2ype de base entier# boolen# caractre# tableau?" integer, double, char, string, boolean, currency, date, time, void &u niveau analyse# pas dattribut instance dun classe on utilise une association" &u niveau conception# on dcide quelles associations peuvent tre reprsentes par des attributs

(pration
2ype quelconque de base ou classe"

IRIT"UTM

'1

;aleur par dfaut des attributs &ffecte . lattribut . la cration des instances de la classe :n analyse# on se contente souvent dindiquer le nom des attributs

-oiture - Mar,ue : strin' - Mo+0le : strin' - 1urbo : boolean " 2alse % Dmarrer &) % .ouler &) % /reiner &)

IRIT"UTM

'#

&ttributs et opration drivs =otation 1 >nom&ttribut 9roprit redondante# drive dautres proprits dj. alloues :n conception# un attribut driv peut donner lieu . une opration qui encapsulera le calcul effectu
Comman+e -Numro -3ri4H1 -1-A $3ri411C %Cal5uler3ri411C &)

Comman+e -Numro -3ri4H1 -1-A $3ri411C

IRIT"UTM

''

Les relations entre classes 5l-association Lassociation exprime une connexion smantique entre classes La plupart des associations sont binaires 1 connectent Q classes =otation 1
0lasse1 0lasse#

Uni!ersit9

Mt diant

IRIT"UTM

'=

Les relations entre classes 5l-association n5aire /eprsentation au niveau de lassociation /eprsentation au moyen dune classe L contrainte qui exprime que les multiples branc!es de lassociation sinstancient simultanment en un mme lien
(alle (alle

OO assoc. TernairePP

4nsei>nant

Mt diant

4nsei>nant

0o rs @9b t Nin

Mt diant

0o rs @9b t Nin

IRIT"UTM

'3

Les relations entre classes 5nommage des roles Le rRle dcrit comment une classe voit une autre classe . travers une association Une association a par essence Q rRles# selon le sens dans lequel on la regarde Usage 1 forme nominale

,lasse1

./le1 ,lasse./le-

(ocit

*m&lo+eur *m&lo+ Directeur

)ersonne )ersonne

)arent

(ocit *m&lo+

)ersonne

*nfant

IRIT"UTM

'+

Les relations entre classes 5multiplici C!aque rRle porte une indication de multiplicit 1 nombre dobjets de la classe considre pouvant tre lis . un objet de lautre classe ,nformation porte par le rRle
0lasse1 Rle1 m1 m# Rle# 0lasse#

Valeur :
1 7881 M 88 N ; 7 88 ; 1 88 ;

Signification 0 6n et un seul 9ro ou un De M : N &entiers naturels) De <ro : plusieurs De <ro : plusieurs D=un : plusieurs

IRIT"UTM

',

Les relations entre classes 5lecture d-une association

S Un employeur emploi plusieurs personnes T

R (oci9t9 (on4mplo8e r Qersonne (es4mplo89s 1

S Un employ est employ par un seul employeur T

IRIT"UTM

'1

Les relations entre classes 5les contraintes Les contraintes


Les associations alternatives
0ontrainte SxorT $ o excl sif Lors6 A ne se le des associations ne pe t Utre instanci9e

:xemple1
a pour titulaire
compte Qersonne ph8si6 e

>4or? a pour titulaire


Qersonne morale

(CL1 (bject Constraint Language


IRIT"UTM

'*

Les relations entre classes 5les restrictions Une restriction ou qualification" consiste . slectionner un sous5ensemble dobjets parmi lensemble des objets qui participent . une association :xemple1
Classe A Cl @5hi,uier
1 5h,uier 5ase ;

Classe B Case

@5hi,uier

Ai'ne Colonne

1 5h,uier

; 5ase

Case

IRIT"UTM

=/

Les relations entre classes 5classe associative :nsemble dattributs qualifiant la relation

@tu+iant

Bes@tu+iants ;

; BesMati0res

Mati0re

Mo enne

/eprsentation simplifie
@tu+iant Mo enne Mati0re

IRIT"UTM

=1

Les relations entre classes 5l-agrgation


Connexions bidirectionnelles dissymtriques
Une des extrmits est prdominante par rapport . lautre =e concerne quun seul rRle

/eprsentation des relations de type


2out et parties Compos et composants MaUtre et esclaves

+eux type dagrgation


&grgation partage par rfrence" V notion de co5proprit
la cr9ation )resp. la destr ction- des composants est ind9pendante de la cr9ation )resp. la destr ction- d composite n obBet pe t faire partie de pl sie rs composites la fois

Composition par valeur"


cas partic lier de lAa>r9>ation $ attrib ts conten s ph8si6 ement par lAa>r9>at la cr9ation )resp. la destr ction- d composite entraVne la cr9ation )resp. la destr ction- des composants n obBet ne fait partie 6 e dA n se l composite la fois
IRIT"UTM

=#

Les relations entre classes 5l-agrgation &grgation


3ersonne
Co3ropritaire 188; 788; Immeuble

Immeuble

Composition
-oiture Moteur -oiture

Moteur

C lin+re

Carburateur

IRIT"UTM

='

=avigabilit d-une association Wualit dune association qui permet le passage dune classe vers une autre 9ar dfaut# on peut naviguer dans les Q sens (n peut cependant limiter la navigabilit1
Classe 1 Classe 2

:xemple1
U"e i"sta"ce d#utilisateur eut accder $ des i"sta"ces de Mot de asse, %ais as l#i"verse
6tilisateur
+tenteur

5le2

Mot +e passe

IRIT"UTM

==

Mt!ode 57ers attributs &ttributs dcrivant l-objet &ttributs de classes &ttributs drivs
3.OD6I1
- Nom : strin' - Des5ription : strin' - 3oi+s : 2loat - 3ri4H1 : 2loat - 1au41a4e : 2loat " 1C(D - $3ri411C : 2loat - 1au4/ran5s : 2loat " D(EEEC - $3ri411C/ran5s : 2loat

IRIT"UTM

=3

Mt!ode 57ers mt!odes Constructeur s" &ccesseurs 7 pour c!aque attribut" Calcul des attributs drivs
3.OD6I1
- Nom : strin' - Des5ription : strin' - 3oi+s : 2loat - 3ri4H1 : 2loat - 1au41a4e : 2loat " 1C(D - $3ri411C : 2loat - 1au4/ran5s : 2loat " D(EEEC - $3ri411C/ran5s : 2loat % 3.OD6I1 &nom : strin'( +es5ription : strin'( poi+s : 2loat( pri4H1 : 2loat) : 3.OD6I1 % FetNom &) : strin' % FetDes5ription &) : strin' % Fet3oi+s &) : 2loat % Fet3ri4H1 &) : 2loat % Fet1au41a4e &) : 2loat % Fet3ri411C &) : 2loat % Fet1au4/ran5s &) : 2loat % Fet3ri411C/ran5s &) : 2loat % FetBes3aniers &) : ensemble&3ANIG.) % Cal5uler3ri411C &) : #oi+ % Cal5uler3ri411C/ran5s &) : #oi+

IRIT"UTM

=+

Mt!ode 5autres mt!odes Modifieurs


9ublics 9rivs
3.OD6I1
- Nom : strin' - Des5ription : strin' - 3oi+s : 2loat - 3ri4H1 : 2loat - 1au41a4e : 2loat " 1C(D - $3ri411C : 2loat - 1au4/ran5s : 2loat " D(EEEC - $3ri411C/ran5s : 2loat % 3.OD6I1 &nom : strin'( +es5ription : strin'( poi+s : 2loat( pri4H1 : 2loat) : 3.OD6I1 % FetNom &) : strin' % FetDes5ription &) : strin' % Fet3oi+s &) : 2loat % Fet3ri4H1 &) : 2loat % Fet1au41a4e &) : 2loat % Fet3ri411C &) : 2loat % Fet1au4/ran5s &) : 2loat % Fet3ri411C/ran5s &) : 2loat % FetBes3aniers &) : ensemble&3ANIG.) % Cal5uler3ri411C &) : #oi+ % Cal5uler3ri411C/ran5s &) : #oi+ % Bet3ri4H1 &pri4H1 : 2loat) : #oi+ - Bet1au41a4e &tau4 : 2loat) : #oi+
IRIT"UTM

&utres mt!odes

=,

Mt!ode 5associations et rRles


3.OD6I1
- Nom : strin' - Des5ription : strin' - 3oi+s : 2loat - 3ri4H1 : 2loat - 1au41a4e : 2loat " 1C(D - $3ri411C : 2loat - 1au4/ran5s : 2loat " D(EEEC - $3ri411C/ran5s : 2loat % 3.OD6I1 &nom : strin'( +es5ription : strin'( poi+s : 2loat( pri4H1 : 2loat) : 3.OD6I1 % FetNom &) : strin' % FetDes5ription &) : strin' % Fet3oi+s &) : 2loat % Fet3ri4H1 &) : 2loat % Fet1au41a4e &) : 2loat % Fet3ri411C &) : 2loat % Fet1au4/ran5s &) : 2loat % Fet3ri411C/ran5s &) : 2loat % Cal5uler3ri411C &) : #oi+ % Cal5uler3ri411C/ran5s &) : #oi+ % Bet3ri4H1 &pri4H1 : 2loat) : #oi+
IRIT"UTM

3ANIG.
- $3ri411C : 2loat - $3oi+s : 2loat - $3ri411C/ran5s : 2loat

3 (es)roduits

% 3ANIG. &un3ro+uit : 3.OD6I1) : 3ANIG. % Fet3ri411C &) : 2loat % Fet3oi+s &) : 2loat % Fet3ri411C/ran5s &) : 2loat 1 et(es)roduits (! 0 ensem2le()roduit! % Cal5uler3ri411C &) : #oi+ % Cal5uler3oi+s &) : #oi+ % Cal5uler3ri411C/ran5s &) : #oi+ % AHouterAu3anier &un3ro+uit : 3.OD6I1) : #oi+ % BupprimerDu3anier &un3ro+uit : 3.OD6I1) : #oi+ =1

Mt!ode 5version simple &ttributs


:xplicite1 nom ,mplicite1
!isibilit9 pri!9e t8peD !ale r par d9fa t
3.OD6I1
Nom Des5ription 3oi+s 3ri4H1 1au41a4e $3ri411C 1au4/ran5s $3ri411C/ran5s % Bet3ri4H1 &pri4H1 : 2loat) : #oi+

Mt!odes
:xplicite1 mt!odes spcifiques ,mplicite1
constr cte r accesse rs WHetTotoW )1 par attrib t et rle modifie rs pri!9s W(etTotoW calc l des attrib ts d9ri!9s

IRIT"UTM

=*

+iagramme de classes 5exercice /aliseF le digramme de classe pour1


Une voiture
6 atre ro esD des pne s n mote rD n coffreD des passa>ers<.

IRIT"UTM

3/

'irarc!ie de classes )rer la complexit


&rborescences de classes dabstraction croissante

)nralisation1 %uper5classes %pcialisation1 %ous5classes

(u&er4classe

Classe plus 'nrale

(ous4classe

Classe plus sp5ialise

IRIT"UTM

31

)nralisation Iactoriser les lments communs


attributs# oprations et contraintes

A2straction &lus gnrales '5icule

'5icule terrestre

'5icule arien

'oiture

,amion

A"ion

6lico&t#re

IRIT"UTM

3#

%pcialisation :xtension co!rente d-un ensemble de classes


7ransmission

,ontinue

Discr#te

'ariateur

Drailleur

8o9te de "itesses

*:tension &ar s&cialisation

IRIT"UTM

3'

9roprits de la gnralisation %ignifie toujours 1 est un ou est une sorte de (is-a)


Animal

,arni"ore

6er2i"ore

Lion

Mouton

La&in

IRIT"UTM

3=

9roprits de la gnralisation =on5rflexive# non5symtrique# transitive


A

8
Impossible III

A ,

0 8

Impossible III

IRIT"UTM

33

)nralisation multiple

Animal Btation Nourriture 8i&#de ;uadru&#de 6er2i"ore ,arni"ore A &lumes A &oils A cailles 3rote5tion

La&in

Attention 5ertains lan'a'es ne le supporte pas

IRIT"UTM

3+

L-!ritage 2ec!nique la plus utilise pour raliser la gnralisation Construire une classe . partir dune ou plusieurs autres classes# en partageant des attributs# des oprations et parfois des contraintes# au sein d-une !irarc!ie de classes
Fnralisation
,om&te8ancaire -5r+it : int -+bit : int %+poser&ar'ent :int) %retirer&ar'ent :int) %+onner-sol+e&):int

Bp5ialisation

,om&te<&argne -tau4 :int %5al5ulerIntrJts&):int


IRIT"UTM

3,

Classe et opration abstraites Classe qui ne peut avoir aucune instance directe (n crit son nom en italique (pration incomplte qui a besoin de sa classe fille pour fournir une implmentation (n crit son nom en italique$
Forme -Nom : strin' +Calc-surface() %Fet-nom&)

IRIT"UTM

31

9olymorp!isme
Forme -Nom : strin' +Calc-surface() %Fet-nom&)

.ectangle : real -Aar'eur : real %Cal5-sur2a5e&)


-Aon'ueur -.a

,ercle on : real

%Cal5-sur2a5e&)
Opration polymorphe

IRIT"UTM

3*

,nterfaces Contient des dclarations de caractristiques


&ttributs (prations

+finition dun contrat pour toutes les classes qui limplantent


<<interface>> !o*,nte-face atrribut operation

IRIT"UTM

+/

/alisation
<<interface>> .la-* +volume:int +activate() +desactivate()

.la-* Si*/le.la-* +volume:int +activate() +desactivate() +volume:int +activate() +desactivate() +volumeModify(volu me:int)

IRIT"UTM

+1

'ue (tructurelle Diagramme d=o2%ets

IRIT"UTM

+#

+iagramme d-objets ,ls modlisent les instances dlments qui apparaissent sur les diagrammes de classe ,ls montrent un ensemble d objets et leurs relations . un moment donn ,nstances nommes
bouton1:.e5tan'le bouton2:

,nstances anonymes
:Cer5le

,nstances avec valeurs dattributs


bouton3:.e5tan'le Nom : strin'"Kbouton-poussoirL Aon'ueur : real"138E Aar'eur : real"382

IRIT"UTM

+'

+iagramme d-objets5 association>lien Une association est une abstraction des liens qui existent entre les objets instances des classes associes Les associations se reprsentent de la mme manire que les liens
Uni!ersit9

Une association

Mt diant

Un lien To lo se$ Uni!ersit9 Un lien

Qierre$ Mt diant

5ean"5ac6 es$ Mt diant Iordea x$ Uni!ersit9 Un lien La rence$ Mt diant

IRIT"UTM

+=

+iagramme d-objets5 exemple

*nseignant

ensei'ne 188;

Mati#re

Dupont:Gnsei'nant Martin:Gnsei'nant

Fnie-Ao'i5iel:Mati0re .seau4:Mati0re B st0me:Mati0re

Du#al:Gnsei'nant

IRIT"UTM

+3

'ue Fonctionnelle Diagramme des cas d=utilisation

IRIT"UTM

++

+iagramme des cas d-utilisation :xpression du comportement du systme selon le point de vue de lutilisateur ,nteraction entre le systme informatique . dvelopper et un utilisateur ou acteur" interagissant avec le systme +escription dune squence d-actions ralises par le systme et qui produit un rsultat observable pour un acteur

IRIT"UTM

+,

+iagramme des cas d-utilisation Constitue un moyen pour dterminer les buts et ltendue dun systme Utilis par les utilisateurs finaux pour exprimer leur attentes et leur besoins
9ermet dimpliquer les utilisateurs ds les premires p!ases du dveloppement

%upport de communication entre les quipes et avec les clients +coupage du systme global en grandes tJc!es qui pourront tre rparties entre les quipes de dveloppement 9ermet de concevoir les ,nterfaces !omme5 Mac!ine# $$$$ Constitue une base pour les tests fonctionnels
IRIT"UTM

+1

=otation UML

B st0me

5as +=utilisation M a5teur A 5as +=utilisation N a5teur B

5as +=utilisation 9

IRIT"UTM

+*

:xemple1 le jeu monopoly

Monopol

Houeur

Houer un 5oup

+istribuer l=ar'ent

ban,uier

IRIT"UTM

,/

:xemple1 le jeu monopoly &xe% le ' Dia(ra%%e de cas d#utilisatio" rli%i"aire our le )eu * Mo"o ol+ ,

M onopol A5heter une proprit PPin5lu+eQQ

Ooueur PPin5lu+eQQ 3a er le lo er PPe4ten+QQ

/aire un +pla5ement PPe4ten+QQ

Aller en 3rison

H poth,uer une proprit

Ban,uier

.epartir les billets

IRIT"UTM

,1

Les acteurs Un acteur est une entit erso""e ou un s+st-%e) qui interagit avec un s+st-%e .ou avec u" autre s+st-%e)# en c!angeant de linformation en entre et>ou en sortie /eprsente un ensemble de rRles que les utilisateurs peuvent jouer quand ils interagissent avec les cas dutilisation (n trouve les acteurs en observant les utilisateurs directs du systme# ceux qui sont responsable de sa %ai"te"a"ce# ainsi que les autres s+st-%es qui interagissent avec le systme (n doit raisonner en terme dutilisatio" au lieu de communication

IRIT"UTM

,#

Les acteurs et les rRles (n ne doit pas raisonner en terme dentit p!ysique# mais en terme de rRle que lentit p!ysique joue Un acteur reprsente un rRle jou par un utilisateur qui interagit avec le systme La mme personne p!ysique peut jouer le rRle de plusieurs acteurs joueur# banquier" 9lusieurs personnes peuvent galement jouer le mme rRle# et donc agir comme le mme acteur tous les joueurs"

Nom du rle
IRIT"UTM

,'

Les acteurs et les rRles 5exemple (n ne doit pas raisonner en terme dentit p!ysique# mais en terme de rRle que lentit p!ysique joue Un acteur reprsente un rRle jou par un utilisateur qui interagit avec le systme La mme personne p!ysique peut jouer le rRle de plusieurs acteurs joueur# banquier" 9lusieurs personnes peuvent galement jouer le mme rRle# et donc agir comme le mme acteur tous les joueurs"

Nom du rle
IRIT"UTM

,=

Les acteurs et les rRles 5exemple :xemple 1


,dentifier les acteurs . partir des rgles du jeu de socit S Monopoly T

joueur

banquier

IRIT"UTM

,3

Les cas d-utilisation Les cas d-utilisation


/eprsentent le dialogue entre lacteur et le systme de manire abstraite :nsemble de scnarios au sein dune description unique

Cas dutilisation vs. scnario


Cas dutilisation1 reprsente un cas en gnral# une reprsentation gnrale et synt!tique dun ensemble de scnarios similaires

exemple$ C n Bo e r Bo e n co p;
%cnario1 cas dutilisation spcifique
exemple$ C le Bo e r Qierre Bo e $ il obtient , a!ec les d9sD se d9place r e de Iel!ille et ach:te la propri9t9;

IRIT"UTM

,+

Conception d-un +CU Wuestions . se poser pour dterminer les acteurs


Wuels sont les rRles possiblesX

Wuestions . se poser pour dterminer les cas d-utilisation


Wuelles sont les tJc!es de lacteurX Wuelles informations lacteur doit5il crer# sauvegarder# modifier# dtruire ou simplement lire ou $$$X Lacteur devra5t5il informer le systme des c!angements externesX Le systme devra5t5il informer lacteur de conditions internes au systmeX $$$$

IRIT"UTM

,,

+CU 5notation UML

C!aque cas dutilisation doit avoir un nom qui permet de le distinguer des autres$ Ce nom modlise une action Un cas dutilisation est reprsent par une ellipse et son nom
Lom

IRIT"UTM

,1

+CU 5notation UML :xemple 1 ,dentifier les cas dutilisation principaux . partir des rgles du jeu de socit S Monopoly T voir !ttp1>>fr$3i0ipedia$org>3i0i>Monopoly"

IRIT"UTM

,*

+CU 5notation UML :xemple 1 ,dentifier les cas dutilisation principaux . partir des rgles du jeu de socit S Monopoly T
7cheter ne propri9t9 Naire n d9placement

Qa8er le lo8er

X8poth96 er ne propri9t9

R9partir les billets 7ller en Qrison

Naire faillite

IRIT"UTM

1/

+CU 5notation UML /elations entre les composants


Ent-e les acte'-s et les cas d0'tilisations Associations Ent-e les acte'-s o' ent-e les cas d0'tilisation !n!ralisation Ent-e les cas d0'tilisation %&include&' "nclusion %&e$tend&' #$tension

IRIT"UTM

11

+escription plus fine5 /elation d-inclusion S include T


,nclusion NNincludeOO"1 permet de spcifier un comportement additionnel qui est inclut dans le comportement dun cas dutilisation de base

7cheter ne propri9t9

C incl de;

Naire n d9placement

0as dA tilisation de base

Le cas dA tilisation de base pointe !ers le cas dA tilisation incl t

0as dA tilisation incl s

IRIT"UTM

1#

+escription plus fine5 /elation d-inclusion S include T


,nclusion NNincludeOO"1 permet de spcifier un comportement additionnel qui est inclut dans le comportement dun cas dutilisation de base Monopol
PPin5lu+eQQ

Ooueur

Oouer un 5oup

1ou5her +e l=ar'ent
PPin5lu+eQQ

Distribuer l=ar'ent

Ban,uier

IRIT"UTM

1'

+escription plus fine5 /elation d-extension :xtension NNextendOO"1 permet de spcifier un comportement additionnel qui peut incrmenter le comportement dun cas dutilisation de base partie facultative ou cas dexception"
X8poth96 er ne propri9t9

C extend ;

Qa8er le lo8er

0as dA tilisation extension

Le cas dA tilisation 6 i a >mente le comportement pointe !ers le cas dA tilisation de base

IRIT"UTM

1=

+escription plus fine5 /elation d-extension


:xtension NNextendOO"1 permet de spcifier un comportement additionnel qui peut incrmenter le comportement dun cas dutilisation de base partie facultative ou cas dexception" Monopol
PPe4ten+QQ

Ooueur

Oouer un 5oup

/in +e partie

Distribuer l=ar'ent

Ban,uier

IRIT"UTM

13

+escription plus fine5 %pcification 9our c!acun des cas d-utilisation on fournira une spcification sous la forme
+un texte pas de norme tablie" +-un diagramme de squence ou de collaboration"

%pcification sous forme textuelle 5 plusieurs tapes


/dige par lutilisateur 9roposition tec!nique

C!aque tape de spcification peut donner lieu . une version du diagramme de classes# de plus en plus dtaille

IRIT"UTM

1+

%pcification sous forme textuelle 5exemple


(8st:me$ nom du systme 7cte r primaire$ nom de lacteur qui initie le cas FbBectif$ nom du cas (description synthtique) Qr9condition$ pour la ralisation du cas (c9narios$ 1 1re tape me tape ! 4xception$ 1a cas particulier a de la 1re tape 1b cas particulier b de la 1re tape a cas particulier de la deu"ime tape

IRIT"UTM

1,

:xemple V gestion d-un C*M La C*M Computer *oo0s by Mail" est une socit de distribution d-ouvrages d-informatique qui agit comme intermdiaire entre les libraires et les diteurs :lle prend des commandes en provenance des libraires# s-approvisionne . prix rduit" auprs des diteurs concerns et livre ses clients . rception des ouvrages ,l n-y a donc pas de stoc0age %eules les commandes des clients solvables sont prises en compte

IRIT"UTM

11

+iagramme des cas d-utilisation 5itration 7


,8M enre'istrer une 5omman+e

em&lo+ enre'istrer un nou#eau 5lient

enre'istrer un nou#eau li#re

IRIT"UTM

1*

+iagramme des cas d-utilisation 5itration Q


,8M enre'istrer une 5omman+e

PPin5lu+eQQ *m&lo+ enre'istrer un nou#eau 5lient passer une 5omman+e ur'ente

enre'istrer un nou#eau li#re

IRIT"UTM

*/

+iagramme des cas d-utilisation 5final


,8M enre'istrer une 5omman+e

PPin5lu+eQQ *m&lo+

PPe4ten+QQ passer une 5omman+e ur'ente

enre'istrer un nou#eau 5lient

enre'istrer un nou#eau li#re

IRIT"UTM

*1

%pcification textuelle du cas &"re(istrer u"e co%%a"de 7$ ;ersion1 /daction par lutilisateur
%ystme1 C*M &cteur primaire1 lemploy de la cooprative (bjectif1 enregistrer une commande de livres 9rcondition1 le libraire existe %cnarios1 7 5 lemploy vrifie la solvabilit du libraire Q 5 lemploy vrifie lexistence du livre B 5 lemploy prcise la quantit :xception1 7a 5 le libraire nest pas solvable lemploy est inform" Qa 5 le livre nexiste pas lemploy est inform"

IRIT"UTM

*#

%pcification textuelle du cas &"re(istrer u"e co%%a"de


Q$ ;ersion1 9roposition tec!nique
%ystme1 C*M &cteur primaire1 lemploy de la cooprative (bjectif1 enregistrer une commande de livres 9rcondition1 le libraire existe %cnarios1 7 5 lemploy vrifie la solvabilit du libraire / u"e i"sta"ce de co%%a"de est cre Q 5 lemploy vrifie lexistence du livre / u" lie" e"tre l0i"sta"ce de co%%a"de et u"e i"sta"ce de livre est cr B 5 lemploy prcise la quantit Y la 1ua"tit est a)oute .classe associative) :xception1 7a 5 le libraire nest pas solvable / u" %essa(e est a!!ich Qa 5 le livre nexiste pas / u" %essa(e est a!!ich
IRIT"UTM

*'

+iagramme des cas d-utilisation 5exercice


/aliser le diagramme des cas d-utilisation raffin# en donnant une spcification textuelle d-un cas# et le diagramme de classes pour le systme de gestion et de consultation d-une base de donnes suivant1
2rois types d-utilisateurs sont possibles1 les tilisate rs 6 i po rront B ste cons lter la baseD les responsables char>9s des aBo tsD s pressions et modification des donn9es de la baseD LYadministrate r 6 i po rra modifier la str ct re de la base

IRIT"UTM

*=

'ue Fonctionnelle Diagramme de colla2oration et de squence

IRIT"UTM

*3

(bjectifs +escription de scnarios particuliers /eprsente le fonctionnement du systme du point de vue du concepteur Mise en valeur des passages de messages flots de donnes ou de contrRles# vnements" entre acteur et objet# ou entre objets# de manire c!ronologique (n reprsente le fonctionnement au niveau des instances

IRIT"UTM

*+

:xemple d-introduction5 diagramme de squence &our


illustrer une colla2oration

sd #enteImmobili0re

notaire 0 >otaire

contrat'ente 0 7ransaction

&ro&ritaire 0 )ersonne

acqureur 0 )ersonne

tablir si'ner

si'ner

IRIT"UTM

*,

+iagramme de squence Comme les diagrammes de collaboration# comporte1


+es objets dans une situation donne instances" Les messages c!angs entre les objets

& la diffrence des diagrammes de collaboration


L-accent est mis sur la communication# au dtriment de la structure spatiale C!aque objet est reprsent par une barre verticale Le temps s-coule de !aut en bas# de sorte que la numrotation des messages est optionnelle

IRIT"UTM

*1

+iagramme de squence
unA:ClasseA

Li>ne de !ie dA n obBet

unA:ClasseA

4x9c tion dA ne occ rrence


unA:ClasseA

@estr ction de lAinstance


unA:ClasseA

0r9ation dA n instance Nrame$ compartimenter le dia>ramme de s96 ence


IRIT"UTM

**

=otations
acteur objet du diagramme de classes nom de l'instance nom de la classe

toto:A5teur1 meth1&)

unA:ClasseA

unB:ClasseB

message
meth2 &)

Bon1ru5

boolean

retour

Rtype Rnom d'une instance

activation

ligne de vie (dure de linteraction)


IRIT"UTM

1//

=otations 5messages sync!rone>async!rone


message synchrone 0 metteur 2loqu? attend retour message asynchrone 0 metteur non 2loqu? continue ses traitements

appl

erreur

alarme

in5onnu alarme

IRIT"UTM

1/1

=otations 5cration>destruction

toto:A5teur meth1 &)

unA : ClasseA

ClasseB &)

: ClasseB

unB

Cration Suppression

R rrive sur la classe R!as de nom d'instance au dbut Rrenvoie tj l'instance cre

IRIT"UTM

1/#

=otations 5message rflexif


@n o2%et &eut sAen"o+er un message B lui4m$me

toto:A5teur meth1 &)

unA : ClasseA

meth2 &)

*:em&le0 a&&el dAune mt5ode &ri"eC

IRIT"UTM

1/'

=otations 5message rflexif


@n o2%et &eut sAen"o+er un message B lui4m$me

toto:A5teur meth1 &)

unA : ClasseA

meth2 &)

*:em&le0 a&&el dAune mt5ode &ri"eC

IRIT"UTM

1/=

=otations 5contraintes sur les lignes de vie

sd piloter a#ion

0 )ilote
+marrerMoteur&) Oprateur +Sassertion ,ui ren+ in+ispensable lSen#oi +u messa'e vrifierEssence() 5ontrainte +5oller&)

0 A"ion

assert

DA"ion*ssence E 0F

#ri2ierGssen5e&)

IRIT"UTM

1/3

=otations 5alternative 7

:A

:B T5on+U meth1 &) Tnon 5on+U meth2 &) meth3 &)

:C

alternative

condition

On peut aussi 2aire +eu4 +ia'rammes +e s,uen5es 5orrespon+ant au4 +eu4 s5narios meilleure lisibilit
IRIT"UTM

1/+

=otations 5alternative 7

sd retrait ar'ent

0 ,lient
Oprateur +Sintera5tion
alt

5hoi41 pe.etrait &GurosOuDollars)

0 Distri2uteur

Con+ition +u 5hoi4

G*urosOuDollars H H *urosI

a22i5herG5ranGn/ranVais
Bparateur +Sopran+es GelseI

a22i5herG5ranGnAn'lais

IRIT"UTM

1/,

=otations 5alternative Q
:A T5on+U meth1 &) :B :C

Cas 5on+:

Tnon 5on+U meth2 &) meth3 &)

Cas non 5on+:

Deu4 +ia'rammes +e s,uen5es 5orrespon+ant au4 +eu4 s5narios


IRIT"UTM

1/1

=otations 5rptition
envoie du m"me message n #ois au m"me objet

:A ;T5on+U meth1 &)

:B

:C

Pour telles et telles instances


meth2 &)

envoie du m"me message $ #ois % plusieurs objets


IRIT"UTM

1/*

=otations 5rptition

sd +marrer train 0 ,onducteur


2ermer3ortes&) Loo& (1?n! 2ermer&)

0 7rain &orteGiI 0 )orte

IRIT"UTM

11/

=otations 5paralllisme

sd

0A

08

&ar

a
Oprandes qui se droulent en parallle

IRIT"UTM

111

+iagramme de squence 5exemple Wuand pouvons nous lutiliserX


+ans le diagramme de cas dutilisation
d9crire n sc9nario dA n cas dA tilisation$ d9crire les interactions entre le s8st:me et son en!ironnement

+ans lanalyse dtaille du systme


d9crire les interactions interne d s8st:me$ les interactions entre les classes

:xemple d-un four lctrique


Le four peut tre mise en marc!e ,l peut tre arrter Le systme rgule la temprature du four

IRIT"UTM

11#

+iagramme de squence 5exemple

IRIT"UTM

11'

+iagramme de squence 5exemple

+marrer&) initialiser&)

temperatureIn2o&temp)

IRIT"UTM

11=

:xemple de la C*M 5diagramme de classes

COMMANDG numro +ate 5omman+e &libr) aHouterAi#re &li#re)

saAibrairie 1 sesComman+es ;

AIB.AI.IG nom a+resse sol#abilit isBol#able &)

sesLd, 3 AIFNG DG COMMANDG ,uantit putWuantit &,t)

sesAibrairies ;

CBM

1 AI-.G IBBN titre sonLi"re sesAi#res ; GDI1G6. nom a+resse 'etAi#re &titre) : AI-.G

; sesG+iteurs

IRIT"UTM

113

:xemple de la C*M ZCommuniquer les dtails de toutes les commandes d-une librairie donne[ Mt!ode get+tailCommandes " de la classe L,*/&,/,:

IRIT"UTM

11+

Un +%: 1 (etDetails2o%%a"des 34
"ersion 1 0 dlgation (&ro&agation des messages!
Dupon+:.esponsable AIB.AI.IG BesComman+es:COMMANDG BesA+C:AIFNGDGCOMMANDG BonAi#re:AI-.G

'etDtailComman+es&) 'etBesComman+es&) sesComman+es 'etDtailComman+e&) 'etDate&) +ate

Pour chaque commande

'etBesAi'nes&)

sesA+C 'etDtailAi'ne&) 'etAi#re&) sonAi#re 'et1itre&) titre 'etWuantit&) +ate %>titre(,uantit? >+ate %>titre(,uantit?? >titre(,uantit? ,uantit

Pour chaque ligne de com

IRIT"UTM

11,

:xemple de la C*M 5diagramme de classes dlagation


COMMANDG numro +ate 5omman+e &libr) aHouterAi#re &li#re) 'etDetailComman+e&) sesComman+es ; sesComman+es ; saAibrairie 1 AIB.AI.IG nom a+resse sol#abilit isBol#able &) 'etDetailComm an+es&)

sesA+C ;

sesAibrairies ;

AIFNG DG COMMANDG ,uantit putWuantit &,t) 'etDtailAi'ne&)

CBM

1 AI-.G IBBN titre

sonAi#re sesAi#res ;

; sesG+iteurs GDI1G6. nom a+resse 'etAi#re &titre) : AI-.G

IRIT"UTM

111

Un +%: 1 (etDetails2o%%a"des 35
"ersion - 0 su&er"ision (un o2%et en"oie tous les messages!
AIB.AI.IG BesComman+es:COMMANDG BesA+C:AIFNGDGCOMMANDG BonAi#re:AI-.G

Dupon+:.esponsable 'etDtailComman+es&)

'etBesComman+es&)

'etDate&) +ate Pour chaque commande 'etBesAi'nes&) sesA+C 'etWuantit&) ,uantit Pour chaque ldc de chaque com 'etAi#re&) sonAi#re 'et1itre&) titre >+ate %>titre(,uantit??

IRIT"UTM

11*