Sunteți pe pagina 1din 65

Modlisation objet Le langage UML

Brahim HAMID
brahim.hamid@irit.fr brahim.hamid@ ni!"tlse#.fr http$%%mass"cara. ni!"tlse#.fr%&brahimo %ens% ml
La base de contrle Robot Zone explorer

IRIT UTM

Les 9 diagrammes Vue structurelle


Diagramme de classes Diagramme objet Diagramme de composants Diagrammes de dploiement

Vue comportementale
Diagramme des cas dutilisation Diagramme tats-transition Diagramme dactivits Diagramme de collaboration Diagramme de squence

IRIT"UTM

Vue Structurelle Diagramme de paquetages

IRIT"UTM

'

Comment structurer un projet?

maginons un simple e!emple"


Une calculatrice
Calculatrice !ale r$inte2er$5 )+alc latrice,)a1o ter ,nombre $inte2er)so straire ,nombre $inte2er )intialiser,)to3trin2,-$ 3trin2 )0dd4bser!able ,frame+alc latrice $*rame+alc latrice 1 ne+alc latrice

neI6M operation8 tton $peration%utton 1..7 operation8 tton &umeric%utton 1..7 neI6M 1

#rameCalculatrice

)*rame+alc latrice ,neI6M )refresh.ispla/ )intialiser,)0dd+ible,calc latrice$+alc latrice1

IRIT"UTM

Comment structurer un projet?

maginons un simple e!emple"


Une calculatrice

Mod'le

Calculatrice !ale r$inte2er$5 )+alc latrice,)a1o ter ,nombre $inte2er)so straire ,nombre $inte2er )intialiser,)to3trin2,-$ 3trin2 )0dd4bser!able ,frame+alc latrice $*rame+alc latrice 1 ne+alc latrice

neI6M operation8 tton $peration%utton 1..7 operation8 tton &umeric%utton 1..7 neI6M 1

#rameCalculatrice

)*rame+alc latrice ,neI6M )refresh.ispla/ )intialiser,)0dd+ible,calc latrice$+alc latrice1

IRIT"UTM

Comment structurer un projet?

maginons un simple e!emple"


Une calculatrice

Mod'le

Calculatrice !ale r$inte2er$5 )+alc latrice,)a1o ter ,nombre $inte2er)so straire ,nombre $inte2er )intialiser,)to3trin2,-$ 3trin2 )0dd4bser!able ,frame+alc latrice $*rame+alc latrice 1 ne+alc latrice

(M

neI6M operation8 tton $peration%utton 1..7 operation8 tton &umeric%utton 1..7 neI6M 1

#rameCalculatrice

)*rame+alc latrice ,neI6M )refresh.ispla/ )intialiser,)0dd+ible,calc latrice$+alc latrice1

IRIT"UTM

Critiques Un seul diagramme de classes))


Devient vite ingrable pour des gros projets

La sparation (M et Mod'le nest pas asse* marque


Deu! diagrammes de classes cest mieu!
I6M Mod<le=

IRIT"UTM

+paration en , paquetages , couc-es " , paquetages Mod'leCalulatrice"


Contient tous les lments du mod'le

Mod'leCalculatrice

(MCalculatrice
.ous les lments Calculatrice

Lis par des liens de dpendances" / je peu! utiliser tous les


lments du paquetage qui est ma cible 0

(MCalculatrice

IRIT"UTM

>

Diagramme de classes du paquetage mod'le ndication du paquetage dorigine en italique 1!"


#rameCalculatrice appartient 2 (M paquetage
Calculatrice !ale r $inte2er $5 )+alc latrice,)a1o ter ,nombre $inte2er )so straire ,nombre $inte2er )intialiser,)to3trin2,-$ 3trin2 )0dd4bser!able ,frame+alc latrice $*rame+alc latrice 1 ne+alc latrice

neI6M

#rameCalculatrice (From IHMCalculatrice)

)*rame+alc latrice ,)refresh.ispla/ )intialiser,)0dd+ible,calc latrice$+alc latrice-

IRIT"UTM

Diagramme de classe de (M paquetage De m3me


Calculatrice (From ModeleCalculatrice ) !ale r$inte2er$5 )+alc latrice,)a1o ter ,nombre $inte2er)so straire ,nombre $inte2er )intialiser,)to3trin2,-$ 3trin2 )0dd4bser!able ,frame+alc latrice $*rame+alc latrice 1 ne+alc latrice

neI6M operation8 tton $peration%utton 1..7 operation8 tton &umeric%utton 1..7 neI6M 1

#rameCalculatrice

)*rame+alc latrice ,neI6M )refresh.ispla/ )intialiser,)0dd+ible,calc latrice$+alc latrice1


IRIT"UTM

15

Vue Structurelle Diagramme de composants et de dploiement

IRIT"UTM

11

1ncore 4lus dindpendance Les composants


%inaires que nous sou-aitons rutiliser Les binaires peuvent plugger ou dplugger en cours dapplication) 516%7 $penCCM8 9:in de se mettre daccord "
Il poss<de des interfaces re@ ises ,il a besoins de ser!ice po r fonctionner Il poss<de des interfaces fo rnies,il offre n ensemble de ser!ice-

IRIT"UTM

1#

Classe vs; Composant Les classes reprsentent des abstractions logiques alors que les composants reprsentent des abstractions p-<siques qui e!istent dans le monde des bits Les composants reprsentent le regroupement p-<sique de ce quon pourrait appeler des composants logiques et se situent 2 un niveau dabstraction di::rent Les classes peuvent avoir directement des attributs et des oprations; 1n gnral7 les composants comportent seulement des oprations que lon peut atteindre uniquement par leur inter:ace

IRIT"UTM

1'

Le composant

Interface Fournie

Composant

Interface Requise

IRIT"UTM

1(

Le composant Le composant est un lment p-<sique qui reprsent une partie implmet d=un s<st'me"
du code un script7 un :ic-ier de commandes;;;

Di::rents strot<pe de composants 5UML8"


/document0 /e!cutable0 / :ic-ier 0 / bibliot-'que 0 / table 0

IRIT"UTM

19

Les inter:aces 5>8 Une inter:ace est un ensemble d=oprations utilises pour dcrire un service d=une classe ou d=un composant UML :ournit un mo<en grap-ique de reprsenter les inter:aces
Interfaces
3p+tl3/st

+peed9cquisition

3p0c@3/st

De nombreu! langages de programmation supportent le concept des inter:aces

IRIT"UTM

1:

Les inter:aces 5,8 Les inter:aces d=un composant sont les lments d:inissant le compotement 5service8 o::ert 2 d=autres composants Un composant est un lment p-<sique qui se con:orme 2 un ensemble dinter:aces et les ralise; Les inter:aces :ont donc le lien entre le mod'le logique et le mod'le p-<sique;

IRIT"UTM

1;

Les inter:aces 5?8

Interface Fournie

Composant

Interface Requise

IRIT"UTM

1>

1!emple
/ nter:ace 0 CalculatriceCommand )a1o ter ,nombre $inte2er )so straire ,nombre $inte2er )intialiser,)to3trin2,-$ 3trin2 )0dd4bser!able ,frame+alc latrice $*rame+alc latrice -

@evemons 2 notre e!emple" Composant calculatrice

Calculatrice !ale r$inte2er $5 )+alc latrice,)a1o ter,nombre $inte2er )so straire,nombre $inte2er)intialiser,)to3trin2,-$3trin2 )0dd4bser!able ,frame+alc latrice $*rame+alc latrice 1 ne+alc latrice

neI6M

/ nter:ace 0 n:ormationDispla< )refresh.ispla/ ,)print.ispla/ ,messa2e$3trin20dd+ible,calc latrice$+alc latrice-

IRIT"UTM

1?

@elations entre composants 5>8 La majeure partie des relations e!istantes entre composants est constitue par des contraintes de compilations et d=dition de liens

IRIT"UTM

#5

@elations entre composants 5,8 Dpendance entre composants par l=intermdiare d=une inter:ace
Composant utilisateur

Interfcace du composant fournisseur

IRIT"UTM

#1

Les composants dans UML , 5>8

UML>;!" un composant est une unit modulaire7 dplo<able et interc-angeable dans un s<st'me7 encapsulant limplmentation et ne!posant quun ensemble dinter:aces ;; UML ,;A" les composants deviennent des lments structurant beaucoup plus abstraits7 qui reprsentent davantage des sous parties dun s<st'me7 amenes 2 3tre modlises selon di::rentes vues et ra::ines tout au long du c<cle de dveloppement

IRIT"UTM

##

Les composants dans UML , 5,8

Le concept de composant est dcrit dans di::rentes parties 5ou packages8 de la partie +uperstructure de la norme UML,;A " Composite structures Components Deployments Un certain nombre de pro:ils regroups en anne!e ont t d:inis pour dcrire des arc-itectures logicielles 2 base de composants relativement rpandus comme 16%7 CCM7 ou encore C$M

IRIT"UTM

#'

Vue e!terne d=un composant .escription des ser!ices fo rnis et re@ is Un ensemble dDinterfaces fo rnies et re@ ises Un ensemble dDattrib ts et opErations p bli@ es

A component B
3tarter

3peedRe2 lator

.ispla/

A component B 3peedRe2 lator A Cro!ided interfaces B 3tarter start,stop,A Re@ ired interfaces B .ispla/

IRIT"UTM

#(

Vue e!terne d=un composant

Une interface fo rnie est implEmentEe par le composant Une interface re@ ise est tilisEe par le composant
A Interface B 3tarter start,stop,A reception B 4n4ff max3p$ float
A component B
A Interface B .ispla/

3peedRe2 lator

/ use 0

IRIT"UTM

#9

Les ports +Dest n point dDinterraction entre n composant et de son en!ironnement Cl sie rs ports pe !ent Ftre dEfinis po r le mFme composants selon le mode dDinteraction tilisE +e @ i permet de preser!er n 2rand ni!ea dDindEpendance entre le comosant et son en!ironnement

Interface Fournie Composant

Interface Requise

IRIT"UTM

#:

Les ports t<ps par des inter:aces

Un composant possde un certain nombre dinterfaces fournies et requises Ce qui permet de connecter les composants les uns aux autres, soit en utilisant des relations de dpendance, ou laide de connecteurs. Une interface fournie est donc !" soit directement implmente par le composant ou lun de ses constituants #" soit le t$pe dun port fourni ou requi par le composant.

#;

+omposant a!ec n port complexe "simplexe

3tarter 0larm .ispla/


IRIT"UTM

A component B

3peedRe2 lator

#>

Diagramme de composants Les diagrammes de composants dcrivent les composants et leurs dpendances dans lenvironnement de ralisation Les diagrammes de composants sont des vues statiques de limplmentation des s<st'mes qui montrent les c-oi! de ralisation Les relations de dpendance sont utilises dans les diagrammes de composants pour indiquer quun lment dimplmentation dun composant :ait appel au! services o::erts par les lments dimplmentation dun autre composant

IRIT"UTM

#?

Conne!ion entre , composants" BcompositionC

ProvidedInterface

Composant !

RequiredInterface

InterfaceProvider1

RequiredInterface1

Composant #

InterfaceProviderN

RequiredInterfaceN

Composition% Composant ! & Composant #& Connexions

IRIT"UTM

'5

9ssemblage de composants

AcomponentB

AcomponentB
.ispla/
IRIT"UTM

3peedRe2 l a t o r 3tarter

Re2 lator3creen
'1

Diagramme de composants 5e!emple8

ComposantCalculatrice

ComposantCalculatrice (M

IRIT"UTM

'#

Mod'le de plate:orme5>8 Consiste 2 reprsenter le milieu! p-<sique dans lequel le composant est mis
4rcision du nDud 5la mac-ine8 4rcision du protocole 5lien entre les nDuds8
Gx$ Un C+ et pl sie rs ser!e rs

unServeur SSH

unPC * TCP/IP

unServeur

IRIT"UTM

''

Mod'le de plate:orme 5,8

C-aque ressource matrielle est reprsente par un nDud; Cette ressource poss'de au minimum de la mmoire et par:ois aussi des capacits de calcul" Un calculateur7 des ressources -umaines ou des prip-riques ;;;
un serveur une imprimante

IRIT"UTM

'(

Mod'le de plate:orme 5?8

Les di::rents nDuds qui apparaissent dans le diagramme de dploiement sont connects entre eu! par des lignes qui s<mbolisent un support de communication7 2 priori7 bidirectionnel

un PC porta le !SB

un modem

IRIT"UTM

'9

Diagramme de dploiement 5>8

Les diagrammes de dploiement permet de montrer la disposition p-<sique des di::rents matriels E les nDuds E qui entrent dans la composition dun s<st'me et la rpartition des instances de composants7 processus et objets qui / vivent 0 sur ces matriels

IRIT"UTM

':

Diagramme de dploiement 5,8

" suppor#

IRIT"UTM

';

1!emple de dploiement de composants distribus

Le nud 1

Le nud 2

Le composant C1

Le composant C2

IRIT"UTM

'>

1!emple dun projet contrFle dun robot

nC+
@obotControler

nRobot 7
1mbedded9ppli

ethernet
@obot%asicLibrar<

@obotControler (M

IRIT"UTM

'?

1!ercice" dGner de p-ilosop-e modlisation 2 base de composants

Thinking Hungry Starving Eating Dead

Fork Kant

Descartes

Thinking Hungry Starving Eating Dead

Fork Fork

Aristotle
IRIT"UTM

Thinking Hungry Starving Eating Dead

(5

1!ercice" dGner de p-ilosop-e modlisation 2 base de composants .rois p-ilosop-es autour d=une table pour manger des spaguettis Un plat de spaguetti devant c-aque p-ilosop-e Une :ourc-ette 2 gauc-e de c-aque plat 4our manger7 un p-ilosop-e 2 besoin de deu! :ourc-ettes" celle de gauc-e de son plat et celle 2 gauc-e de son voisin de droite

IRIT"UTM

(1

D:inition des inter:aces 5diagramme de classes8

IRIT"UTM

(#

Diagramme de composant

IRIT"UTM

('

Le s<st'me 5composite structure diagram8

IRIT"UTM

((

Vue 'onctionnelle Diagramme de collaboration

IRIT"UTM

(9

Diagramme de collaboration
Comporte
Des objets dans une situation donn Les liens qui relient les objets qui se connaissent Les messages c-angs entre les objets7 reprsents le long de ces liens

L=ordre d=envoi des messages est matrialis par un numro de squence &otation" un objet A envoie un message X 2 un objet B7 puis lobjet B envoie un message Y 2 un objet C7 et en:in C senvoie un message Z
0 1$ H #$ I + '$ Z

IRIT"UTM

(:

Diagramme de collaboration

#. 2et3es+ommandes

9. 2etJ antitE 1. 2et.etail+ommandes,L$Librairie :. 2etLi!re ;. 2etTitre Lc$Li2ne de commande

.ipond$Responsable

Li$Li!re (. 2et3esLi2nes '. 2et.ate

+ommande$+ommande

IRIT"UTM

(;

Vue D$namique Diagramme d(acti)its

IRIT"UTM

(>

Diagramme d=activits $u / diagramme de :lu! 0 Le diagramme dactivit est utilis pour mettre laccent sur les squences et les conditions pour coordonner les comportements d=un s<st'me

4ermet de spci:ier le :lu! dactivits dans le s<st'me Contrairement au diagramme de squence7 il se :ocalise sur le droulement dune procdure interne plutFt que dans les vnements e!ternes

IRIT"UTM

(?

Diagramme d=activits

Un diagramme dactivits permet de spci:ier "


Htat daction .ransitions #lots dobjets Couloir dactivit Mise en vidence des contraintes de squentialit et de paralllisme;

IRIT"UTM

95

Diagramme d=activits l peut 3tre utilis dans plusieurs buts "


4our spci:ier le comportement d=une opration ou le droulement d=un cas dutilisatio 4our modliser les processus mtier dans la p-ase danal<se des besoins

La structure et la dynamique de lorganisation o le systme sera dploy

IRIT"UTM

91

Diagramme d=activits &otations UML" Client


$tat initial Passer commande $ta lir devis %&rifier disponi ilit& Calculer Pri' Transition Devis %alider +sinon, $ta lir facture $tat final
IRIT"UTM

Service compta le
(i)ne d*eau

+valider,

-arde .or/

Pr&parer commande

0oin 9#

Diagramme d=activits- les activites &otations UML"

.lot de contr1le entrant %&rifier disponi ilit&

.lot de contr1le sortant

Activit&

IRIT"UTM

9'

Diagramme d=activits- tat d=action Un tat d=action est un tat qui reprsente le!cution dune action atomique ou dune opration &otations UML"

2nom d*action3

Le nom reprsente laction excuter

IRIT"UTM

9(

Diagramme d=activits- tat de sous activit Un tat de sous activit reprsente l=e!cution d=une squence7 non atomique7 dtapes
intrieurement elle se compose dans un ensemble d=actions et probablement d=vnements d=attente

&otations UML"

2nom Sous Activit&3 $tat d4action

IRIT"UTM

99

Diagramme d=activits- objet :lot

Un objet :lot permet de modliser lutilisation des objets par les tats dactions ainsi que leur in:luence sur ces objets
&otations UML"

nom

Commande5 +Transmise,

&tat &tat

IRIT"UTM

9:

Diagramme d=activits- transition La transition reprsente le trans:ert de contrFle entre les activits Le trans:ert se::ectue une :ois le!cution de lactivit :inie &otations UML"
transition transition 2une activit&3 +condition, +condition, 2une autre 2une autre activit&3 activit&3

Condition de garde condition qui doit !tre satis"aite pour permettre la transition

IRIT"UTM

9;

Diagramme d=activits- t<pe de transition Branche "


permet de spEcifier des chemins alternatifs pris selon la !ale r dK ne condition Lotation UML $

Activit& Activit& 7 7

ranche
+condition +condition 6, 6,

+condition +condition 7, 7,

Activit& Activit& 6 6

Activit& Activit& 6 6

IRIT"UTM

9>

Diagramme d=activits- t<pe de transition #orI "


Cermet de spEcifier des flots de contrle parall<les
# Un A fork B doit a!oir ne transition dKentrEe et de x o pl s transitions de sortie # +ha@ e transition de sortie reprEsente n flot de contrle indEpendant dont lKexEc tion est en parall<le

Lotation UML $
Activit& 7

Barre de s9nchronisation

Activit& 6

Activit& 8

IRIT"UTM

9?

Diagramme d=activits- t<pe de transition 6oin "


permet de spci:ier la s<nc-ronisation entre :lots de contrFle concurrents
Un A join B pe t a!oir de x o pl s transitions dKentrEe et ne transition de sortie M lKarri!Ee a A join B cha@ e acti!itE doit attendre @ e les a tres attei2nent le A join B le r to rN a!ant de contin er le flot de contrle indi@ E par lKacti!itE sit Ee a desso s de la barre de s/nchronisation

&otation UML "


Activit& 7 Activit& 8

Barre de s9nchronisation

Activit& 6

IRIT"UTM

:5

51!emple du Monopol<" une procdure8

Diagramme d9ctivits

lancer les d&s +trois dou les ; true,

+trois dou les;false,

en prison +vendue,

se d&placer +non vendue, arr:t sur une rue +ne veut pas acheter, acheter +veut acheter,

+ne m4appartient pas, pa9er lo9er

+m4appartient,

IRIT"UTM

:1

Les lments et les notations


Action Fin dactivit Nud Initial Nud de dcision Nud Fork : t c!e en "arall#le Nud de $onction Nud %&$et Nud 'i(nal
IRIT"UTM

:#

Diagramme d=activits -e!emple :aire un ca:

Chercher le caf&

parall&lisme
Mettre un filtre Mettre du caf& <emplir le r&servoir d4eau Prendre une tasse

Allumer la cafeti=re

S9nchronisation
(e caf& passe

servir

IRIT"UTM

:'

Diagramme d=activits -condition

condition

+oui,

22Comment33 Cafeti=re &teinte>


+non,

Allumer la cafeti=re (e caf& passe Servir

commentaire

Dans cet e'emple? il n*9 a pas de parall&lisme@@

IRIT"UTM

:(

Utilisation du diagramme d=activits Juand pouvons nous lutiliser?


4our complter les diagrammes de cas dutilisation
dEcrire n scEnario a!ec n dia2ramme dKacti!itE tilisation dK n lan2a2e littEral

Utilisation pour dcrire algorit-me dune mt-ode


tilisation d lan2a2e littEral tilisation d lan2a2e dKaction ,4MO-

IRIT"UTM

:9

S-ar putea să vă placă și