Vous êtes sur la page 1sur 11

UML Formalisme diagrammes de classe PARTIE I

http://www.usask.ca/frenchciv/ronald/la_boite_a_objets/modelisation_avec_uml.html La modlisation objet avec UML et du volume UML en Action adapt par iane !amache le "# janvier "##$

Modlisation des donnes : ia%ramme de classe &ote UML 'lasse Attributs Les lments drivs (prations )isibilit Associations* classe d+association* r,les Multiplicits - 'ardinalits 'ontraintes .ualificatifs !nralisation et hrita%e A%r%ation - 'omposition

Note UML: Une note est un commentaire plac sur un diagramme. Elle est attache au diagramme plutt qu' un lment du modle ( moins qu'elle ne soit strot pe pour !tre une contrainte". Exemple :

#lasses : Modle de reprsentation des o$%ets qui comprend une structure (donnes & attri$uts" et un comportement (mthodes & oprations" et qui 'a(orise la rutilisation. #haque ensem$le d'o$%ets a ant une structure commune et un comportement commun pourra !tre reprsente par une classe. #lasses candidates : #lasses principales du 'utur modle statique qui sont des concepts connus de l'utilisateur soit des )$%ets mtiers E*emples +our un restaurant de ,'ast 'ood, les o$%ets mtiers seraient Emplo e - #lient - .tems du menu - #ommandes client +our le #gep les o$%ets mtiers seraient +ro'esseurs - /tudiants - #ours +our un processus de 'acturation les o$%ets mtiers seraient 0acture - .tems 0acturs #lasse a$straite : #lasse ne pou(ant !tre instancie. Le nomClasse est alors en italique. 1ttri$uts : +roprit nomme d'une classe qui dcrit un domaine de (aleurs possi$les partag par tous les o$%ets de la classe. 2 tout instant3 chaque o$%et d'une classe porte une (aleur spci'ique pour chaque attri$ut de sa classe. Les (aleurs des attri$uts d'un o$%et reprsentent son tat. E*emples +our la classe Emplo e les attri$uts seront son nom3 adresse3 tlphone3 +our la classe /tudiant les attri$uts seront son Matricule3 nom3 programme d'tude 4oir e*emple UML en 1ction p. 567 UML 8 an 1ction e chapitre 9 p. 566

/a%e " de 00

Un attri$ut dri( est un attri$ut dont la (aleur pourra !tre dduite de d'autres in'ormations disponi$les. /nomAttribut (oir e*emple UML en 1ction p. 568 UML 8 en 1ction e chapitre 9 p. 56: Exemple

4isi$ilit : La (isi$ilit rpond $ien au concept d'encapsulation et r(le les limites d'accs un attri$ut de la classe +nom1ttri$ut +u$lique : (u par un client de la classe3 donc de l'e*trieur de la classe -nom1ttri$ut +ri( : (u de l'intrieur de la classe seulement #nom1ttri$ut +rotg : (u de l'intrieur de la classe et des sous&classes de la classe +orte : +ar d'aut un attri$ut a une porte d'instance : chaque o$%et de la classe possde sa propre (aleur pour la proprit. ;ans certains cas plus rares3 l'attri$ut peut a(oir une porte de classe : il e*iste alors une seule (aleur commune de la proprit pour toutes les instances de la classe. )n parle dans ce cas d'attri$ut de classe3 et on le souligne pour le distinguer des attri$uts d'instance nom1ttri$ut &&&& ;claration <tatic

/a%e 1 de 00

+rogramme d'tude #oordonnateur Audget

.n'ormatique Nom$re cours discipline E 87

Electro F Nom$re cours discipline E 88

)prations : =eprsente un ser(ice3 traitement qui peut !tre demand n'importe quel o$%et de la classe. Une opration est partage par tous les o$%ets de la classe. L'utilisation d'une opration sur un o$%et de la classe modi'iera l'tat de l'o$%et. La meilleure 'a>on d'identi'ier les oprations est d'tudier la d namique de l'application soit les interactions entre les o$%ets. +our ne pas surcharger les diagrammes il est inutile de recenser certaines oprations implicites comme : cration et destruction d'instances manipulation des attri$uts3 les accesseurs cration et destruction de liens qui sont implicites d'aprs les associations parcours et recherche sur les associations oprations non mtier lies l'.?M ou au stoc@age sur A; 4isi$ilit : La (isi$ilit rpond $ien au concept d'encapsulation et r(le les limites d'accs une opration de la classe +nom)pration +u$lique : (u par un client de la classe3 donc de l'e*trieur de la classe -nom)pration +ri( : (u de l'intrieur de la classe seulement #nom)pration +rotg : (u de l'intrieur de la classe et des sous&classes de la classe (oir e*emple UML en 1ction p. 56B C 5D5 Identit E Nom de la classe /a%e $ de 00

tat E n&tuple (attri$ut C (aleur" Structure E +roprits E Mem$res donnes E attri$uts Comportement E Mthodes E Mem$res 'onctions E <er(ices )n appelle la responsa$ilit d'une classe un regroupement de son /tat et de son comportement 4oici les di''rentes notations graphiques d'une classe3 en 'onction du ni(eau de dtail e*ig : Exemple :

.nstances : =eprsentation relle d'un o$%et. Une instance doit !tre uniquement identi'ia$le et distincte de toutes les autres instances.

/a%e 2 de 00

1ssociations : Les associations reprsentent les relations entre classe. #'est (ia les associations que nous na(iguerons entre les classes pour o$tenir di''rentes in'ormations. )n nommera l'association l'aide d'un groupe (er$al pour que l'association puisse !tre lu comme une phrase. )n ne nommera les associations que si le nom apporte une in'ormation signi'icati(e. ;e plus3 on inscrira un sens la lecture l'aide des caractres G ou H pour en 'aciliter la lecture. Une association non oriente est $idirectionnelle. e*emple L'association entre la classe /tudiants et la classe #ours3 nous permet de retracer les cours au*quels un tudiant est inscrit. (association unidirectionnelle C association $idirectionnelle ne donneront pas la m!me interprtation" L'association entre la classe 0acture et la classe .tems 'acturs3 nous permet de retracer le dtail de la 'acturation. #omment limiter le nom$re d'associations I .l est inutile d'a%outer une association lorsqu'une association implicite (ia une autre classe associe reprsente l'association 'aire e*emple Le dtail d'une 'acture est en lien a(ec une 'acture qui est elle&m!me associe un client. L'association entre client et 'acture est su''isante. L'association entre client et dtail 'acture est implicite et serait par consquent redondante. Exemple 1

3n UML le sens de lecture sera reprsent par une association directionnelle. 4emar5ue : ceci n+est pas forcment la meilleure fa6on de noter la relation entre une voiture et ses roues 7voir a%r%ation / composition 8

/a%e 9 de 00

Exemple 2

:lments du schma : &om d+association : ;<ravaille pour; 'lasse d+association : ;<ravail; &om des r,les d+association : ;3mplo=eur et 3mplo=; Les di''rentes associations sont 1ssociation Jutilise unK: =elation structurelle s mtrique 1ssociation rcursi(e : 1ssociation qui $oucle sur la classe Lnralisation Jest unK : +our les classes possdant des attri$uts communs3 on rassem$lera dans une super&classe ces proprits pour conser(er au ni(eau de la classe de $ase ses proprits spci'iques. (oir e*emple UML en 1ction p. 5D8 C 5D6 C 5DD UML 8 en 1ction e chapitre 9 p. 5DD 5DM

/a%e > de 00

1grgation & #omposition Ja unK : L'une des classe est compose d'instances de l'autre classe. Une classe agit titre de conteneur. Elle reprsente une relation de t pe ,ensem$le F lment,. (oir e*emple UML p. 5N: UML 8 en 1ction e chapitre 9 p. 5NB & 567 ;ans le cas de l'agrgation3 les c cles de (ie ne sont pas lis. <i on dtruit le conteneur

on ne dtruit pas ses parties. ;ans le cas de la composition3 les c cles de (ie sont lis. La destruction du conteneur dtruit ses parties. Un o$%et ne peut donc appartenir qu' un seul composite.
Li(re 5 5..O +age

=ectangle

+oints

Liste

1tomes

/a%e ? de 00

=sum dPassociations entre classes


QR+E< ;'1<<)#.1Q.)N< ENQ=E #L1<<E< ?ritage #lasse de $ase UQ.L.<E UN Association bidirectionnelle

E<Q&UN

#lasse ;

#lasse E

Association unidirectionnelle #lasse dri(e UQ.L.<E UN #lasse 0

#lasse a

A !" #a$r$ation%

#lasse $ A-!"#composition%

#lasse #

/a%e @ de 00

Multiplicits : La multiplicit e*prime sur les associations doit !tre (raie tous les moments du c cle de (ie des instances. Elle induit des contraintes sur le processus d'instanciation. Les di''rentes multiplicits sont 5 7 .. 5 7 .. n 5 .. n N D.. 5D E*emple Une 'acture contient de 5 n lignes de 'acturation. +ar contre une ligne de 'acturation ne rel(e que d'une et une seule 'acture. Lors de l'instanciation d'une ligne de 'acture on de(ra lui assigner une instance de 'acture. +ar contre pour instancier une 'acture il n'est (idemment pas o$ligatoire de lui associer ds le dpart une instance de ligne de 'acturation. Exemple de multiplicit 0 #..A 0..A #..0 "..2 0..1*>..0#*02*0@..A Quelques commentaires : Les intervalles doivent Btre nots en ordre croissant : ;0..1*>*0#; est prfrable C ;>*0#*0..1;. euD intervalles continus doivent Btre combins en un seul intervalle : ;#..0; est prfrable C ;#*0;. Les notations suivantes sont 5uivalentes : ;A; * ;#..A ;* ;A..A;

Multiciplicit 7..O ou 5..O des deu* cts de l'association .l 'aut alors crer une classe d'association (oir e*emple UML en 1ction p. 56D C 56: UML 8 an 1ction e chapitre 9 p. 56M C 56B

/a%e 0# de 00

;marche pour la$orer un diagramme de classe .denti'ier les classes (noms communs tirs des concepts connus de l'utilisateur" ;cider des t pes d'associations entre les classes (gen&spec - agrgat association" 1%outer les attri$uts 1%outer les oprations 4alider (otre diagramme de classe (simuler des rgles de gestion et (ri'ier que les classes permettent le respect de ces rgles de gestion"

/a%e 00 de 00