Vous êtes sur la page 1sur 75

Sommaire

Conception Oriente Objet Unified Modeling Language (UML)


Enseignent : g BOUHLEL Mohamed Salah
Anne Universitaire : 2007/2008

Introduction Analyse des besoins et diagramme de cas dutilisation Diagramme dactivit Diagramme de classe Diagramme de squence Diagramme de collaboration Diagramme dtat transition g Diagramme de composant Diagramme de dploiement Diagramme de composant Les nouveaut de UML 2 0 2.0 Prsentation des tudes de cas

Acadmie militaire de Borj el Amri

Bouhlel Mohamed Salah

COO 2007/2008

Introduction : Sommaire

Un peut dhistoire Le gnie logiciel Lapproche oriente objet Unified Modeling Language (UML) 2 Truck Unified Process (2TUP)

Un peu d'Histoire...

Bouhlel Mohamed Salah

COO 2007/2008

Bouhlel Mohamed Salah

COO 2007/2008

Un peu d'Histoire...
En 1995, une tude du Standish Group dressait un tableau accablant de la conduite des projets informatiques. Reposant sur un chantillon reprsentatif de 365 entreprises totalisant 8380 entreprises, applications, cette tude tablissait que :

Un peu d'Histoire...

Pour les grandes entreprises (qui lancent g p (q proportionnellement davantage de gros projets) :

Le taux de succs est de 9% seulement seulement, Le taux dchec des projets (arrt en cours de ) , ralisation) est de 37%, Le taux d b ti L t daboutissement h t hors dl i et h dlai t hors b d t budget est de 50%.
COO 2007/2008 6

16,2% des projets conformes aux prvisions initiales. 52,7% ont subi des dpassements en cot et dlai dun facteur 2 3 avec diminution du nombre des fonctions. 31,1% ont t , dveloppement. p purement abandonns durant leur

Bouhlel Mohamed Salah

COO 2007/2008

Bouhlel Mohamed Salah

Un peu d'Histoire...

Un peu d'Histoire...

Les causes dchecs : d checs


Linformatique (Non) Le client

?
Ou est le problme? p

Pour ces raisons, le dveloppement de logiciels dans un contexte professionnel doit suivre : t t f i l d it i

Des rgles strictes encadrant la conception Des rgles permettant le travail en groupe Des rgles de maintenance du code.

Ainsi, une nouvelle discipline est ne : l gnie logiciel. le i l i i l


Bouhlel Mohamed Salah COO 2007/2008 7 Bouhlel Mohamed Salah COO 2007/2008 8

Le gnie logiciel Pourquoi ?

L objectif Lobjectif du gnie logiciel est doptimiser le d optimiser cot de dveloppement du logiciel. Il remdie :
Laugmentation des cots. g Les difficults de maintenance et dvolution. L non fi bilit La fiabilit. Le non respect des spcifications. p p Le non respect des dlais.

Le gnie logiciel

Bouhlel Mohamed Salah

COO 2007/2008

Bouhlel Mohamed Salah

COO 2007/2008

10

Le gnie logiciel Quand ?

Le gnie logiciel comment ?

Le gnie logiciel touche au cycle de vie du logiciel : g g y g


Quest ce quun modle ?

Lanalyse d b L l du besoin, i Llaboration des spcifications, La conceptualisation, Le dveloppement, pp , La phase de test, La maintenance maintenance.

Un modle est une reprsentation abstraite et simplifie dune entit du monde rel en vue de le dcrire, de lexpliquer ou de le prvoir. Il reflte ce que le concepteur croit important pour la comprhension et la prdiction du phnomne modlis.

Pourquoi modliser ?

Mieux comprendre l f Mi d le fonctionnement d systme. ti t du t Matriser sa complexit Assurer sa cohrence.

Quel est lutilit


La gestion de projet se retrouve naturellement g g intimement lie au gnie logiciel.

Bouhlel Mohamed Salah COO 2007/2008 11

Support de communication et comprhension : Un modle est un langage commun, prcis, qui est connu par tous les membres de lquipe. Rpartition des taches et leurs automatisation. Rduction des cots et dlais Meilleur qualit et maintenance efficace.

Bouhlel Mohamed Salah

COO 2007/2008

12

Finalit

Le choix du modle a donc une influence capitale sur les solutions obtenues.

Selon les modles employs, la dmarche de modlisation nest pas la mme.

Lapproche oriente objet

Bouhlel Mohamed Salah

COO 2007/2008

13

Bouhlel Mohamed Salah

COO 2007/2008

14

Objet ???

Exemple

Lapproche oriente objet considre le logiciel comme une j possdant des collection dobjets dissocis, identifis et p caractristiques. Lobjet constitue le concept fondateur de l'approche du mme nom. Caractristiques Possde une identit (nom) ( ) Un ensemble d'attributs caractrise l'tat de l'objet. Un ensemble d'oprations dfinissant le comportement. Un objet est une instance de classe Une classe est un type de donnes abstrait, caractris par d proprits commune a t des it tous l objets ( tt ib t et les bj t (attributs t mthodes).

Bouhlel Mohamed Salah

COO 2007/2008

15

Bouhlel Mohamed Salah

COO 2007/2008

16

L'approche objet : une solution parfaite ?

Quels sont les remdes aux inconvnients de l approche l'approche objet ?

En rsum, l'approche objet c'est :


Rapproche les donnes et leurs traitements dans un unique objet. Ensemble de concepts stables, prouvs et normaliss. Solution d ti S l ti destine f ilit l' l ti d' faciliter l'volution d'applications complexes. li ti l Panoplie d'outils et de langages performants pour le dveloppement. La fonctionnalit du logiciel merge de linteraction entre les diffrents l interaction objets qui le constituent.

Un langage pour exprimer les concepts objet qu'on utilise, afin de qu on utilise pouvoir :
Reprsenter Li it Limiter

des concepts abstraits (graphiquement par exemple). l ambiguts ( l un l les bi t (parler langage commun). ) Faciliter l'analyse (simplifier la comparaison et l'valuation de solutions).

Une dmarche d'analyse et de conception objet, pour :


Ne

Oui, MAIS Oui MAIS...

L'approche objet est moins intuitive que l'approche fonctionnelle !


pas effectuer une analyse fonctionnelle et se contenter d'une implmentation objet, mais penser objet ds le dpart. Dfinir les vues qui permettent de couvrir tous les aspects d'un systme, avec des concepts objets.

Quels moyens utiliser pour faciliter l'analyse objet ? Quels critres identifient une conception objet pertinente ? Comment comparer deux solutions de dcoupe objet d'un systme ? d un Le vocabulaire est prcis (risques d'ambiguts et comprhensions). Comment dcrire la structure objet d'un systme de manire pertinente ? d un
COO 2007/2008 17

L'application des concepts objets ncessite une grande rigueur !


Bref : il nous faut un outil qui apporte une dimension mthodologique l'approche objet, afin de mieux gq pp j , matriser sa richesse et sa complexit.

Bouhlel Mohamed Salah

Bouhlel Mohamed Salah

COO 2007/2008

18

Mthodes ?

Les premires mthodes d'analyse (annes 70)

Dcoupe cartsienne (fonctionnelle et hirarchique) d'un systme. d un systme

L'approche systmique (annes 80)

Modlisation des donnes + modlisation des traitements (Merise, Axial, ...). ( , , )

L'mergence des mthodes objet (1990-1995) (1990

Plus de 50 mthodes objet sont apparues durant cette priode (Booch, Classe-Relation, Fusion, HOOD, ClasseOMT, OOA, OOD, OOM, OOSE...) ! OMT OOA OOD OOM OOSE ) Aucun mthode ne s'est rellement impose.

Les premiers consensus (1995)

Unified Modeling language

OMT (James Rumbaugh) : vues statiques, dynamiques et fonctionnelles d'un systme

Notation graphique riche et lisible.

OOD (Grady Booch) : vues logiques et physiques du systme

Introduit l I t d it le concept de package (lment d' td k (l t d'organisation d modles). i ti des dl )

OOSE (Ivar Jacobson) : couvre tout le cycle de dveloppement

La mthodologie repose sur l'analyse des besoins des utilisateurs.

L'unification et la normalisation des mthodes (1995-1997) L' nification (1995

UML (Unified Modeling Langage), la fusion et synthse des mthodes dominantes. Langage),

Bouhlel Mohamed Salah

COO 2007/2008

19

Bouhlel Mohamed Salah

COO 2007/2008

20

UML ?

UML cest quoi ?

UML nest pas une mthode cest--dire une description normative des tapes de la modlisation. Pourquoi?

UML

n'est

pas

une

mthode

ou

un

processus

Si l'on parle de mthode objet pour UML, c'est par abus de langage ! Une mthode propose aussi un processus, qui rgit notamment l'enchanement des activits de production d'une entreprise. entreprise. UML a t pens pour permettre de modliser les activits de l'entreprise, pas pour les rgir. rgir. Un processus de dveloppement logiciel universel est une utopie : Impossible de prendre en compte toutes les organisations et p p p g cultures d'entreprises. d'entreprises. Un processus est adapt (donc trs li) au domaine d'activit de l'entreprise. p l'entreprise. Mme si un processus constitue un cadre gnral, il faut l'adapter de manire prcise au contexte de l'entreprise. l'entreprise.

Diversit des cas particuliers

Cest quoi alors UML ?

un l langage graphique qui permet d reprsenter et d communiquer hi i t de t t de i les divers aspects dun systme dinformation. Les graphiques sont associs des textes qui expliquent leur contenu.

un mtalangage car il fournit les lments permettant de construire le modle qui, lui, sera l langage du projet. le l d j t
Bouhlel Mohamed Salah COO 2007/2008 21

Bouhlel Mohamed Salah

COO 2007/2008

22

UML cest quoi ?


UML est un langage pseudo-formel g g pseudop

A quoi sert UML ?

UML cadre l'analyse objet, en offrant :

UML est fond sur un mtamodle, qui dfinit :


diffrentes vues (perspectives) complmentaires d'un systme, qui guident l'utilisation des concept objets, plusieurs niveaux d'abstraction, qui permettent de mieux contrler la complexit dans l'expression des solutions objets. objets.

les lments de modlisation (les concepts manipuls par le langage), la smantique de ces lments (leur dfinition et le sens de leur utilisation). utilisation).

UML est un support de communication


Un mta-modle est une description trs formelle de tous les concepts mtad'un langage. Il limite les ambiguts et encourage la construction d'outils. langage. d'outils. UML propose aussi une notation, qui permet de reprsenter g p q graphiquement les lments de modlisation du mta-modle. mta-modle. Cette notation graphique est le support du langage UML. UML.

Sa notation graphique permet d'exprimer visuellement une solution objet. objet. L'aspect formel de sa notation limite les ambiguts et les incomprhensions. incomprhensions. Son aspect visuel facilite la comparaison et l'valuation de solutions. p p solutions. Son indpendance (par rapport aux langages d'implmentation, domaine d'application, processus...) en font un langage universel. processus...) universel.

Bouhlel Mohamed Salah

COO 2007/2008

23

Bouhlel Mohamed Salah

COO 2007/2008

24

Les diagrammes UML


Statique
Classes (class diagram) Objets (Object diagram) Composants (Component diagram) Dploiement (Deployment diagram)

Les points forts d'UML

UML est un langage formel et normalis


gain de prcision gage d stabilit de t bilit encourage l'utilisation d'outils

Fonctionnel
cas dutilisation (Use Case diagram)

Dynamique
Etats-Transitions (St t M hi di Et t T iti (State Machine diagram) ) Activit (Activity diagram) Squence (Sequence diagram) Collaboration (Collaboration diagram)

UML est un support de communication performant


Il cadre l'analyse. Il facilite la comprhension de reprsentations abstraites complexes. Son caractre polyvalent et sa souplesse en font un langage universel.

Paquetage (P k P t (Package di diagram) ) Structures composites (Composite structure diagram) Global dinteraction (Interaction overview diagram) Temps (Timing diagram)
Bouhlel Mohamed Salah COO 2007/2008 25 Bouhlel Mohamed Salah COO 2007/2008 26

Les points faibles d'UML

Comment modliser avec UML ?


UML est un langage qui permet de reprsenter des g g q p p modles, mais il ne dfinit pas le processus d'laboration des modles !

La mise en pratique d'UML ncessite un apprentissage et passe par une priode d'adaptation. d adaptation d'adaptation. adaptation. La ncessit de s'accorder sur des modes d'expression communs est vitale en informatique. UML n 'est pas l'origine des concepts objets mais informatique. est l origine objets, en constitue une tape majeure, car il unifie les diffrentes approches et en donne une dfinition plus formelle. formelle.

Le processus (non couvert par UML) est une autre cl de la russite d'un projet. projet. Or, l'intgration d'UML dans un processus n'est pas triviale et amliorer un processus est une tche complexe et longue. longue. Les auteurs d'UML sont tout fait conscients de l'importance du processus, mais l'acceptabilit industrielle de la modlisation objet passe d'abord d' b d par l disponibilit d' la di ibilit d'un l langage d' d'analyse objet performant et l bj t f t t standard. standard.

Cependant, dans le cadre de la modlisation d'une application informatique, les auteurs d'UML prconisent d'utiliser une d d' tili dmarche : h

itrative t incrmentale, it ti et i t l guide par les besoins des utilisateurs du systme, centre sur l'architecture logicielle. l architecture logicielle.

D'aprs les auteurs d'UML un processus de D aprs d UML, dveloppement qui possde ces qualits devrait favoriser la russite d'un projet.
COO 2007/2008 28

Bouhlel Mohamed Salah

COO 2007/2008

27

Bouhlel Mohamed Salah

Une dmarche itrative et incrmentale ?

Une dmarche pilote par les besoins des utilisateurs ?

L ide L'ide est simple : pour modliser (comprendre et reprsenter) un systme complexe, il vaut mieux s'y prendre en plusieurs fois, en affinant son analyse par tapes. Cette dmarche devrait aussi s'appliquer au cycle de dveloppement dans son ensemble en favorisant le ensemble, prototypage.

Avec UML, ce sont les utilisateurs qui guident la dfinition des , q g modles :

Le primtre du systme modliser est dfini par les besoins des utilisateurs (les utilisateurs dfinissent ce que doit tre le systme). Le but du systme modliser est de rpondre aux besoins de ses utilisateurs (les utilisateurs sont les clients du systme) systme).

Le but est de mieux matriser la part d'inconnu et d'incertitudes qui caractrisent les systmes complexes.

Les besoins des utilisateurs servent aussi de fil rouge, tout au long du cycle de dveloppement (itratif et incrmental) :

A chaque itration de la p q phase d'analyse, on clarifie, affine et valide les y , , besoins des utilisateurs. A chaque itration de la phase de conception et de ralisation, on veille la prise en compte des besoins des utilisateurs. A chaque itration de la phase de test, on vrifie que les besoins des utilisateurs sont satisfaits.

Bouhlel Mohamed Salah

COO 2007/2008

29

Bouhlel Mohamed Salah

COO 2007/2008

30

Une dmarche centre sur l'architecture ?

Rsumons la dmarche...
Modliser une application ? Mais M i comme UML n'est pas un processus.. ' t Quelle dmarche utiliser ?
Trouver un "bon" modle est une tche difficile mais capitale !

Une architecture adapte est la cl du succs d'un dveloppement. Elle dcrit des h i t t i Ell d it d choix stratgiques qui dt i dterminent en grande partie l i t d ti les qualits du logiciel (adaptabilit, performances, fiabilit...).

Ph. Kruchten propose diffrentes perspectives, indpendantes et complmentaires, qui permettent de dfinir un modle d'architecture (publication IEEE, 1995). Cette vue ("4+1") a fortement inspir UML :

Optez pour une approche itrative et incrmentale. incrmentale. Centrez votre dmarche sur l'analyse des besoins des utilisateurs. utilisateurs. Prenez grand soin la dfinition de l'architecture de votre application (l'approche "4+1" permet de mieux l cerner). l' h td i la )

OK OK , mais en pratique ?

Bouhlel Mohamed Salah COO 2007/2008 31

2TUP (2 Truck Unified Process) RUP (Rationel Unified Process)

COO 2007/2008 32

Bouhlel Mohamed Salah

Prsentation du processus 2 TUP

2 Track Unified Process (2TUP)

Contrainte Fonctionnel

Systme Informatique

Contrainte Technique

Laxiome fondateur du modle 2TUP consiste constater que toute volution impos au systme peut ce dcomposer suivant un axe fonctionnel et un axe technique.
Bouhlel Mohamed Salah COO 2007/2008 34

Prsentation du processus 2 TUP

Prsentation du processus 2 TUP


Branche fonctionnelle Capture des besoins fonctionnel Branche technique Capture des besoins Technique

Exemple : p

Une agence de tourisme passe des accord avec une compagnie arienne de sorte que le calcul des commission change (en loccurrence les rsultats issus de la branche fonctionnelle rvolue pour prendre en compte la no elle spcification. nouvelle spcification Cette C tt mme entreprise dcide d t i d id douvrir ces portes sur l i t le web en permettant aux navigateurs de rserver et de payer leurs billets billets.

Analyse

Conception gnrale

Conception Prliminaire Conception Dtaill Codage et test

Cot fonctionnelle rien ne change mais cot C t f ti ll i h i t technique on a une volution du systme.
COO 2007/2008 35 Bouhlel Mohamed Salah

Recette

Bouhlel Mohamed Salah

COO 2007/2008

36

Prsentation du processus 2 TUP


Capture des besoins fonctionnels qui se focalise sur le mtier de lutilisateur Consiste tudier p prcisment la spcification p fonctionnelle de manire a obtenir une ide de ce que ralise le systme sans ce souci des technologies utiliser. utiliser.
COO 2007/2008 37

Prsentation du processus 2 TUP


Voit toutes les contraintes et les choix dimensionnant la conception d ti du systme t (outils+matriel+contrainte dintgration avec lexistant)

Capture des besoins fonctionnel

Capture des besoins Technique

Analyse

Conception gnrale

Dfinit les composants ncessaire a la construction de larchitecture technique. technique.


Bouhlel Mohamed Salah 38

Bouhlel Mohamed Salah

COO 2007/2008

Prsentation du processus 2 TUP

Chapitre 1

Intgration des 2 branches.


Conception Prliminaire Conception Dtaill Codage et test Recette R tt

tude de la ralisation de chaque composant Codage des composants + test Validation et vente du produit

Analyse des Besoins et A l d B i t diagramme de cas di d dutilisation

Bouhlel Mohamed Salah

COO 2007/2008

39

Analyse des besoins et Diagramme de cas dutilisation : Sommaire


tude p tude prliminaire a e Diagramme de contexte dynamique/statique lments du diagramme de cas dutilisation d utilisation

Acteur Cas dutilisation Reprsentation du diagramme de cas dutilisation Relation entre cas dutilisation Relation entre acteur Relation entre cas dutilisation et acteur

Etude li i i Et d prliminaire

Relations dans le diagramme de cas dutilisation


Notion gnrale Modlisation d b M dli i des besoins avec UML i Description textuelle
Bouhlel Mohamed Salah COO 2007/2008 41

Phase 1 : tude prliminaire


tude prliminaire

Phase 1 : tude prliminaire

lments mis en jeu :


Capture des besoins fonctionnel Capture des besoins Technique

Les Acteurs Les messages g Digramme de contexte St ti Di d t t Statique Digramme de contexte Dynamique
COO 2007/2008 44

Cette tape survient juste aprs une dcision de dmarrage du projet. projet Reprage des besoins fonctionnels et oprationnels avec des diagrammes simples et une description textuelle.

Bouhlel Mohamed Salah

COO 2007/2008

43

Bouhlel Mohamed Salah

Phase 1 : tude prliminaire

Phase 1 : tude prliminaire

Dfinition dun Acteur :

Dfinition dun message : g


Il reprsente la spcification dune communication entre d une objet qui transporte de linformation avec lintention de dclencher une activit chez le rcepteur.

Un acteur reprsente labstraction dun rle jou par des entits externes (utilisateur, dispositif matriel ou autre systme) qui interagissent directement avec le systme tudi. tudi Acteur : entit e terne q i agit s r le s stme Acte r externe qui sur systme.

L'acteur peut consulter ou modifier l'tat du systme. En E rponse l' ti d' acteur, l systme f l'action d'un t le t fournit un service qui it i i correspond son besoin. Les acteurs peuvent tre classs. classs << Actor >>
Nom der lacteur Nom acteur
45

La rception dun message est normalement considr d un comme un vnement.

Attention : on parle de communication entre acteurs systme ou systme - acteurs et non entre acteur et t t t t t t t acteur.

Bouhlel Mohamed Salah COO 2007/2008 46

Bouhlel Mohamed Salah

COO 2007/2008

Phase 1 : tude prliminaire

Phase 1 : tude prliminaire

Exemples de message :
1.

Dfinition dun diagramme de contexte : g


Diagramme de contexte Dynamique : C est une Cest reprsentation du systme comme un objet central suivit des acteurs et des messages changs.

Le client :

Entrer le code. Demande de consultation de solde. Demande de retrait.

2.

Le Systme :

Demande d code secret. D d du d t Opration rejet. Opration accepter. accepter

Diagramme de contexte Statique : spcifie le nombre dinstances dacteurs relier au systme un moment donn. donn

Bouhlel Mohamed Salah

COO 2007/2008

47

Bouhlel Mohamed Salah

COO 2007/2008

48

Phase 1 : tude prliminaire

Phase 1 : tude prliminaire

Exemple DAB :
Demande de solde, Retrait, entrer code, validation.

Exemple DAB :

Panne, manque argent. argent

0..* Admin Client

1..1 Admin

Client
Demande de code, choisir opration, Validation demande.

Systme (DAB)

Recharge systme, maintenance et rparation.

Systme (DAB)

Digramme de contexte dynamique


Bouhlel Mohamed Salah COO 2007/2008 49

Diagramme de contexte Statique


Bouhlel Mohamed Salah COO 2007/2008 50

Phase 2 : Capture des besoins fonctionnels


tude prliminaire Branche fonctionnelle Branche technique Capture des besoins Technique

Capture des besoins p fonctionnels

Cas dutilisation

Capture des besoins fonctionnel

Spcification fonctionnelle

Analyse

Bouhlel Mohamed Salah

COO 2007/2008

52

Phase 2 : Capture des besoins fonctionnels


lment mis en jeu :

Identification des Cas dutilisation. dutilisation. Relation entre cas dutilisation-acteur ,cas dutilisation-cas dutilisation et dutilisationdutilisationacteuracteur-acteur

Inclusion extension gnralisation

Diagramme de cas g dutilisation

Diagramme de cas dutilisation. dutilisation. Fiche de description textuelle dun cas dutilisation. d un d utilisation utilisation. Scnario, enchanement, diagramme dactivits. dactivits. Package des cas dutilisation. dutilisation.

Bouhlel Mohamed Salah

COO 2007/2008

53

Dfinition dun Cas dutilisation


1. 1

A ne pas confondre

Cest un ensemble de squence dactions ralises par le C est d actions systme et produisant un rsultat observable et p p particulier. intressant pour un acteur particulier. Il identifie une fonction cl du systme. Sans cette systme. fonction, l systme ne satisfait pas l b f ti le t ti f it le besoins d i des utilisateurs/acteur. utilisateurs/acteur. Chaque cas dutilisation reprsente une fonction que le systme doit tre capable daccomplir. daccomplir. Cest une unit cohrente reprsentant une fonctionnalit visible de lextrieur. Il ralise un service de bout en bout, lextrieur. avec un dclenchement un droulement et une fin pour dclenchement, fin, lacteur qui linitie. linitie.

Ce que le systme doit faire (comportement souhait) Mais pas comment raliser ce comportement

2.

Pas de dtails de programmation, mise en oeuvre, etc. etc. Indpendant de la ralisation

3.

Un outil pour communiquer

utilisateur final / expert du domaine <---> concepteur / ---> dveloppeur


COO 2007/2008 56

Bouhlel Mohamed Salah

COO 2007/2008

55

Bouhlel Mohamed Salah

Les cas dutilisation comme outil de communication

Reprsentation des Cas dutilisation

Un cas dutilisation se reprsente par une ellipse contenant le nom du cas, et optionnellement, audessus du nom, un strotype. La frontire du systme est reprsente par un cadre. Le nom du systme figure lintrieur du cadre, en y g haut. Les acteurs sont lextrieur et les cas dutilisation l intrieur. lintrieur
Bouhlel Mohamed Salah COO 2007/2008 58

Utilisateur

Exprime

Comprend Analyste

Cas d'utilisation Ralise Conoit

Vrifie

Programmeur Architecte Testeur

Les cas dutilisation servent de Fil conducteur du projet p j


Bouhlel Mohamed Salah COO 2007/2008 57

Exemple : distributeur automatique de billets


Etapes suivre : p

Solution de lexemple
Frontire du systme Nom du systme DAB

Comprendre le problme. C Identifier les acteurs. Identifier les cas dutilisations d utilisations Dresser un premier diagramme de cas dutilisation
Acteur
Bouhlel Mohamed Salah COO 2007/2008 59 Bouhlel Mohamed Salah

Maintenir le distributeur
Client

Admin

Retrait consultation lt ti du solde


Cas dutilisation Association
COO 2007/2008 60

Relation entre cas dutilisation - acteur

Relations dans le diagramme de cas g dutilisation

La relation entre cas dutilisation et acteur est une relation dassociation. dassociation. Cest le chemin de communication entre un acteur et un cas dutilisation et d utilisation est reprsent par un trait continu Un acteur est qualifi de principal pour un cas dutilisation l d tili ti lorsque ce cas rend service cet acteur. d i t acteur. t Un acteur principal obtient un rsultat observable du systme. systme. Tandis quun acteur secondaire est sollicit pour des informations complmentaires. complmentaires.
Bouhlel Mohamed Salah COO 2007/2008 62

Exemple de Relation Acteur - cas dutilisation

Relation entre cas dutilisation-cas dutilisation dutilisation-

Logiciel de partage de fichier

Inclusion : formaliser par le strotype i l d . include Extension : formaliser par le strotype extend . Gnralisation/spcialisation. Gnralisation/spcialisation.

Tlcharger fichier
Internaute

secondary Ordinateur O di t connect

Bouhlel Mohamed Salah

COO 2007/2008

63

Bouhlel Mohamed Salah

COO 2007/2008

64

La relation dinclusion

Exemple dinclusion : DAB

Parfois un cas dutilisation peut avoir besoin de laide dun autre cas cest linclusion. d un c est l inclusion inclusion. Permet didentifier un sous ensemble commun P t did tifi bl plusieurs cas i l d include
C1 C2

Ex : le cas dutilisation retrait peut ne pas modifier le compte bancaire (solde) mais dlgu cette opration a un autre cas dutilisation mise jour compte. compte.

Retrait
Client

include

Mise jour p compte

C1 utilise C2 toute activation de C1 entrane une activation de C2

Bouhlel Mohamed Salah

COO 2007/2008

65

Bouhlel Mohamed Salah

COO 2007/2008

66

La relation dextension

Exemple dextension : DAB

Parfois un cas dutilisation pourrait avoir besoin dun autre cas dutilisation. dutilisation. Permet didentifier les exceptionnels (erreurs,). (erreurs, comportements alternatifs ou

Lors de lopration de retrait, le client peut imprimer un ticket de la transaction ou ignor cette option. option.

C2 tend C1 C2 est une faon particulire de raliser C1.

extends

Retrait

Impression ticket

C2 nest pas activable directement. directement.


<<extend>> C1 C2
COO 2007/2008 67

Client

Bouhlel Mohamed Salah

Bouhlel Mohamed Salah

COO 2007/2008

68

La relation de gnralisation

Exemple de gnralisation : DAB

Lhritage est un concept fondamentale en programmation, en analyse et en conception Orient O O Objet. Objet. Cette ide appliqu aux acteurs et aux cas dutilisation et appele gnralisation et est souvent surnomme relation est un . t l ti t Cette relation de gnralisation/spcialisation est prsente dans la plupart des diagrammes UML et se t d it par le concept dhritage d traduit l t dh it dans l les langages orients objet.
Bouhlel Mohamed Salah COO 2007/2008 69

Notre distributeur tant de dernire gnration il permet le retrait selon deux types. Le retrait en types. devise et le retrait en monnaie locale. locale.

Retrait
Client

Retrait devise

Retrait Monnaie locale

Bouhlel Mohamed Salah

COO 2007/2008

70

Relation entre cas Acteur Acteur

Exemple de gnralisation entre Acteur

La seule relation possible entre deux acteurs est p la gnralisation :

un acteur A est une gnralisation dun acteur B si d un lacteur A peut tre substitu par lacteur B. Dans ce cas, cas tous les cas dutilisation accessibles A le sont d utilisation aussi B, mais linverse nest pas vrai. vrai.

Passer une commande


Prposer au commande

Suivre commande

Le symbole utilis pour la gnralisation entre acteurs est une flche avec un trait plein dont la p pointe est un triangle ferm dsignant lacteur le g g plus gnral
COO 2007/2008 71

Grer le stock
Directeur ec eu des ventes

Bouhlel Mohamed Salah

Bouhlel Mohamed Salah

COO 2007/2008

72

Construction du diagramme des cas dutilisation


1. 1 2. 3. 3 4.

Diagramme finale de lexemple : DAB

Dfinir le contexte du systme systme. Identifier les acteurs. Identifier les messages messages. Dresser le diagramme de contexte dynamique. Identifications des cas dutilisation. Dfinition des associations entre acteur et cas dutilisation. f Amlioration (valuations des acteurs et des cas dutilisations). Voir les dpendances (include, extend, gnralisation). (include, extend, gnralisation). Reprsenter le diagramme final.

5. 6. 7. 8.

9.

Bouhlel Mohamed Salah

COO 2007/2008

73

Bouhlel Mohamed Salah

COO 2007/2008

74

Exemple 2 : dresser le diagramme de cas dutilisation d utilisation


1. 1

Exemple 2

Dfinir le contexte du systme systme.


Rception: Rception: les employs de la rception reoivent les livraisons et vrifient que la marchandise livres correspond au bon de commande. q p Il informe la comptabilit fournisseur de la rception. Stockage: les Stockage: l produits reut peuvent provenir d commande annul, St k d it t t i de d l retour ou commande fournisseur. Les employ du stock mette jour le stock en entrant la quantit reut. q Traitement commandes: dautre employ prpare la commande a commandes: trait t i f t it et informe le service de commande que cette dernire a t trait. l i d d tt d i t it Expdition: Expdition: les employ du service expdition les emballe et les prparent pour lexpdition, mettent ajour le stock, contacte le transporteur et notifie la livraison aux service commande.

2. Identifier les acteurs.


Acteur Syst service commande Acteur Syst comptabilit fournisseur

Rception

Expdition

Traitement commande d

stockage

Bouhlel Mohamed Salah

COO 2007/2008

75

Bouhlel Mohamed Salah

COO 2007/2008

76

Exemple 2
5. Identifier les cas dutilisation.

Exemple 2
5. Identifier les cas dutilisation.

Que doit produire le systme pour chaque acteurs. Comment chaque acteur doit il aider le systme. Quel sont les taches pour les q p quelles le systme aide les acteurs. (identifie les rgles)
COO 2007/2008 77

Recevoir Produit

Expdier Commande

Trouver Produit Prparer Commande

Stocker Produit

Bouhlel Mohamed Salah

Bouhlel Mohamed Salah

COO 2007/2008

78

Exemple 2
6. Dfinition des associations entre acteur et cas dutilisation. d tili ti
Recevoir R i Produit Rception Expdier Commande Traiter Commande Stocker Produit stockage Trouver Produit Traitement commande
79

Exemple 2
7. Amlioration (valuations des acteurs et des cas d tili ti dutilisations). )

Acteur c eu Syst comptabilit fournisseur Acteur Syst S t service i commande

Rception

stockage

Rception

Expdition

Bouhlel Mohamed Salah

COO 2007/2008

Bouhlel Mohamed Salah

COO 2007/2008

80

Exemple 2
8. Voir les dpendances (include).
Expdier commande Include Mettre a jour Stock

Exemple 2
8. Voir les dpendances (extend).

Recevoir Produit Include Traiter Commande Include Stocker Produit

Extend Mettre a jour j Stock

Bouhlel Mohamed Salah

COO 2007/2008

81

Bouhlel Mohamed Salah

COO 2007/2008

82

Exemple 2
8. Voir les dpendances (gnralisation).

Stocker Produit

La description textuelle p
Stocker Nouveau Produit Stock produit retourn Stock Produit Annulation Commande

Bouhlel Mohamed Salah

COO 2007/2008

83

Insuffisance des cas dutilisations


Diagramme g

Exemple de description(1)
Partie 1 : sommaire didentification
Sommaire didentification

de cas dutilisation lui seul est

insuffisant. insuffisant.
Il

faut :
1.

tablir la t t bli l traabilit entre l cahier d charges bilit t le hi des h et le modle des cas dutilisations. dutilisations. Expliciter le comportement du systme pour chacun des cas dutilisations par :
Une

Titre : Utiliser une tournure linfinitif But : Une description rsume p p permettant de comprendre lintention p
principale du cas dutilisation. Acteurs principale : Ceux qui vont raliser le cas dutilisation p p q Acteurs secondaire : Ceux qui ne font que recevoir des informations lissue de la ralisation du cas dutilisation Date de cration : date de cration du Cas Utilisation Date de mise jour : date de mise jour du Cas Utilisation j j Version : le numro de version Responsable : le nom du responsable p p
Bouhlel Mohamed Salah COO 2007/2008 86

2.

description textuelle

Bouhlel Mohamed Salah

COO 2007/2008

85

Exemple de description (2)

Exemple de description (3)

Partie 2 : description des enchanements

Partie 2 : description des enchanements


Description des enchanements D i ti d h t

contient la description du fonctionnement du cas sous la forme dune squence de messages changs entre les acteurs et le systme. systme Elle contient toujours une squence nominale qui dcrit de droulement normal du cas. cas la squence nominale sajoutent frquemment des q q p squences alternatives et des squences dexceptions
Bouhlel Mohamed Salah COO 2007/2008 87

Prconditions : Ce qui doit tre vrifi avant que le Cas dutilisation ne


commence. commence.

Des scnarii : Description pas a pas de la conversation entre le cas


dutilisation et lutilisateur. On trouve Le scnario nominal, les scnarii lutilisateur. alternatifs qui sont l l if i les variantes d scnario nominal et l i du i i l les scnarii ii dexception qui dcrivent les cas derreurs. derreurs.

Exceptions : les traitements alternatifs ou dexception

Postconditions : ce qui est vrai aprs que le Cas dutilisation se soit


droul. droul d l.
Bouhlel Mohamed Salah COO 2007/2008 88

Exemple de description (4)

Exemple de description (5)

Partie 3 : spcifications non fonctionnelles


une rubrique optionnelle. optionnelle. Ell contient gnralement d spcifications non Elle ti t l t des ifi ti fonctionnelles (spcifications techniques, . . .). Elle peut ventuellement contenir une description p p des besoins en termes dinterface graphique. graphique.

Partie 3 : spcifications non fonctionnelles


Spcifications non fonctionnelles

Besoin dIHM : Expression de contraintes lies linterface Contrainte non fonctionnelle : Frquences Volumtries V l t i QoS: Disponibilit, fiabilit, Performances Concurrence

Bouhlel Mohamed Salah

COO 2007/2008

89

Bouhlel Mohamed Salah

COO 2007/2008

90

Conseils ! ! !

Description des cas dutilisation exemple 1/4


Sommaire didentification

Un cas dutilisation doit avoir un dbut et une fin clairement d utilisation identifi. identifi. Il faut galement prciser les variantes possibles (cas alternatif, exception, erreur,). erreur, Chaque unit de description de squence dactions est appel enchanement. enchanement. Un scnario reprsente une succession denchanement qui d enchanement sexcute du dbut la fin du cas dutilisation. dutilisation. Chaque rsultat possible de lexcution dun cas dutilisation reprsente un scnario. scnario.
Bouhlel Mohamed Salah COO 2007/2008 91

Titre : traiter commande Objectif : cest la principale activit de lentreprise, le personnel autoriser prend les produits commander et met jour l tat de la ltat commande et le stock. Acteurs principale : gestionnaire de commande Date de cration : 01/08/04 Date de mise jour :10/09/04 Version : 1.3 Responsable : HAMDI

Bouhlel Mohamed Salah

COO 2007/2008

92

Description des cas dutilisation exemple 2/4


Description des enchanements p

Description des cas dutilisation exemple 3/4


Description des enchanements

Prconditions : lutilisateur est reconnu et autoris accder


a cette ressource. Fournir un numro de commande valide ressource valide.

Faire

Enchainements :
Le L systme d t demande a l tili t d lutilisateur un numro d de commande. L tili t Lutilisateur f fournis un numro d commande. i de d Le systme recherche la commande. Si l commande nest pas t la d t trouver [E [Exception1]. [Exception1]. ti 1] Sinon le systme fournit la commande a lutilisateur.

Trouver larticle rechercher ( CU Trouver produit ). Affecter la quantit a dlivrer si disponible ff Sinon [Exception2]. [Exception2].

J Jusqu

avoir t i terminer t i tous l articles d l les ti l de la commande. Fin normale de la transaction.

Exceptions : p

[Exception 1] : Commande non trouver sortir. sortir. [Exception 2] : Article non disponible cration dune d une fiche complmentaire (passer a un 2 cas dutilisation).

Bouhlel Mohamed Salah

COO 2007/2008

93

Bouhlel Mohamed Salah

COO 2007/2008

94

Description des cas dutilisation exemple 4/4


Description des enchanements

Description des cas dutilisation


Utilit de la description : La description narrative du cas dutilisation dcrit, avec le vocabulaire des utilisateurs, ce que ceux si attendent du cas. cas.

Postconditions :

Fin Fi normale : l modifications d l commande d i l les difi ti de la d doivent t t tre enregistres. Annulation : si l utilisateur annule la commande nimporte lutilisateur n importe quel moment aucune modifications ne sera enregistres.

Le cas dutilisation est une fonction systme avec un commencement un milieu et une fin En tant que tel il doit tre dcrit de faon :

comprhensible pour que les utilisateurs puissent le comprendre et le vrifier, vrifier, prcise pour que les analystes et les concepteurs puissent sen servir pour construire le programme. s en programme.
COO 2007/2008 96

Bouhlel Mohamed Salah

COO 2007/2008

95

Bouhlel Mohamed Salah

Diagramme dactivit : Sommaire

Chapitre 2 Introduction Activit et Transition Noeud de contrle Partitions

Le diagramme dactivit L di d ti it

Bouhlel Mohamed Salah

COO 2007/2008

98

Introduction

Introduction

Comment reprsenter les diffrents scnarios dun cas dutilisation avec un schma simple et reprsentatif ? p

Les diagrammes dactivits permettent de mettre l accent laccent sur les traitements. Ils permettent ainsi de traitements. reprsenter graphiquement le comportement dune mthode ou le droulement dun cas dutilisation. d un d utilisation dutilisation. utilisation. Les diagrammes dactivits ne sont pas d activits spcifiquement rattachs un classeur particulier : On peut attacher un diagramme dactivits d activits nimporte quel lment de modlisation afin de visualiser, spcifier, construire ou documenter le p comportement de cet lment. lment. Les diagrammes dactivits insistent sur le flot de contrle dune activit lautre. lautre.
Bouhlel Mohamed Salah COO 2007/2008 100

La reprsentation par les g diagrammes dactivit

Bouhlel Mohamed Salah

COO 2007/2008

99

Utilisation

Formalisme (1) : Action (Action)

Dans la phase de conception, les diagrammes dactivits sont particulirement adapts la description des cas dutilisation. dutilisation. Ils viennent illustrer et consolider la description textuelle des cas dutilisation On parle gnralement dans ce cas de modlisation de workflow. workflow. Les diagrammes dactivits permettent de spcifier des d activits traitements a priori squentiels et offrent une vision trs proche de celle des langages de programmation impratifs comme C C++ ou J Java Ai i il peuvent t utiles d Ainsi, ils t tre til dans l la phase de ralisation. ralisation.
?

Une action est le plus petit traitement qui puisse tre exprim en UML. Elle a une incidence sur ltat du systme UML. l tat ou en extrait une information. information. Les actions sont des tapes discrtes partir desquelles se construisent les comportements. La notion daction est comportements. rapprocher de la notion dinstruction lmentaire dun d instruction d un langage de programmation (comme C++ ou Java). Java). Une action peut tre, par exemple :

La modlisation dune opration peut toutefois tre assimil une utilisation dUML comme langage de programmation visuelle, ce qui nest pas sa finalit. t finalit fi lit. Il ne faut donc pas y avoir recours de manire systmatique mais la rserver des oprations dont le comportement est complexe ou sensible. sensible. ibl
COO 2007/2008 101

Une affectation de valeur des attributs. attributs. un accs la valeur dune proprit structurelle (attribut ou terminaison dassociation). dassociation). La cration dun nouvel objet ou lien. d un lien. Un calcul arithmtique simple. simple. Lmission/la rception dun signal. L mission/la d un signal. ...
COO 2007/2008 102

Bouhlel Mohamed Salah

Bouhlel Mohamed Salah

Types daction les plus utiliss

Types daction les plus utiliss

Action

appeler

(call

operation) : correspond

l invocation d une linvocation dune opration sur un objet. objet.

Action accepter appel (accept call) : Il sagit dune variante de laction accept event pour les appels synchrones. l action synchrones. Action rpondre (reply) : Cette action permet de transmettre p ( p y) p un message en rponse la rception dune action de type accept call. call. Action crer (create) : Cette action permet dinstancier un objet. objet. Action dtruire (destroy) : Cette action permet de dtruire un objet. objet. Action lever exception (raise exception) : Cette action permet de lever explicitement une exception. exception.
Bouhlel Mohamed Salah COO 2007/2008 104

Action comportement (call behavior) : cest une c est


variante de laction call operation car elle directement une activit plutt quune opration. opration. invoque

Action envoyer (send) : Cette action cre un message y ( )


et le transmet un objet cible, o elle peut dclencher un comportement. comportement.

Action accepter vnement (accept event) :


L excution Lexcution de cette action bloque lexcution en cours l excution jusqu la rception du type dvnement spcifi. spcifi.

Bouhlel Mohamed Salah

COO 2007/2008

103

Formalisme (2) : Activit (Activity)

Formalisme (3) : Groupe dactivit (Activity group)

Une activit dfinit un comportement dcrit par un squencement organis dunits dont les lments simples sont les actions. actions. Le flot de contrle reste dans lactivit jusqu ce que l t it les traitements soient t t i t termins. termins. i Cest une tape dun processus au cour de laquelle un certain travail est effectu (calcul, recherche, recherche manipulation de donnes). donnes
Bouhlel Mohamed Salah COO 2007/2008 105

Un groupe dactivits est une activit regroupant des noeuds et des arcs. Les noeuds et les arcs arcs. peuvent appartenir plus dun groupe. groupe. Un diagramme dactivits est lui-mme un groupe luid activits dactivits. activits.

Bouhlel Mohamed Salah

COO 2007/2008

106

Formalisme (4) : Noeud dactivit (activity node)

Formalisme (4) : Noeud dactivit (activity node)


Nud action

Un noeud dactivit est un type dlment abstrait yp permettant de reprsenter les tapes le long du flot dune activit. d une activit. Il existe trois familles de noeuds dactivits : les noeuds dexcutions (executable node) d excutions les noeuds objets (object node) les noeuds de contrle (control nodes)

Nud dobjet d objet

Nud initial Nud Objet ud Obje

Nud fi l N d final Nud final de flot un noeud de bifurcation ou dunion d union

Nud dcision ou fusion le noeud reprsentant une action, qui est une varit de noeud excutable

Bouhlel Mohamed Salah

COO 2007/2008

107

Bouhlel Mohamed Salah

COO 2007/2008

108

Formalisme (5) : Transition

Noeud initial / Nud Final

Le passage dune activit vers une autre est matrialis par une transition. transition. Graphiquement les transitions sont reprsentes par des p q p p flches en traits pleins qui connectent les activits entre elles. elles.
Nom de lactivit Nom de lactivit Elles sont dclenches ds que lactivit source est termine et provoquent automatiquement et immdiatement le dbut de la prochaine activit dclencher (lactivit cible). cible).

Nud initial

Un noeud initial est un noeud de contrle partir duquel le flot dbute lorsque lactivit enveloppante est invoque. invoque. Un noeud initial possde un arc sortant et pas darc entrant. entrant.

Nud final

Nud de fin dactivit N d d fi d ti it

Lorsque lun des arcs dun noeud de fin dactivit est activ, lexcution de lactivit enveloppante sachve et tout nud ou flot pp actif au sein de lactivit enveloppante est abandonn. abandonn. Lorsquun fl t d ti atteint un noeud d fi d fl t l fl t en L flot dexcution tt i t d de fin de flot, le flot question est termin, mais cette fin de flot na aucune incidence sur les autres flots actifs de lactivit enveloppante. enveloppante. Les noeuds d fi d flot sont particuliers et utiliser avec L d de fin de fl t t ti li t tili parcimonie

Nud de fin de flot

Contrairement aux activits, les transitions sont franchies de manire atomique, en principe sans dure perceptible. perceptible. Les transitions spcifient lenchanement des traitements et dfinissent le flot de contrle. contrle.
Bouhlel Mohamed Salah COO 2007/2008 109

Bouhlel Mohamed Salah

COO 2007/2008

110

Condition surveille

Nud de dcision

parfois la transition ne doit tre utilis que lorsque certains t i vnements se sont produit. t t produit. d it Une condition surveille peut tre affect une transition pour restreindre sont utilisation. utilisation. Cette condition doit tre vrais pour faire le passage lactivit suivante. l activit suivante.
Manger Chorba [Terminer assiette] [T i i tt ] Plat principale

Un noeud de dcision est un noeud de contrle qui permet de faire un choix entre plusieurs flots sortants. Il possde un arc entrant et p p plusieurs arcs sortants. Les nuds de dcision sont gnralement accompagns de g p g conditions de garde pour conditionner le choix.

Si, Si quand l noeud d d i i est atteint, aucun arc en aval nest d le d de dcision t tt i t l t franchissable , cest que le modle est mal form. Lutilisation dun garde [else] est recommande aprs un noeud de dcision car elle garantit un modle bien form. Dans le cas o plusieurs arcs sont franchissables, seul lun dentre eux est retenu et ce choix est non dterministe.

Bouhlel Mohamed Salah

COO 2007/2008

111

Bouhlel Mohamed Salah

COO 2007/2008

112

Nud de dcision : exemple


Nud de dcision
Vrifier solde Saisir choix

Nud de fusion (Merge node)

Un noeud de fusion est un noeud de contrle qui rassemble plusieurs flots alternatifs entrants en un seul flot sortant. sortant. Il nest pas utilis pour synchroniser des flots concurrents p p y (cest le rle du noeud dunion) mais pour accepter un flot parmi plusieurs. plusieurs.

Garde

Remarque
[Solde Suffisant] S ffi t]

[else]

[Choix [Choix [Choi [Choix [Choix vanille] fraise] pistache] chocolat]


Servir chocolat

Servir vanille

Servir fraise

Servir p pistache

Graphiquement, il est possible de fusionner un noeud de fusion et un noeud de dcision ou un noeud de dcision ou de fusion avec un noeud de fin de flot, ou avec une activit. activit.
-

Donner argent au client

Refuser de donner largent

Cependant, il est prfrable dutiliser un noeud de dcision (losange).


COO 2007/2008 114

Bouhlel Mohamed Salah

COO 2007/2008

113

Bouhlel Mohamed Salah

Nud de bifurcation et dunion


Noeud de bifurcation ou de dbranchement (fork node)

Nud de bifurcation et dunion : exemple


Barre de synchronisation Lancement de 2 transitions simultanes

est un nud de contrle qui spare un flot en plusieurs flots concurrents. concurrents. Un tel noeud possde un arc entrant et plusieurs arcs sortants. sortants. On apparie gnralement un noeud de bifurcation avec un noeud dunion pour quilibrer la concurrence. concurrence.

Desserrer frein main

Appuyer sur pp y embrayage

Enclencher 1re vitesse

Noeud dunion ou de jointure (join node)


est un noeud d contrle qui synchronise d t d de t l i h i des fl t flots multiples. multiples. Un tel noeud possde donc plusieurs arcs entrants et un seul arc sortant. Lorsque tous les arcs entrants sont sortant. activs, larc sortant lest galement. galement.
COO 2007/2008 115 Bouhlel Mohamed Salah

relcher embrayage
COO 2007/2008

Barre de synchronisation y synchronisation de 2 transitions

Bouhlel Mohamed Salah

116

Exemple diagramme Activit

Formalisme (6) : Partition


Souvent appeles couloirs ou lignes deau (swimlane). Ils (swimlane). p permettent dorganiser les noeuds dactivits dans un diagramme g g dactivits en oprant des regroupements. regroupements. Les partitions nont pas de signification bien arrte mais arrte, correspondent souvent des units dorganisation du modle. modle. Graphiquement, les partitions sont dlimites par des lignes continues. continues. Il sagit gnralement de lignes verticales, mais elle peuvent tre horizontales ou mme courbes. courbes. Dans la version 2.0 dUML, les partitions d UML, bidimensionnelles (forme dun tableau). tableau). peuvent tre

Diagramme activit : Prise en compte d une dune commande


Bouhlel Mohamed Salah COO 2007/2008 117

Dans l cas d D le dun di diagramme d ti it partitionn, l dactivits titi les noeuds d dactivits appartiennent forcment une et une seule partition. partition. p Les transitions peuvent, bien entendu, traverser les frontires des partitions. partitions.
Bouhlel Mohamed Salah COO 2007/2008 118

Partition : exemple

Rcapitulatif diagramme activit

UML permet de reprsenter graphiquement le comportement d'une mthode ou le droulement d'un cas d une d un d'utilisation, l'aide des diagrammes d'activits. d'activits. Une activit reprsente une excution d'un mcanisme un mcanisme, droulement d'tapes squentielles. squentielles. Le passage d'une activit vers une autre est matrialis par une transition. transition. Les transitions sont dclenches par la fin d'une activit et p provoquent le dbut immdiat d'une autre (elles sont q ( automatiques). automatiques). En thorie tous les mcanismes dynamiques pourraient thorie, tre dcrits par un diagramme d'activits, mais seuls les ca s es co p e es t essa ts te t d t e mcanismes complexes ou intressants mritent d'tre reprsents. reprsents.
Bouhlel Mohamed Salah COO 2007/2008 120

Bouhlel Mohamed Salah

COO 2007/2008

119

Introduction

Chapitre 3

Le diagramme de classes est considr comme le plus important de la modlisation oriente objet. objet. il est obligatoire lors dune telle modlisation. d une modlisation. Le diagramme de cas dutilisation montre un systme du g y point de vue des acteurs tandis que le diagramme de classes en montre la structure interne. interne. Il permet de fournir une reprsentation abstraite des objets du systme qui vont interagir ensemble pour raliser les cas dutilisation. dutilisation. Il sagit dune vue statique car on ne tient pas compte du facteur temporel dans le comportement du systme. systme. t

Le diagramme de g classe

Bouhlel Mohamed Salah

COO 2007/2008

121

Bouhlel Mohamed Salah

COO 2007/2008

122

Introduction

Le diagramme de classes modlise les concepts du domaine d application dapplication ainsi que les concepts internes crs de toutes pices dans le cadre de limplmentation dune application. application. Chaque langage de Programmation Orient Objets donne un moyen spcifique dimplmenter le paradigme objet (pointeurs ou pas hritage multiple ou pas etc.) mais le pas, pas, etc.), diagramme de classes permet de modliser les classes du systme et leurs relations indpendamment dun langage de y p g g programmation particulier. particulier. Les principaux l L i i lments d cette vue statique sont l de i les classes et leurs relations : association, gnralisation et plusieurs types de dpendances telles que la ralisation et dpendances, lutilisation. lutilisation.

La notion de classe

Bouhlel Mohamed Salah

COO 2007/2008

123

Bouhlel Mohamed Salah

COO 2007/2008

124

Classe et instance de classe

Classe et instance de classe

Une instance est une concrtisation dun concept abstrait. abstrait.


la POLO5 qui se tro e dans votre garage est une instance d POLO5 q i trouve otre ne du concept abstrait Automobile. Automobile. Le restaurant les merveille de la mre est une instance du concept abstrait Restaurant

Une classe est la description formelle dun ensemble dobjets ayant une smantique et des caractristiques communes. communes. Un objet est une instance dune classe. Cest une entit d une classe. C est discrte dote dune identit, dun tat et dun comportement que lon peut invoquer. invoquer. Les objets sont des lments individuels dun systme en cours dexcution. d excution excution. Par exemple si lon considre que Homme (au sens tre exemple, l on humain) est un concept abstrait, on peut dire que la personne Mounir est une instance de Homme. Si Homme Homme. tait t it une classe, M l Mounir en serait une i t i it instance d donc un objet. objet.

Une classe est un concept abstrait reprsentant des lments varis comme :

des lments concrets ( : d avions), d l t t (ex des i ) des lments abstraits ( ex : des commandes de marchandises ou services), ), des composants dune application (ex : les boutons des botes de dialogue), des t t d structures i f informatiques ( : d t bl d h h ti (ex des tables de hachage), ) des lments comportementaux (ex : taches) etc. etc.

Bouhlel Mohamed Salah

2007/2008 2007/ COO 2007/2008

125

Bouhlel Mohamed Salah

2007/ COO 2007/2008 2007/2008

126

Caractristiques dune classe

Reprsentation dune classe

Une classe dfinit un jeu dobjets dots de caractristiques communes. communes. Les caractristiques dun objet permettent de d un spcifier son tat et son comportement. comportement.

Une classe est modlise par 3 compartiments

tat dun objet : Ce sont les attributs ou tout simplement proprits, qui dcrivent ltat dun objet. objet.

Les attributs sont utiliss pour des valeurs de donnes pures, dpourvues didentit, telles que les nombres et les chanes de caractres. caractres. Les proprits dcrites par les attributs prennent des valeurs lorsque la p p p p q classe est instancie. instancie.

Nom de la classe

Liste des attributs

Comportement dun objet : Les oprations dcrivent les lments d un individuels dun comportement que lon peut invoquer. Ce sont des invoquer. fonctions qui peuvent prendre des valeurs en entre et modifier les attributs ou produire des rsultats. rsultats.

Liste des mthodes

Une opration est la spcification (i.e. dclaration) dune mthode. (i. mthode. Limplmentation (i.e. dfinition) dune mthode est galement appele (i. mthode. mthode.
2007/2008 2007/ COO 2007/2008 127 Bouhlel Mohamed Salah 2007/ COO 2007/2008 2007/2008 128

Bouhlel Mohamed Salah

Nom dune classe

Les attributs de la classe

Le nom de la classe doit voquer le concept dcrit par la classe. classe. Il commence par une majuscule. On peut ajouter des majuscule. informations subsidiaires comme le nom de lauteur de la l auteur modlisation, la date, etc. etc. Pour indiquer quune classe est abstraite, il faut ajouter le motmot-clef abstract. abstract. La syntaxe de base de la dclaration dun nom dune classe est l suivante : t la i t

Les attributs dfinissent des informations quune classe ou j connatre. p un objet doivent connatre. Ils reprsentent les donnes encapsules dans les objets de cette classe. classe. Chacune de ces informations est dfinie par un nom, un type de donnes, une visibilit et peut tre initialis. initialis. Le nom de lattribut doit tre unique dans la classe. La q classe. syntaxe de la dclaration dun attribut est la suivante :

[<Nom_du_paquetage_1>:: ... :: <Nom du paquetage N> ] [<Nom du paquetage 1>:: <Nom_du_paquetage_N> <Nom_de_la_classe> <Nom de la classe> [ { [abstract] [<auteur>] ... } ] [abstract], [<auteur>],
Bouhlel Mohamed Salah COO 2007/2008 129

<visibilit> [ / ] <nom_attribut> : <type> [ '['<multiplicit>']' [{<contrainte>}] ] [ = <valeur_par_dfaut> ]

Bouhlel Mohamed Salah

COO 2007/2008

130

Les attributs de la classe

Les attributs de la classe : exemple


<visibilit> [ / ] <nom_attribut> : <type> [ '['<multiplicit>']' [{<contrainte>}] ] [ = <valeur par dfaut> ] <valeur_par_dfaut>

Le type de lattribut (<type>) peut tre un nom de classe, un nom dinterface ou un type de donn p prdfini. prdfini. La L multiplicit ( lti li it (<multiplicit>) d attribut prcise l lti li it ) dun tt ib t i le nombre de valeurs que lattribut peut contenir. contenir. Lorsqu une Lorsquune multiplicit suprieure 1 est prcise il prcise, est possible dajouter une contrainte ({<contrainte>}) pour prciser si l i i les valeurs sont ordonnes l t d ({ordered}) ou pas ({list}). ({list}).
Bouhlel Mohamed Salah COO 2007/2008 131

+ count : int = 0 { 40} t i t {<40} - nom : String - prenom : String = vide + adresse : Adresse =null

Bouhlel Mohamed Salah

COO 2007/2008

132

Les attributs de classe

Les attributs de classe : exemple

Par dfaut, chaque instance dune classe possde sa propre copie des attributs de la classe. Les valeurs des attributs peuvent donc diffrer dun objet un autre. Cependant, il est parfois ncessaire d dfi i un t C d t t f i i de dfinir attribut de classe qui garde une valeur unique et partage p par toutes les instances de la classe. Les instances ont accs cet attribut mais nen possdent p pas une copie Un attribut de classe nest donc pas une proprit dune instance mais une proprit de la classe et laccs cet attribut ne ncessite pas lexistence dune l accs l existence d une instance. static en Java ou en C++) ) Graphiquement, un attribut de classe est soulign. p q g
Bouhlel Mohamed Salah COO 2007/2008 133

Ayant une classe appel voiture dans votre y pp diagramme de classe. On voudrais connatre classe. le nombre dinstance de voiture crer. d instance crer. Que faire?? + nbVoiture : int = 0

Bouhlel Mohamed Salah

COO 2007/2008

134

Les mthodes de la classe

Les mthodes de la classe

Dans une classe, une opration (mme nom et mme types p ) unique. q de paramtres) doit tre unique. Quand le nom dune opration apparat plusieurs fois avec d une des paramtres diffrents, on dit que lopration est surcharge. surcharge. En revanche, il est impossible que deux oprations ne se distinguent que par leur valeur retourne. retourne. La dclaration dune opration contient les types des paramtres et le type de la valeur de retour, sa syntaxe est la suivante : i t

La syntaxe de dfinition dun paramtre (<paramtre>) est la suivante :

[<direction>] <nom_paramtre>:<type> ['['<multiplicit>']'] [=<valeur_par_dfaut>] [ < l df t>]

La direction peut prendre lune des valeurs suivante : l une in : Paramtre dentre pass par valeur. Les modifications du valeur.
p paramtre ne sont pas disponibles pour lappelant. Cest le p p p lappelant. pp comportement par dfaut. dfaut.

out : Paramtre de sortie uniquement. Il n a pas de valeur dentre uniquement. ny niq ement ale r
et la valeur finale est disponible pour lappelant. lappelant.

<visibilit> <nom_mthode> ([<paramtre_1>, ... , <paramtre_N>]) : [<type_renvoy>] [{<proprits>}]


Bouhlel Mohamed Salah COO 2007/2008 135

inout : Paramtre dentre/sortie. La valeur finale est disponible pour dentre/sortie. lappelant. lappelant.
COO 2007/2008 136

Bouhlel Mohamed Salah

Les mthodes de classe

Mthodes et classes abstraites

Comme pour les attributs de classe, il est possible de dclarer d mthodes d classe. d l des th d de classe. l Une th d de l U mthode d classe ne peut manipuler que d attributs t i l des tt ib t de classe et ses propres paramtres. paramtres.

Une mthode est dite abstraite lorsquon connat son entte mais pas la manire dont elle peut tre ralise. ralise. Une classe est dite abstraite lorsquelle dfinit au moins une mthode abstraite ou lorsquune classe parent contient une lorsqu une mthode abstraite non encore ralise. ralise. On ne peut instancier une classe abstraite. abstraite. Une classe abstraite peut trs bien contenir des mthodes concrtes. concrtes. Une classe abstraite pure ne comporte que des mthodes abstraites. abstraites. En programmation oriente objet, une telle classe est appele une interface. interface. Pour indiquer quune classe est abstraite, il faut ajouter le mot-clef q q , j motabstract derrire son nom. nom.
Bouhlel Mohamed Salah COO 2007/2008 138

Cette mthode na pas accs aux attributs de la classe (i.e. (i. des instances de la classe). classe). Laccs une mthode d classe ne ncessite pas L th d de l it lexistence dune instance de cette classe. classe. Graphiquement, une mthode de classe est souligne. souligne.
Bouhlel Mohamed Salah COO 2007/2008 137

Visibilit

Public ou + : laccs est possible de tous les objets de l accs toutes les autres classes. classes. Private ou - : laccs nest possible que depuis lintrieur des objets. Seules les oprations dfinies dans la classe objets. peuvent manipuler lattribut. lattribut. Protected ou # : laccs est possible pour les objets dune g ) sous classe. (hritage) classe. ( Package ou ~ ou rien : laccs est possible pour les objets l accs appartenant au mme package. package.

Relation entre classe

Bouhlel Mohamed Salah

COO 2007/2008

139

Bouhlel Mohamed Salah

COO 2007/2008

140

Notion dassociation

Notion dassociation : exemple

Une association est une relation entre deux classes (association binaire) ou plus (association n-aire) qui aire), dcrit les connexions structurelles entre leurs instances. instances. Une association indique donc quil peut y avoir des liens entre des instances des classes associes. associes. Comment une association doit-elle tre modlise ? doitPersonne - nom : String - prenom : String * + salaire() : float travaille pour 1 chiffre_affaire() : float Entreprise raison_sociale : String

Bouhlel Mohamed Salah

2007/2008 2007/ COO 2007/2008

141

Bouhlel Mohamed Salah

2007/ COO 2007/2008 2007/2008

142

Paramtrage dune association

Rles dans une association

nom : Comme un attribut, une association peut tre nomme. nomme. Le nom est situ proximit de la terminaison, mais contrairement un attribut, ce nom est f t i t tt ib t t facultatif. facultatif. lt tif visibilit : Comme un attribut une association possde une attribut, visibilit. visibilit. La visibilit est mentionne proximit de la terminaison, et plus prcisment, le cas chant, devant le nom de la terminaison. d l t terminaison. i i multiplicit : Comme un attribut une association peut attribut, possder une multiplicit. Elle est mentionne proximit de la multiplicit. terminaison. terminaison. Il nest pas impratif de la prciser. La multiplicit prciser. par df t d dfaut dune association est non spcifie. i ti t spcifie. ifi navigabilit : la navigabilit peut tre prcise. prcise.

Le terme rle dsigne la description de ce que fait lobjet dans la relation la manire dont il y participe participe. Exemple : de nombreux employs participent un projet de manire diffrentes.
Comment vais-je reprsenter a? vais-

Bouhlel Mohamed Salah

COO 2007/2008

143

Bouhlel Mohamed Salah

COO 2007/2008

144

Rles dans une association : exemple


Participe p
Chef de projet

Association rflexive

Employer
Concepteur

Participe
Programmeur

Une association est dite rflexive si elle sapplique a des objets dune mme classe.

Projet

Participe

Pre de
Personne

superviseur 1 * p 1..

Personne
Entreprise

Employ
ouvrier *

employ - nom : String travaille pour employeur raison_sociale : String p g - prenom : String * 1 + salaire() : float chiffre_affaire() : float

Fils de

Bouhlel Mohamed Salah

COO 2007/2008

145

Bouhlel Mohamed Salah

2007/ COO 2007/2008 2007/2008

146

Association binaire et n-aire n

Association binaire et n-aire n

Une association binaire est matrialise par un trait plein entre les classes associes. Elle peut tre orne dun nom, associes. avec ventuellement une prcision d sens d l t t ll t i i du de lecture ( ou ). Quand les deux extrmits de lassociation pointent vers la , rflexive. mme classe, lassociation est dite rflexive.

Une association n-aire lie plus de deux classes. classes. On reprsente une association n-aire par un grand losange avec un chemin partant vers chaque classe participante. Le participante. nom d l de lassociation, l cas h t apparat proximit d i ti le chant, t i it du losange. losange.
cours Matiere * Etudiant *

Personne

employ 1..*

travaille pour

employeur 1

Entreprise * Professeur

Bouhlel Mohamed Salah

2007/2008 2007/ COO 2007/2008

147

Bouhlel Mohamed Salah

COO 2007/2008

148

Multiplicit ou cardinalit

Navigabilit
La navigabilit indique sil est possible de traverser une association. association. On reprsente graphiquement la navigabilit par une :

Voici quelques exemples de multiplicit : q q p p


exactement un : 1 ou 1..1 ..1 plusieurs : * ou 0..* au moins un : 1..* ..* de un six : 1..6 ..6

flche du ct de la terminaison navigable. navigable. on empche l navigabilit par une croix d ct d l h la i bilit i du t de la terminaison non navigable. navigable. Par dfaut, une association est navigable dans les deux sens. sens.

Dans une association binaire, la multiplicit sur la terminaison cible contraint le nombre dobjets de la d objets classe cible pouvant tre associs un seul objet donn d l classe source. d de la l source.

Commande * Commande * Commande *

+ ligne article * + ligne article * + ligne article *


2007/ COO 2007/2008 2007/2008

Produit

Produit

Produit

Bouhlel Mohamed Salah

2007/2008 2007/ COO 2007/2008

149

Bouhlel Mohamed Salah

150

Navigabilit : exemple 2
Polygone 1 Dfinit par - sommet 3..*

Qualification
Point P i t

Quand une classe est lie une autre classe par une association, il est parfois prfrable de restreindre la porte de lassociation quelques l d l i ti l lments cibls ( t ibl (comme un ou plusieurs attributs) de la classe. classe. Ces lments cibls sont appels un qualificatif. Un qualificatif. q qualificatif permet donc de slectionner un ou des objets p j dans le jeu des objets dun objet (appel objet qualifi) reli qualifi) par une association un autre objet. objet. Lobjet slectionn par la valeur du qualificatif est appel objet cible. Lassociation est appele association qualifie. cible. L association qualifie. Un qualificatif agit toujours sur une association dont la multiplicit est plusieurs du ct cible (avant que lassociation ne soit qualifie). qualifie).
Bouhlel Mohamed Salah 2007/2008 COO 2007/2008 2007/ 152

Polygone - sommet : Point [3..*]

La L terminaison d ct d l classe P l i i du de la l Polygone nest pas navigable : cela signifie que les instances de la classe Point ne stockent pas de liste dobjets du type Polygone. d objets Polygone. Inversement, Inversement la terminaison du ct de la classe Point est navigable : chaque objet Polygone contient une liste de Points. Points.
Bouhlel Mohamed Salah 2007/2008 2007/ COO 2007/2008 151

Qualification : exemple

Qualification : exemple 2

Un objet utilise le qualificateur pour accder lautre type (qualifi). (qualifi). Un des avantages est quil permet de rduire la multiplicit. multiplicit. Banque Client 1
Commande Commande C d
qualificateur

Banque
compte

Client
Num_cmd

*
Commande

1 * Personne

* Commande

1 Commande
+Num_cmd +N d

0..2 0 2 Personne

Bouhlel Mohamed Salah

COO 2007/2008 2007/2008 2007/

153

Bouhlel Mohamed Salah

2007/2008 COO 2007/2008 2007/

154

Classe Association

Classe association : exemple

Par exemple, lassociation Emploie entre une socit et une personne possde comme proprits le salaire et la date dembauche. En ff t dembauche. E effet, ces d d b h deux proprits nappartiennent it ti t ni la socit, qui peut employer plusieurs personnes, ni aux personnes, qui peuvent avoir plusieurs emplois. emplois. Il sagit donc bien de proprits de lassociation Emploie. Emploie. Les associations ne pouvant possder de proprit, il f proprit, faut introduire un nouveau concept pour modliser cette situation : celui de classe-association. classe-association. Une classe-association possde les caractristiques des classep q associations et des classes : elle se connecte deux ou plusieurs classes et possde galement des attributs et des oprations. oprations. Une classe-association est caractrise par un trait classep discontinu entre la classe et lassociation quelle reprsente. reprsente.
Bouhlel Mohamed Salah 2007/2008 2007/ COO 2007/2008 155 Bouhlel Mohamed Salah

Emploie
+ date_embauche : Date + Salaire : float

employ

employeur

Personne P

Societe

2007/ COO 2007/2008 2007/2008

156

Classe association : exemple 2

Contrainte Association

Une classe dassociation encapsule les informations concernant une association


*
Commande

Soit le schma suivant :


Personne P 1
conduit

1..*

Voiture V it

Client

Produit

{ doit possder un permis valide}

Commande +Qte : int +Date_cmd : Date

Est il vraiment exacte que nimporte quel personnes peut conduire une voitures?

Bouhlel Mohamed Salah

COO 2007/2008 2007/2008 2007/

157

Bouhlel Mohamed Salah

COO 2007/2008 2007/

158

Agrgation et composition

Agrgation : Exemple

Agrgation

Lorsque lon souhaite modliser une relation tout/partie o une classe q p constitue un lment plus grand (tout) compos dlments plus petit (partie), il faut utiliser une agrgation. agrgation. Une agrgation est une association qui reprsente une relation dinclusion structurelle ou comportementale dun lment dans un p ensemble. ensemble. Graphiquement, on ajoute un l G hi t j t losange vide d ct d lagrgat. id du t de l t. lagrgat Contrairement une association simple, lagrgation est transitive. transitive. La signification de cette forme simple dagrgation est uniquement conceptuelle. conceptuelle. Elle ne contraint pas la navigabilit ou les multiplicits de lassociation. Elle nentrane pas non plus de contrainte sur la l association association. n entrane dure de vie des parties par rapport au tout. tout.

quipe

11..25

Joueur

1 Voiture V it 1 4

Carrosserie Moteur M t Roues

Bouhlel Mohamed Salah

COO 2007/2008 2007/2008 2007/

159

Bouhlel Mohamed Salah

2007/2008 COO 2007/2008 2007/

160

Agrgation : exemple 2

Pourquoi lagrgation

Elle dfi it Ell dfinit un point d contrle unique pour l bj t i t de t l i lobjet reprsentant lassemblage. lassemblage. Une voiture contrle la voiture. voiture. Si une instruction affecte lensemble de lassemblage, lobjet dtenant le contrle dicte la faon dont les membres rpondent. rpondent. Acclration de la voiture : si on appuie sur la pdale d acclration dacclration on a un ensemble dobjet qui vont interagir d objet pour acclrer. acclrer.

Bouhlel Mohamed Salah

COO 2007/2008 2007/2008 2007/

161

Bouhlel Mohamed Salah

COO 2007/2008 2007/

162

Agrgation et composition

Composition : exemple
Composition : si le livre est dtruit alors chapitre nexiste plus

La composition, galement appele agrgation composite, dcrit une composition, composite, contenance structurelle entre instances. Ainsi, la destruction de lobjet instances. composite implique la destruction de ses composants. composants. Une instance de la partie appartient toujours au plus une instance de llment composite : l multiplicit d ct composite ne doit pas t ll t it la lti li it du t it d it tre suprieure 1 (i.e. 1 ou 0..1). (i. ..1

Livre

1..1

1..*

Chapitre p

Graphiquement, on ajoute un losange plein du ct de lagrgat. lagrgat. Les notions dagrgation et surtout de composition posent de nombreux d agrgation problmes en modlisation et sont souvent le sujet de querelles dexperts et sources de confusions. confusions. Ce que dit la norme UML Superstructure version 2.1.1 reflte dailleurs trs bien le flou qui entoure ces notions : Precise semantics of shared aggregation varies by application area and modeler. The order and way in which part instances are created is not defined.
Bouhlel Mohamed Salah COO 2007/2008 2007/ 163

chiquier

64

Case

Bouhlel Mohamed Salah

COO 2007/2008 2007/

164

Gnralisation et hritage

Gnralisation et hritage

La gnralisation dcrit une relation entre une classe gnrale (classe de base ou classe parent) et une classe spcialise (sous-classe). (sous-classe). La classe spcialise est intgralement cohrente avec la classe de base, base mais comporte des informations supplmentaires (attributs (attributs, oprations, associations). Un objet de la classe spcialise peut tre associations). utilis partout o un objet de la classe de base est autoris. autoris. Dans le langage UML, ainsi que dans la plupart des langages objet, cette relation de gnralisation se traduit par le concept dhritage. On dhritage. parle l l galement d relation dh it t de l ti dhritage Ai i lh it Ainsi, lhritage permet l t la classification des objets. objets. Le symbole utilis pour la relation dhritage ou de gnralisation est une flche avec un trait plein dont la pointe est un triangle ferm g p g gnral. dsignant le cas le plus gnral.

Les proprits principales de lhritage sont :

La classe enfant possde toutes les caractristiques des ses classes parents, mais elle ne peut accder aux caractristiques prives de cette dernire. dernire. Une classe enfant peut redfinir (mme signature) une ou plusieurs mthodes de la classe parent. Sauf indication contraire un objet parent. contraire, utilise les oprations les plus spcialises dans la hirarchie des classes. classes. Toutes les associations de la classe parent sappliquent aux classes drives. drives. Une instance dune classe peut tre utilise partout o une instance de sa classe parent est attendue. attendue. Une classe peut avoir plusieurs parents, on parle alors dhritage multiple
COO 2007/2008 2007/ 166

Bouhlel Mohamed Salah

COO 2007/2008 2007/

165

Bouhlel Mohamed Salah

Gnralisation et hritage : exemple

Interface

Le rle dune interface est de regrouper un ensemble de proprits et doprations assurant un service cohrent. cohrent. Lobjectif est de diminuer le couplage entre deux classeurs. classeurs. La notion dinterface en UML est trs proche de la notion dinterface en Java. d interface Java. Une interface est reprsente comme une classe except labsence du mot-clef abstract et lajout du strotype mot interface Une interface doit tre ralise par au moins une classe et peut lt par plusieurs. t ltre plusieurs. l i Une classe pe t trs bien raliser plusieurs interfaces. peut pl sie rs interfaces.
Bouhlel Mohamed Salah 2007/ COO 2007/2008 2007/2008 168

Bouhlel Mohamed Salah COO 2007/2008 2007/ 167

Interface : Exemple

Gnralisation et hritage

Un rpertoire possde un nom et des droits de lecture, dexcution et dcritures. dcritures.

1. Proposez une modlisation sous forme de classe de cette notion de rpertoire rpertoire.

Personne P

realize

i t f interface Inscription
+ Calculer_tarif() : double + Dure_emprunt() : Date

Un fichier possde un nom et des droits de lecture, dexcution et dcritures. dcritures.


2. Proposez une modlisation sous forme de classe de cette notion de fichier fichier. 3. Faites coexister ces deux notions sur un mme diagramme en en proposant une gnralisation. 4. Proposez une modlisation de ces relations. 5. une mthode pour l ff th d leffacement et l renommage. t t le une mthode permettant daccder au rpertoire parent, une mthode permettant d li h d de lister son contenu et une mthode permettant de se rendre dans lun de ses sous-rpertoires en prcisant sousson nom. 6. Compltez votre diagramme de classe en consquence consquence.

Un rpertoire peut contenir des rpertoires et des fichiers fichiers.


Les fichiers et les rpertoires possdent : Un rpertoire possde galement :


Etudiant Et di t

Enseignent

Toutes les proprits structurelles des rpertoires et des fichiers sont prives.

7. Compltez votre diagramme de classe en prcisant les mthodes daccs d accs.


COO 2007/2008 2007/ 170

Bouhlel Mohamed Salah

2007/2008 2007/ COO 2007/2008

169

Bouhlel Mohamed Salah

Exemple 1/6

Exemple 2/6

Un rpertoire possde un nom et des droits de lecture, d excution d critures lecture dexcution et dcritures. critures.

Un fichier possde un nom et des droits de lecture, dexcution et dcritures. dcritures.

2. Proposez une modlisation sous forme de classe de cette notion de fichier. fichier.

Proposez une modlisation sous forme de classe de cette notion de rpertoire. rpertoire. Repertoire p Nom : String Ecriture : boolean Lecture : boolean Execution : boolean

Fichier Nom : String Ecriture : boolean Lecture : boolean Execution : boolean

Bouhlel Mohamed Salah

COO 2007/2008 2007/

171

Bouhlel Mohamed Salah

2007/ COO 2007/2008 2007/2008

172

Exemple 3/6

Exemple 4/6

3. Faites coexister ces deux notions sur un mme diagramme en en proposant une gnralisation gnralisation.
Fichier

Un rpertoire peut contenir des rpertoires et des fichiers.

4. Proposez une modlisation de ces relations. p

Repertoire

File Nom : String Ecriture : boolean Lecture : boolean Execution : boolean


*

Fichier
*

Repertoire

File Nom : String Ecriture : boolean Lecture : boolean Execution : boolean

Bouhlel Mohamed Salah

COO 2007/2008 2007/2008 2007/

173

Bouhlel Mohamed Salah

2007/ COO 2007/2008 2007/2008

174

Exemple 5/6

Exemple 6/6

5 et 6
Fichier Fi hi

Fichier

Repertoire

File Nom : String Ecriture : boolean Lecture : boolean Execution : boolean


*

+ effacer() : void

File {abstract}
- Nom : String - Ecriture : boolean - Lecture : boolean - Execution : boolean + effacer() : void {abstract} + renommer(String) : void + getNom() : String + getdroit(String) : boolean + getDroit(): String

Repertoire
+ parent() : Repertoire + ls() : void + cd (String) : repertoire + effacer() : void

Bouhlel Mohamed Salah

COO 2007/2008 2007/

175

Bouhlel Mohamed Salah

COO 2007/2008 2007/2008 2007/

176

Rappel des notions du mta-langage mta

Nous aurons rgulirement recours ce mta-langage pour mtadcrire des syntaxes de dclaration. dclaration. Ce mta-langage contient certains mta-caractres : mtamta [ ] : l les crochets indiquent que ce qui est lintrieur est h t i di t i t li t i t optionnel ;

Conception Oriente Objet Unified Modeling Language (UML)


Enseignent : g BOUHLEL Mohamed Salah
Anne Universitaire : 2007/2008 2007/

< > : les signes infrieur et suprieur indiquent que ce qui est lintrieur est plus ou moins libre ; par exemple, la syntaxe de dclaration dune variable comme compteur : int est <nom_variable> : <type> ; <nom variable> ' ' : les cotes sont utiles quand on veut utiliser un mtamtacaractre comme un caractre ; par exemple pour dsigner un exemple, crochet ([) il faut crire '[' car [ est un mta-caractre ayant une mtasignification spciale ; ... : permet de dsigner une suite de squence de longueur non dfinie, le contexte permettant de comprendre de quelle suite il sagit. s agit agit.
COO 2007/2008 2007/ 177

Bouhlel Mohamed Salah

Acadmie militaire de Borj el Amri

Sommaire

Diagramme Objet : Sommaire


Introduction Analyse d b A l des besoins et di i t diagramme d cas d tili ti de dutilisation Diagramme dactivit Diagramme de classe

Introduction Notion Objet N ti Obj t Notion de lien Diagramme classe vs diagramme objet Exemple
COO 2007/2008 2007/ 180

Diagramme

Objet

Diagramme dtat transition Diagramme de squence Diagramme de collaboration Diagramme de composant Diagramme de dploiement Les nouveaut de UML 2.0 Prsentation des t d d cas P t ti d tudes de

Bouhlel Mohamed Salah

COO 2007/2008 2007/

179

Bouhlel Mohamed Salah

Introduction
Le diagramme de classe modlise les rgles concernant les types dentits tandis que le diagramme objet reprsente des faits concernant ces entits.

Introduction

Les objet sont des classes relles, comme une personne, personne livre ou chaise chaise,

Ex E :

supposons que le diagramme de classe modlise les rgle indiquant quune personne peut possder des livre En revanche le diagramme objet pourrait reprsenter le fait f it que vous possdez un exemplaire d ce li d l i de livre.
COO 2007/2008 2007/ 182

Bouhlel Mohamed Salah

COO 2007/2008 2007/

181

Bouhlel Mohamed Salah

Introduction

Le diagramme objet est g j constituer de deux lments :

simplement p

lment du diagramme Objet

Les objets Les liens entre objets

Un objet correspond a une instance de la classe. Un lien est cr a partir dune transition d une transition.
Bouhlel Mohamed Salah COO 2007/2008 2007/ 183 Bouhlel Mohamed Salah COO 2007/2008 184

Objet
Un objet est reprsenter par deux compartiment :

Objet anonyme

Le nom de lobjet avec le nom de sa classe. NomObjet : NomClasse La valeur des attributs avec leurs nom. nomAttribut = valeur Att ib t l
Personne P foulen : Personne - Nom : String -P Prenom : String St i -Age : int + getAge() : int +getNom() : String Nom = Ben Foulen Prenom = Foulen Age = 25

Un objet peut ne pas avoir de nom j p p on parle dobjet anonyme


: Personne

Un objet anonyme

Un objet

On utilise les objets anonymes dans le cas ou n importe nimporte quel objet se comporte de la mme faon
185 Bouhlel Mohamed Salah COO 2007/2008 2007/ 186

La classe
Bouhlel Mohamed Salah COO 2007/2008 2007/

But du diagramme Objet

Tracer un diagramme de classe et supposer g pp quil est correct est un pige dans lequel il est facile de tomber tomber.

Le diagramme objet est un des diagramme qui permet de tester la validit du diagramme de classe

D. Classe vs D. Objet

Bouhlel Mohamed Salah

COO 2007/2008 2007/

187

Bouhlel Mohamed Salah

COO 2007/2008 2007/

188

Comparaison du diagramme classe et objet


D. Classe
1.

Comparaison du diagramme classe et objet


D. Classe D. Objet

D. Objet

Les classes ont 3 1. Les objets ont deux compartiments : nom compartiments : nom et nom, attributs attributs et mthodes Le nom de la classe est 2. Le format du nom de NClass. seule dans le lobjet est NObj : NClass. compartiment du nom. nom. On O peut parfois omettre l t f i tt le nom de lobjet objet anonyme. anonyme.

3. Le compartiment des 3. Les objets dfinissent attributs. attributs dfinit les les valeurs des attributs. proprits de lattribut. lattribut.

2.

4. Les oprations sont 4. Les opration ne sont prsentes d t dans l classe. pas incluses car elle la classe. l q p seront identique pour tous les objets. objets.
Bouhlel Mohamed Salah COO 2007/2008 2007/ 190

Bouhlel Mohamed Salah

COO 2007/2008 2007/

189

Comparaison du diagramme classe et objet


D. Classe 5. Les classes sont connectes par des associations avec un nom et une multiplicit, multiplicit contrainte, role, D. Objet 5.Les objets sont connects avec des liens qui ont des noms et pas de multiplicit. Les objets multiplicit. reprsentent des entits unique et les liens sont unun-a-un cest pourquoi la p q multiplicit est non relevante. relevante. Tandis quon qu on peut utilis la notion de rle dans les liens. liens.
191 Bouhlel Mohamed Salah

Enfin un exemple

Bouhlel Mohamed Salah

COO 2007/2008 2007/

COO 2007/2008 2007/

192

Exemple : Diagramme de classe initial

Exemple : Diagramme dobjet


On dressant le diagramme objet, on cest rendue compte quun produit assembl peut tre crer en assemblant divers produits fournisseur.

1 : ProdFournisseur

ProdFournisseur P dF i
*

Livraison
* *

ProdAssembl

432 : Livraison

22 : ProdAssembl

2 : ProdFournisseur

3 : ProdFournisseur

Bouhlel Mohamed Salah

COO 2007/2008 2007/

193

Bouhlel Mohamed Salah

COO 2007/2008 2007/

194

Exemple : modification du Diagramme de classe initial

Exemple : 2me contrainte !!

Modification lagrgation

du

diagramme
*

de

classe

en

ajoutant

Quel est le minimum dobjet pour construire un produit assembl?

ProdFournisseur
* 1..*

1 : ProdFournisseur

Livraison
* *

432 : Livraison

22 : ProdAssembl

2 : ProdFournisseur

ProdAssembl

Bouhlel Mohamed Salah

COO 2007/2008 2007/

195

Bouhlel Mohamed Salah

COO 2007/2008

196

Exemple : 2me modification du Diagramme de classe initial

Exemple : 3me contrainte !!!

Modification du diagramme de classe en rectifiant la multiplicit

Les produits assembls et produit fournisseur peuvent faire parti dun produit assembl?

4 : ProdFournisseur

1 : ProdFournisseur

ProdFournisseur
* 2..*

432 : Livraison

22 : ProdAssembl

2 : ProdFournisseur

Livraison
* *

ProdAssembl

23 : ProdAssembl

4 : ProdFournisseur

Bouhlel Mohamed Salah

COO 2007/2008 2007/

197

Bouhlel Mohamed Salah

COO 2007/2008

198

Exemple : 2me modification du Diagramme de classe initial

Fin chapitre

A vous de jouer
Livraison
* Livre 1..* 1 * 2..*

Produit

Srie de TD N 5 N

ProdFournisseur

ProdAssembl

Bouhlel Mohamed Salah

COO 2007/2008 2007/

199

Bouhlel Mohamed Salah

COO 2007/2008 2007/

200

Sommaire

Conception Oriente Objet Unified Modeling Language (UML)


Enseignent : g BOUHLEL Mohamed Salah
Anne Universitaire : 2007/2008 2007/

Introduction Analyse des besoins et diagramme de cas dutilisation Diagramme dactivit Diagramme de classe Diagramme de squence Diagramme de collaboration

Diagramme dtat transition d tat


Diagramme de composant Diagramme de dploiement Les nouveaut de UML 2.0 Prsentation des t d d cas P t ti d tudes de

Acadmie militaire de Borj el Amri

Bouhlel Mohamed Salah

COO 2007/2008 2007/

202

Diagramme de squence : Sommaire

Un peut dhistoire Le gnie logiciel Lapproche oriente objet L approche Unified Modeling Language (UML) 2 Truck Unified Process (2TUP)
COO 2007/2008 2007/ 203 Bouhlel Mohamed Salah COO 2007/2008 2007/ 204

Introduction

Bouhlel Mohamed Salah

Introduction
Les diagrammes dtats-transitions dUML dcrivent le comportement interne dun objet laide dun automate tats d un l aide d un finis.

Notion dun automate a tat fini


Un automate tats finis est un automate dont le comportement des sorties ne dpend pas seulement de ltat l tat de ses entres, mais aussi dun historique des sollicitations passes.

Ils prsentent les squences possibles dtats et dactions quune instance de classe peut traiter au cours de son cycle de vie en raction des vnements discrets (invocations de mthode) mthode).

Cet historique est caractris par un tat global qui est un jeu de valeurs dobjet pour une classe donne produisant la d objet, donne, mme rponse face aux vnements.

Le diagramme dtats-transitions est le seul diagramme UML, d tats transitions offrir une vision complte et non ambigu de lensemble des comportements de llment auquel il est attach.

Toutes les instances dune mme classe ayant le mme tat global ragissent de la mme manire un vnement. Il ne faut f t pas confondre l notions dt t global et dt t f d les ti dtat l b l t dtat.

Concrtement, un diagramme dtats-transitions est un graphe qui reprsente un automate tats finis cest--dire une machine finis, c est dire dont le comportement des sorties ne dpend pas seulement de ltat de ses entres, mais aussi dun historique des sollicitations passes. passes

Bouhlel Mohamed Salah COO 2007/2008 205

Un automate tats finis est graphiquement reprsent par un graphe comportant des tats, matrialiss par des g , , rectangles aux coins arrondis, et des transitions, matrialises par des arcs orients liant les tats entre eux.

Bouhlel Mohamed Salah COO 2007/2008 2007/ 206

Exemple dun automate a tat fini


Cet automate possde deux tats (Allum et Eteint) et deux transitions correspondant au mme vnement : lappuie sur un bouton dclairage domestique domestique.

Allum
Appuyer Appuyer

Cet automate tats finis illustre en fait le fonctionnement dun p interrupteur dans une maison. Lorsque lon appuie sur un bouton dclairage, la raction de l clairage lclairage associ dpendra de son tat courant (de son historique)

teint t i t
Exemple simple dautomate tats finis.

Le diagramme dtat d tat transition

sil la lumire est allume, elle steindra, t i d s e e si elle est teinte, elle sallumera te te, e e s a u e a
COO 2007/2008 2007/

Bouhlel Mohamed Salah

207

Bouhlel Mohamed Salah

COO 2007/2008

208

Diagramme tat transition


Un diagramme dtats-transitions rassemble et organise les tats et les transitions dun classeur donn d un donn.

Etat : Notation
Le nom de ltat peut tre spcifi dans le rectangles et doit tre t unique d i dans l di le diagrammes dt t t dtats-transitions, ou d iti dans ltat enveloppant. On peut lomettre, ce qui produit un tat anonyme. anonyme

Bien entendu le modle dynamique du systme comprend entendu, plusieurs diagrammes dtats-transitions. Il est souhaitable de construire un diagramme dtats-transitions pour chaque classeur ( i l plus souvent, est une classe) possdant un l (qui, le l t t l ) d t comportement dynamique important.

Un tat peut tre partitionn en plusieurs compartiments spars par une ligne horizontale.

Un diagramme dtats-transitions ne peut tre associ qu un seul classeur.

Le premier compartiment contient le nom de ltat l tat les autres peuvent recevoir des transitions, ou des sous-tats.

Tous les automates tats finis des diagrammes dtatsg transitions dun systme sexcutent concurremment et peuvent donc changer dtat de faon indpendante.

Bouhlel Mohamed Salah COO 2007/2008 209

Nom tat

Nom tat Entry Exit


COO 2007/2008 2007/ 210

Bouhlel Mohamed Salah

tat initial et final


Ltat initial est un pseudo tat qui indique ltat l tat de dpart dpart. Par dfaut, lorsque le diagramme dtats, q transitions, est invoqu. Lorsquun objet est cr, il entre dans ltat initial.

vnement : Notion vnement


Un vnement est quelque chose qui se produit pendant l excution d un lexcution dun systme et qui mrite dtre modlis. d tre

tat initial

Les diagrammes dtats-transitions permettent justement de g p j spcifier les ractions dune partie du systme des vnements discrets.

Ltat final est un pseudo tat qui indique que le diagramme dtats transitions est dtats-transitions, termin.

Un vnement se produit un instant prcis et est dpourvu de dure Quand un vnement est reu une transition peut dure. reu, tre dclenche et faire basculer lobjet dans un nouvel tat.

tat final

On peut diviser les vnements en plusieurs types explicites et implicites :


signal, appel, changement et temporel temporel.


COO 2007/2008 212

Bouhlel Mohamed Salah

COO 2007/2008 2007/

211

Bouhlel Mohamed Salah

vnement : le type signal

vnement : le type signal signal


Les signaux sont dclars par la dfinition dun classeur portant le strotype signal ne fournissant pas dopration et dont les attributs sont interprts comme des arguments.

Signal Interruption E/S +priphrique : int

Un signal est destin explicitement vhiculer une y q j communication asynchrone sens unique entre deux objets.

Lobjet expditeur cre et initialise explicitement une j p p instance de signal et lenvoi un objet explicite ou tout un groupe dobjets.

Il nattend pas que le destinataire traite le signal pour poursuivre son droulement La rception de signal est un droulement. vnement pour le destinataire.

La syntaxe dun signal est la suivante : <nom_vnement> ( [ <paramettre> : <type> [; <paramettre> : <t < tt > <type> ... ] ] ) >
Bouhlel Mohamed Salah COO 2007/2008 2007/ 213

Signal Souris +posX : int +posY : int Y i t


Bouhlel Mohamed Salah COO 2007/2008 2007/

Signal Clavier +caractere : int


214

vnement : le type appel call


Un vnement dappel reprsente la rception de lappel d une dune opration par un objet objet.

vnement : le type changement change


Un vnement de changement est gnr par la satisfaction (i.e. (i e passage de faux vrai) dune expression boolenne sur d une des valeurs dattributs.

Les paramtres de lopration sont ceux de lvnement l opration l vnement dappel.


Il sagit dune manire dclarative dattendre quune condition soit satisfaite. La syntaxe dun vnement de changement est la suivante :

La syntaxe dun vnement dappel est la mme que celle dun signal.

Par contre, les vnements dappel sont des mthodes dclares au niveau du diagramme de classes classes.

when ( <condition_boolenne> ) _
Un vnement de changement est valu continuellement jusqu ce quil d i j il devienne vrai, et cest ce moment-l que l i t t t l la transition se dclenche.

Bouhlel Mohamed Salah

COO 2007/2008

215

Bouhlel Mohamed Salah

COO 2007/2008 2007/

216

vnement : le type temporel after ou when


Les vnements temporels sont gnrs par le passage du temps. Il sont spcifis soit d manire absolue (d t t Ils t ifi it de i b l (date prcise), soit de manire relative (temps coul).

Transition : Notion
Une transition dfinit la rponse dun objet loccurrence dun vnement. Ell li gnralement, d d t Elle lie, l t deux t t E1 et E2 et tats t t indique quun objet dans un tat E1 peut entrer dans ltat E2 et excuter certaines activits si un vnement dclencheur se activits, produit et que la condition de garde est vrifie.

Par dfaut, le temps commence scouler ds lentre dans ltat courant l tat courant.

La syntaxe dun vnement temporel spcifi de manire d un relative est la suivante : after ( <dure> )

La syntaxe dune transition est la suivante : [ <vnement> ][ '[' <garde> ']' ] [ '/' <activit> ] [ ] /

Le mme vnement peut tre le dclencheur de plusieurs transitions quittant un mme tat.

Un nement temporel spcifi de manire absol e est vnement absolue dfini en utilisant un vnement de changement : when ( date = <date> )

Bouhlel Mohamed Salah COO 2007/2008 2007/ 217

Chaque transition avec le mme vnement doit avoir une condition de garde diffrente diffrente.

Bouhlel Mohamed Salah COO 2007/2008 218

Condition de garde

Effet dune transition


Lorsquune transition se dclenche (on parle galement de tir dune t ti d transition), son effet ( c--d '/' < ti it>) sexcute. iti ) ff t d <activit>) t

Une transition peut avoir une condition de garde.

Un garde est une expression logique sur les attributs de lobjet, l bj t associ au di i diagramme dt t t dtats-transitions, ainsi que sur iti i i les paramtres de lvnement dclencheur. La condition de garde est value uniquement lorsque lvnement l vnement dclencheur se produit produit.

Il sagit gnralement d it l t dune activit qui peut t ti it i t tre


une opration primitive comme une instruction dassignation ; lenvoi dun signal ; lappel dune opration ; une liste dactivits etc d activits, etc.

Si lexpression est fausse ce moment l, la transition ne se dclenche pas, si elle est vraie, la transition se dclenche et ses effets se produisent.

La faon de spcifier lactivit raliser est laisse libre l activit (langage naturel ou pseudo-code).

Lorsque lexcution de leffet est termine, ltat cible de la transition devient actif.

Bouhlel Mohamed Salah COO 2007/2008 2007/ 219 Bouhlel Mohamed Salah COO 2007/2008 2007/ 220

Transition externe

Transition dachvement
Une transition dpourvue dvnement dclencheur explicite se dclenche la fin de lactivit contenue dans ltat source (y compris les tat imbriqus).

tat source

tat cible

Une transition externe est une transition qui modifie ltat actif.

Elle peut contenir une condition de garde qui est value l au moment o l ti it contenue d t lactivit t dans lt t ltat sachve, et non pas ensuite.

Il sagit du type de transition le plus rpandu. Elle est reprsente par une flche allant de ltat source vers ltat l tat l tat cible.

La figure ci dessus illustre la reprsentation graphique dune transition externe entre deux tats.
Bouhlel Mohamed Salah COO 2007/2008 221

Les transitions de garde sont, par exemple, utilises pour connecter l t les t t i iti tats initiaux et l t les t t tats historiques avec leur tat successeurs puisque ces pseudo-tats pseudo tats ne peuvent rester actifs actifs.

Bouhlel Mohamed Salah

COO 2007/2008

222

Transition interne
Les rgles de dclenchement dune transition interne sont les mmes que pour une transition externe except :

Transition interne
Les transitions internes possdent des noms dvnement prdfinis correspondant des dclencheurs particuliers : entry, exit, do et include.

Une transition interne ne possde pas dtat cible d tat Ltat actif reste le mme la suite de dclenchement. dclenchement

son

entry entry permet de spcifier une activit qui saccomplit quand on entre dans ltat. exit exit permet de spcifier une activit qui saccomplit quand on sort de ltat. do Une activit do commence ds que lactivit entry est termine. termine Si une transition se dclenche pendant que lactivit do l activit est en cours,cette dernire est interrompue et lactivit exit de ltat sexcute. include permet dinvoquer un sous-diagramme dtatstransitions.
COO 2007/2008 2007/ 224

La syntaxe dune transition interne reste la mme d une que celle dune transition classique.

Par contre, les transitions internes ne sont pas reprsentes par des arcs mais sont spcifies dans un compartiment de leur tat associ

Bouhlel Mohamed Salah COO 2007/2008 2007/ 223

Bouhlel Mohamed Salah

Transition interne : schmatisation

Nom Etat Entry / action 1 y Exit / action 2 Do / action 3 Evt / action 4 Include

Exemples

Bouhlel Mohamed Salah

COO 2007/2008

225

Bouhlel Mohamed Salah

COO 2007/2008

226

Exemple : tat transition tudiant

Exemple : lave vaisselle simple

Rveil sonne

Dmarrer

Endormis

En cours
Pause !!

En arrt
Arrter

En attente
Porte ouverte Porte ouverte

veill En marche

Bouhlel Mohamed Salah

COO 2007/2008

227

Bouhlel Mohamed Salah

COO 2007/2008 2007/

228

Exemple : personne

Transition interne : Exemple


Dmarrer

Transition dentr : excuter a lentr de ltat Transition de sorti : excuter a la sorti de ltat l tat Mari Evt / action :a lapparition de lvnement faire activit
Malentendu Entente Remariage

Clibataire
Arrter Mort M t

Saisie mot de passe

Veuf

Divorc Action Temporiser

Entry E t / set echo invisible t h i i ibl Exit / set echo normale Character / t it caractre Ch t traiter t Help / afficher aide Clear / remise a 0 du mp After (20s) / exit
COO 2007/2008 2007/ 230

Bouhlel Mohamed Salah

COO 2007/2008 2007/

229

Bouhlel Mohamed Salah

Transition interne : Ordonnancement


E3 [Cond 3] / a5

ETAT

Ordonnancement dans les actions internes

E1 [Cond 1] / a0

Entry / a1 Exit [C OUT]/ a2 [C_OUT]/ do / a6 E2 / a4

E4 [Cond 2] / a3

Si E1 est activ : on commence par ralis laction sur la transition dentr puis laction dentr puis laction associ a ltat. E1 a0 puis a1 puis a6.
Bouhlel Mohamed Salah COO 2007/2008 2007/ 231 Bouhlel Mohamed Salah COO 2007/2008 2007/ 232

Transition interne : Ordonnancement


E3 [Cond 3] / a5

Transition interne : Ordonnancement


E3 [Cond 3] / a5

ETAT E1 [Cond 1] / a0

ETAT E4 [Cond 2] / a3 E1 [Cond 1] / a0

Entry / a1 Exit [C OUT]/ a2 [C_OUT]/ do / a6 E2 / a4

Entry / a1 Exit [C_OUT]/ a2 [ ] do / a6 E2 / a4

E4 [Cond 2] / a3

Si E2 est activ : on commence par interrompre lactivit en cour l activit puis on excute laction interne puis on reprend laction de ltat. (le contexte de lactivit est sauv lors de son interruption) E2 interruption de a6 puis lancer a4 puis reprise de a6. 4 i i d 6
Bouhlel Mohamed Salah COO 2007/2008 2007/ 233

Si E4 est activ : on commence par interrompre lactivit en cours p p puis on excute laction de sortie puis laction sur la transition de sortie. Le contexte de laction nest pas sauvegard. E4 activ interruption a6 puis a2 puis a2 puis a3
Bouhlel Mohamed Salah COO 2007/2008 2007/ 234

Transition interne : Ordonnancement


E3 [Cond 3] / a5 ETAT E1 [Cond 1] / a0

Entry / a1 Exit [C_OUT]/ a2 do / a6 E2 / a4

E4 [Cond 2] / a3

Point de Jonction & point de dcision

Si E3 est activ : on commence par interrompre lactivit en cours puis on excute laction de sortie puis laction associ a la transition propre puis laction dentr puis lactivit associ a ltat (rinitialisation). (rinitialisation) E3 activ interruption a6 puis a2 puis a5 puis a1 puis relancer a6
Bouhlel Mohamed Salah COO 2007/2008 2007/ 235 Bouhlel Mohamed Salah COO 2007/2008 2007/ 236

Point de jonction
Les points de jonction sont un artefact graphique (un pseudo-tat en l d t t loccurrence) qui permet d partager d ) i t de t des segments de transition, lobjectif tant daboutir une notation plus compacte ou plus lisible des chemins alternatifs alternatifs.

Point de jonction : exemple


E1 [A>0 and b<0]

tat 3 tat 4 tat 5

tat t t 1 tat 2

E1 [A>0 and b>0] E2 [A>0 and b>0] E2 [A>0 and b=0] E2 [A>0 and b<0]

E1 [A>0 and b=0]

Un point de jonction peut avoir plusieurs segments de transition entrante et plusieurs segments de transition sortante.

Par contre, il ne peut avoir dactivit interne ni des transitions sortantes dotes de dclencheurs dvnements d vnements.

tat 1 tat 2

E1 [A>0]

[b=0] [b>0]

tat 3 tat 4 tat 5

E2 [A>0]

[b<0]

Bouhlel Mohamed Salah

COO 2007/2008 2007/

237

Bouhlel Mohamed Salah

COO 2007/2008 2007/

238

Point de jonction : exemple


[ [Client trouv] ] / afficher numro client

Point de dcision
Un point de dcision possde une entre et au moins deux sorties. C t i ti Contrairement un point d j t i t de jonction, l ti les gardes d situes aprs le point de dcision sont values au moment o il est atteint atteint.

Chercher client
[Client non trouv]

Associer client Crer client

Cela permet de baser le choix sur des rsultats obtenus en franchissant le segment avant le point de choix.

Il ne sagit pas dun tat qui peut tre actif au cours dun laps s agit d un d un de temps fini. Lorsquun chemin passant par un point de jonction est emprunt (donc lorsque la transition associe est dclenche) tous les gardes le long de ce chemin doivent p g svaluer vrai ds le franchissement du premier segment.
Bouhlel Mohamed Salah COO 2007/2008 2007/ 239

Si, quand le point de dcision est atteint, aucun segment en aval nest franchissable, cest que le modle est mal form.

Il est possible dutiliser une garde particulire, note [else], sur un des segments en aval dun point de choix.

Lutilisation dune clause [else] est recommande aprs un point d d i i car elle garantit un modle bi f i t de dcision ll tit dl bien form.

Bouhlel Mohamed Salah COO 2007/2008 240

Point de dcision : exemple

Go / validerEntre

[entre valide]

Saisie formulaire
[else]

Demander conf

tat composite et synchronisation

Afficher problmes

Bouhlel Mohamed Salah

COO 2007/2008 2007/

241

Bouhlel Mohamed Salah

COO 2007/2008 2007/

242

tat composite
Un tat composite est un tat dcompos en rgions contenant chacune un ou plusieurs sous-tats. t t h l i t t

tat composite : exemple


Associer client et commande
[ [Client trouv] ] / afficher numro client

Quand un t t composite comporte plus d Q d tat it t l dune rgion, il est i t qualifi dtat orthogonal. Lorsquun tat orthogonal est actif, un sous tat direct de chaque rgion est simultanment actif il sous-tat actif, y a donc concurrence.

Chercher client
[Client non trouv]

Associer client Crer client

Lutilisation dtats composites permet de dvelopper une spcification par raffinements raffinements.

Associer client et commande

Une notation abrge permet dindiquer quun tat est d indiquer qu un composite et que sa dfinition est donne sur un autre g diagramme.

Bouhlel Mohamed Salah COO 2007/2008 2007/ 243 Bouhlel Mohamed Salah

Notation abrger
COO 2007/2008 2007/ 244

Transition dans les tats composites


Les transitions peuvent avoir pour cible la frontire dun tat composite et sont quivalentes une transition ayant pour cible ltat initial de ltat composite.

Concurrence
Un tat orthogonal est un tat composite comportant plus d une rgion, dune rgion chaque rgion reprsentant un flot dexcution d excution.

Une transition ayant pour source la frontire dun tat composite est quivalente une transition qui sapplique tout sous-tat d lt t composite source. t t de ltat it

Graphiquement, Graphiquement dans un tat orthogonal les diffrentes orthogonal, rgions sont spares par un trait horizontal en pointill allant du bord gauche au bord droit de ltat composite.

Par contre si la transition ayant pour source la frontire dun contre, d un tat composite ne porte pas de dclencheur explicite (i.e. sil g ), sagit dune transition dachvement), elle est franchissable quand ltat final de ltat composite est atteint.

Chaque rgion peut possder un tat initial et final. Une transition qui atteint la bordure dun tat composite orthogonal d un est quivalente une transition qui atteint les tats initiaux de g toutes ses rgions concurrentes.

Les transitions peuvent galement toucher des tats de diffrents niveaux dimbrication en traversant les frontires des tats composites composites.

Bouhlel Mohamed Salah COO 2007/2008 2007/ 245

Toutes les rgions concurrentes dun tat composite g p orthogonal doivent atteindre leur tat final pour que ltat composite soit considr comme termin.

Bouhlel Mohamed Salah COO 2007/2008 2007/ 246

Concurrence : exemple
Prparer boisson et rendre monnaie
Prparer boisson Entry/placer goblet Do/servir liquide Terminer prparation Do/ajouter sucre

Concurrence : exemple
Il est galement possible de reprsenter ce type de Prparer boisson et rendre monnaie comportement au moyen de transitions concurrentes. D t ll t t d t iti t De telles transitions sont qualifies de complexes.

Prparer boisson Entry/placer goblet Do/servir liquide Terminer prparation Do/ajouter sucre

Rendre monnaie Entry/ monnaie=crdit_boisson.prix() Do/monnayeur.rendre(monnaie)

Rendre monnaie Entry/ monnaie=crdit_boisson.prix() Do/monnayeur.rendre(monnaie)

Goblet retir/ Goblet en attente Do/afficher "retirer boisson retirer boisson"


Bouhlel Mohamed Salah COO 2007/2008 247 Bouhlel Mohamed Salah

Goblet en attente Do/afficher "retirer boisson retirer boisson"


COO 2007/2008 2007/

Goblet retir/

248

Exemple : Voiture
Reculer

Exemple lave vaisselle


Dmarrer

Point mort
Stop Avance Stop

Marche arrire

En arrt
Arrter

En attente
Porte ouverte Porte ouverte

Divorc
+ + -

En marche 3me Lavage Rinage Schage

1re

2me

Bouhlel Mohamed Salah

COO 2007/2008 2007/

249

Bouhlel Mohamed Salah

COO 2007/2008 2007/

250

Exemple : Semestre dtude


En cours du semestre

Exercice : nonc
On veut modliser un rveil matin qui dispose de trois boutons : alarme on/off, arrt d l sonnerie et reglage d b t l / ff t de la i t l de lalarme. A tous moment le rveil dispose dune heure d alarme, l heure dalarme lheure a laquelle il doit sonner Cette heure dalarme sonner. d alarme quand on met lalarme sur on . Chaque appui sur les q , boutons construit un vnement qui dclenche une transition, si le rveil teint dans un tat sensible lvnement:

TD1

TD2

Mini projet

Si le rveil est dsarm et si on appui sur alarme On, il passe dans ltat lt t arm. Si le rveil est arm ou est entrain de sonner et si on appui sur alam off il passe dans ltat dsarm. p Si le rveil est entrain de sonner et si on appui sur arret de la sonnerie il passe dans ltat arm.

Semaine bloque

Passer examen
Bouhlel Mohamed Salah COO 2007/2008 2007/ 251

Par ailleurs si lheure dalarme est atteinte et si le rveil est arm, il se met a sonner. Quand la sonnerie cesse de sonner le rveil passe automatiquement a ltat arm l tat arm.

Bouhlel Mohamed Salah COO 2007/2008 2007/ 252

Exercice : Solution

Fin chapitre

E1/ alarmOn(H_Alarm)

E2[Heure=H_Alarm]

A vous de jouer Srie d S i de TD N 4 Problme : gestion dune mdiathque


253 Bouhlel Mohamed Salah COO 2007/2008 2007/ 254

Dsarm

Arm

Sonner
Do / sonner

E3/alarmOFF

E5/stop sonnerie E4/alarmOFF E4/ l OFF

Bouhlel Mohamed Salah

COO 2007/2008 2007/

Sommaire

Conception Oriente Objet Unified Modeling Language (UML)


Enseignent : g BOUHLEL Mohamed Salah
Anne Universitaire : 2007/2008 2007/

Introduction Analyse des besoins et diagramme de cas dutilisation Diagramme dactivit Diagramme de classe

Diagramme de squence
Diagramme de collaboration Diagramme dtat transition d tat Diagramme de composant Diagramme de dploiement Les nouveaut de UML 2.0 Prsentation des t d d cas P t ti d tudes de

Acadmie militaire de Borj el Amri

Bouhlel Mohamed Salah

COO 2007/2008

256

Diagramme de squence : Sommaire

Introduction

Introduction

Bouhlel Mohamed Salah

COO 2007/2008 2007/

257

Bouhlel Mohamed Salah

COO 2007/2008 2007/

258

Introduction
La vue statique reprsente la facon dont les objets sont dfinis et assembls en une structure Elle ne montre pas structure. comment les objets se comportent lorsque le programme fonctionne.

Introduction
Avec les cas dutilisation, nous avons modliser les fonctions du systmes et dvelopper les scnarios dcrivant la faon dont le systme doit se comporter lorsque ces fonctions sont utilises t tili

Le diagramme de squence illustre les intractions entre objet d bj t dans l t le temps. L Les i t ti intractions montrent comment l t t t les objets schangent des informations.
Chaque fois quun objet envoie un message a un autre j , ( q p objet, il sadresse a son interface (invoque une opration de cet objet)

Le diagramme de squence permet de passer de la description littrale des comportements dans les scnarios au opration/interface du diagramme de classe.

Par consquent si nous pouvons modliser les interaction, nous verrons apparatre les interfaces/oprations que les objets doivent comporter comporter.

Bouhlel Mohamed Salah COO 2007/2008 259

Les principales informations contenues dans un diagramme de squence sont les messages changs entre les objets, prsents dans un ordre chronologique.

Bouhlel Mohamed Salah

COO 2007/2008 2007/

260

Composant de reprsentation

Le diagramme de squence est modlis au g q niveau des objets et non au niveau des classes. classes

Notion du diagramme de squence

Le diagramme de squence utilise trois lments de notation fondamentaux :

Objet Ligne de vie Message

Bouhlel Mohamed Salah

COO 2007/2008 2007/

261

Bouhlel Mohamed Salah

COO 2007/2008 2007/

262

objet & la ligne de vie


Les objets sont reprsents avec la mme notation que dans le diagramme objet.

Message
Un message dfinit une communication particulire entre des lignes de vie vie.

foulen P f l : Personne

Plusieurs types de messages existent, les plus commun sont :


La ligne de vie est identifie par une ligne verticale pointill dirig vers g p g le bas a partir de chaque objet.

lenvoi dun signal. linvocation dune opration. la ti l cration ou l d t ti d la destruction dune i t instance.

La dure reprsent dpend du scnario et des autres comportements q que nous modlisons.

Bouhlel Mohamed Salah COO 2007/2008 2007/ 263

Un U message est gnralement un appel, signal ou t l t l i l une rponse.

Il est reprsent par une flche, le type de flche correspond au t d type d message. de

Bouhlel Mohamed Salah COO 2007/2008 2007/ 264

Les types de message

Les types de message


Objets

Message Synchrone Linvocation dune opration est le type de message le plus utilis en programmation objet. Dans la pratique, la plus part des invocations sont synchrones, lmetteur reste alors bloqu le temps que y , q p q dure linvocation de lopration. Ce message peut tre suivi dune rponse qui se d une reprsente par une flche en pointill
Objet1 : Classe1 Objet2 : Classe2

Objet1 : Classe1

Objet2 : Classe2

Message synchrone

Message de M d rponse
Bouhlel Mohamed Salah COO 2007/2008 2007/ 265 Bouhlel Mohamed Salah

Priode dactivation et de dsactivation


COO 2007/2008 2007/

Ligne de vie

266

Les types de message

Les types de message

Message Asynchrone Ils nattendent pas de rponse et ne bloquent pas lmetteur qui ne sait pas si le message arrivera destination, destination le cas chant quand il arrivera et sil sera s il trait par le destinataire.

Un signal est, par dfinition, un message asynchrone. Une interruption ou un vnement sont de bon exemple de signaux signaux.
Objet1 : Classe1 Objet2 : Classe2

Messages de cration et destruction dinstance La cration dun objet est matrialise par une flche qui pointe sur le sommet dune ligne de vie. La destruction dun objet est matrialise par une croix q qui marque la fin de la ligne de vie de lobjet. La q g j destruction dun objet nest pas ncessairement conscutive la rception dun message.
Objet1 : Classe1

create destroy

Objet2 : Classe2

Bouhlel Mohamed Salah

COO 2007/2008 2007/

267

Bouhlel Mohamed Salah

COO 2007/2008

268

Syntaxe des messages


Dans la plupart des cas, la rception dun message est suivie de lexcution dune mthode dune classe l excution d une d une classe.

Message de rponse
La syntaxe de rponse un message est la suivante : [ [<attribut> = ] message [ : <valeur_de_retour>] g ]

[ '['<cond>']' [ *[||] ['['<iter>' ]' ] ] :] [<var> :=] <msg>([<par>]) [ <cond> ] [||] [ [ <iter> ] : ]

<cond> est une condition sous forme dexpression cond d expression boolenne entre crochets. <iter> spcifie lenvoi squentiel (ou en parallle, avec ||) de plusieurs message. O d l i On peut omettre cette t tt tt spcification et ne garder que le caractre * (ou *||) pour dsigner un message rcurrent envoy un certain nombre de fois. <var> est la valeur de retour du message, qui sera par exemple t l transmise en paramtre un autre message. i t t <msg> est le nom du message. <par> d i < > dsigne l paramtres ( ti les t (optionnels) d message. l ) du
COO 2007/2008 269

o message reprsente le message denvoi d envoi.


: Mdiathque

Client Chercher("Tintin")
nbLivre = Chercher("Tintin"): 42

Bouhlel Mohamed Salah

Bouhlel Mohamed Salah

COO 2007/2008 2007/

270

Fragments dinteraction combins


Un fragment combin reprsente des articulations dinteractions. Il est dfi i par un oprateur et d oprandes. di t ti t dfini t t des d

Fragments dinteraction combins


La liste suivante regroupe dinteraction par fonctions :

les

oprateurs

Loprateur L t combin.

conditionne diti

la l

signification i ifi ti

du d

fragment f t

Les oprateurs de choix et de boucle : alternative, option, break et loop. Les oprateurs contrlant lenvoi en parallle de messages : parallel et critical region. Les oprateurs contrlant lenvoi de messages : ignore, p g g , consider, assertion et negative. Les oprateurs fixant lordre denvoi des messages : weak sequencing , strict sequencing.
COO 2007/2008 2007/ 272

Il existe 12 doprateurs dfinis dans la notation UML 2.0.

Les fragments combins permettent de dcrire des diagrammes d squence d manire compacte. di de de i t

Les fragments combins peuvent faire intervenir lensemble des entits participant au scnario ou juste un sous-ensemble.
Bouhlel Mohamed Salah COO 2007/2008 2007/ 271

Bouhlel Mohamed Salah

Fragments dinteraction combins


Oprateur alt

Fragments dinteraction combins


Oprateur loop

Loprateur alternative, ou alt, est un oprateur L t lt ti lt t t conditionnel possdant plusieurs oprandes. Cest un peu lquivalent dune excution choix multiple (condition l quivalent d une switch en java). Chaque oprande dtient une condition de garde. Labsence de condition de garde implique une condition vraie (true). La condition else est vraie si aucune autre condition nest vraie. Exactement un oprande d t l condition est vraie est E t t d dont la diti t i t excut. Si plusieurs oprandes prennent la valeur vraie, le choix est non dterministe.
COO 2007/2008 2007/ 273

Un fragment combin de type loop possde un sousfragment et spcifie un compte minimum et maximum (boucle) ainsi quune condition de garde. La syntaxe de la boucle est la suivante : loop[ '('<minInt> [ ',' <maxInt> ] ')' ] La condition de garde est place entre crochets sur la ligne de vie La boucle est rpte au moins minInt fois avant vie. quune ventuelle condition de garde boolenne ne soit teste. Tant que la condition est vraie, la boucle continue, au plus maxInt fois fois.
COO 2007/2008 2007/ 274

Bouhlel Mohamed Salah

Bouhlel Mohamed Salah

Exemple
: Case Joueur dvoiler() alt [mine]
[numrote]

Sommaire
Voisines[i]: Case : Partie perdre() testGagner()

Introduction Analyse des besoins et diagramme de cas dutilisation Diagramme dactivit Diagramme de classe Diagramme de squence Diagramme de collaboration Diagramme dtat transition g

[vide] [ id ]

Loop (i=voisine)

Diagramme de composant Di Diagramme d d l i de dploiement t

dcouvrir()

Les nouveaut de UML 2.0 Prsentation des tudes de cas

Bouhlel Mohamed Salah

COO 2007/2008 2007/

275

Bouhlel Mohamed Salah

COO 2007/2008 2007/

276

Diagramme de Composant dploiement : Sommaire

Introduction
Les diagrammes de composants et les diagrammes de dploiement sont les deux derniers types de vues statiques en UML.

Diagramme de composant

Introduction Notion Exemple

Les premiers dcrivent le systme modlis sous forme de composants rutilisables et mettent en vidence leurs relations de dpendance. d d d
Les seconds se rapprochent encore plus de la ralit physique, puisquils identifient

Diagramme de dploiement

Introduction Notion Exemple


COO 2007/2008 2007/ 277

les lments matriels (PC, Modem, Station de travail, Serveur, ( , , , , etc.), leur disposition physique (connexions) et la disposition des excutables (reprsents par des composants) sur ces lments matriels.

Bouhlel Mohamed Salah

Bouhlel Mohamed Salah

COO 2007/2008

278

Introduction : La notion de composant


Dans le monde du btiment, le modle de l architecte (logique) permet de visualiser spcifier et documenter sur papier les caractristiques de la visualiser, future construction :

place des murs, des fentres, etc

Diagramme de composant (C Component di t diagram )

Lors de la construction, on utilise des composants fentres, portes, murs. Ce sont des choses physiques qui existent dans le monde rel.

Ils rendent des services mais dfinissent leurs exigences (taille, espace, etc.).

De mme, dans un systme informatique, le modle logique dans une application permet de visualiser, spcifier et documenter la structure et le comportement des entits qui collaborent. p q

La construction va sappuyer sur des composants qui existent dans le monde des ordinateurs : librairies fichiers tables documents excutables librairies, fichiers, tables, excutables, etc. Un composant dfinit les services qu'il rend et aussi les services dont il est en attente pour pouvoir fonctionner.

Bouhlel Mohamed Salah

COO 2007/2008 2007/

279

Bouhlel Mohamed Salah

COO 2007/2008

280

Introduction : pourquoi les composants


Parmi les facteurs qui concourent la qualit dun logiciel, il y a l notion d rutilisabilit ( t l tit d d l i i l t la ti de tili bilit (cest laptitude dun logiciel tre rutilis) en tout ou en partie, dans de nouvelles applications.

Introduction
La programmation par composants constitue une volution technologique soutenue par de nombreuses plateformes (composants EJB, CORBA, .Net, WSDL, . . .). Ce type de programmation met l ti t laccent sur l rutilisation d composant t la tili ti du t et lindpendance de son volution vis--vis des applications qui l tili i lutilisent. t

Or, la notion de classe, ne constitue pas une rponse adapte la problmatique de la rutilisation rutilisation.

Faible granularit Connexions figes

Pour faire face ce problme les notions de patrons et de problme, canevas dapplications ont perc dans les annes 1990 pour p p p g q ensuite laisser la place un concept plus gnrique et fdrateur : celui de composant.

La programmation oriente composant sintgre trs bien dans le contexte de la programmation oriente objet puisquil p g j p q ne sagit, finalement, que dun facteur dchelle. En effet, lutilisation de composants est assimilable une approche p pp objet, non pas au niveau du code, mais au niveau de larchitecture gnrale du logiciel.

Bouhlel Mohamed Salah COO 2007/2008 2007/ 282

Bouhlel Mohamed Salah

COO 2007/2008 2007/

281

Dfinition de composant
Un composant est une partie physique et remplaable dun systme qui sait faire et fournit la ralisation dun ensemble dinterfaces.

Notion de composant

Un composant doit fournir un service bien prcis.

Les fonctionnalits quil encapsule doivent tre cohrentes entre elles et gnriques (par opposition spcialises) puisque sa vocation est dtre rutilisable. Un composant est une unit autonome reprsente par un classeur structur, strotyp component, comportant une ou plusieurs interfaces requises ou offertes offertes.

Son comportement interne gnralement ralis par un interne, ensemble de classes, est totalement masqu : seules ses p p interfaces sont visibles. La seule contrainte pour pouvoir substituer un composant par un autre est de respecter les interfaces requises et offertes.

Bouhlel Mohamed Salah COO 2007/2008 283 Bouhlel Mohamed Salah COO 2007/2008 2007/ 284

Exemple de composant

Exemples de composant

Reprsentation classique dun composant et de ses interfaces requise (reprsent par un demi-cercle) et offerte (reprsente par un cercle) Reprsentation dun composant accompagne de la reprsentation explicite de ses interfaces requise et offerte.
Bouhlel Mohamed Salah COO 2007/2008 2007/ 285 Bouhlel Mohamed Salah COO 2007/2008 286

Exemples de composant

Notion de port
Un port est un point de connexion entre un classeur et son environnement.

Graphiquement, un port est reprsent par un petit carr cheval sur la bordure du contour du classeur On peut faire figurer le nom du port classeur. proximit de sa reprsentation.

Gnralement, un port est associ une interface requise ou offerte.

Parfois, Parfois il est reli directement un autre port situ sur la limite du composant englobant par une flche en trait plein, pouvant tre strotype delegate, et appele connecteur de dlgation.
Reprsentation classique dun composant et de ses interfaces requise (reprsent par un demi-cercle) et offerte (reprsente par un cercle)

Lutilisation des ports permet de modifier la structure interne dun classeur sans affecter les clients externes.

Bouhlel Mohamed Salah

COO 2007/2008 2007/

287

Bouhlel Mohamed Salah

COO 2007/2008 2007/

288

Exemple de composant

Diagramme de composant
La relation de dpendance est utilise dans les diagrammes de composants pour indiquer quun lment de limplmentation dun composant fait appel aux services offerts par l l les lments di l t dimplmentation d autre composant. t ti dun t t

Reprsentation dun composant et de ses interfaces requise et offerte avec la reprsentation explicite de leur port correspondant.

Lorsquun composant utilise linterface dun autre composant, on peut imbriquer le demi-cercle dune interface requise dans le cercle de linterface offerte correspondante.

Bouhlel Mohamed Salah

COO 2007/2008

289

Bouhlel Mohamed Salah

COO 2007/2008 2007/

290

Exemple de composant

Diagramme de dploiement ( Deployment diagram ) D l t di

Reprsentation de limplmentation dun composant l implmentation d un complexe contenant des sous-composants.


Bouhlel Mohamed Salah COO 2007/2008 2007/ 291 Bouhlel Mohamed Salah COO 2007/2008 292

Objectif du diagramme de dploiement


Un diagramme de dploiement dcrit la disposition physique des ressources matrielles qui composent le systme et montre la rpartition des composants sur ces matriels. matriels

Reprsentation des noeuds

Chaque ressource tant matrialise par un noeud, Ch t t t i li d le diagramme de dploiement prcise comment les composants sont rpartis sur les noeuds et quelles sont les connexions entre les composants ou les noeuds.

Noeud

Instance dun Noeud

Chaque ressource est matrialise par un noeud reprsent par un cube comportant un nom.

Les diagrammes de dploiement existent sous deux formes : spcification et instance.


Bouhlel Mohamed Salah COO 2007/2008 2007/ 293

Un noeud est un classeur et peut p p possder des attributs (quantit de mmoire, vitesse du processeur, . . .).

Bouhlel Mohamed Salah

COO 2007/2008 2007/

294

Relation Nud composant

Le diagramme de dploiement
Dans un diagramme de dploiement, les associations entre noeuds sont d d t des chemins d communication qui permettent h i de i ti i tt t lchange dinformations

Pour montrer quun composant est affect un noeud, il faut :


soit placer le composant dans le noeud, soit les relier par une relation de dpendance strotype support oriente du composant vers le noeud noeud.

Ce modle dfinit le diagramme de l'architecture matrielle du systme ou de l'application l application.


Il reprsente les diffrents processeurs priphriques et la processeurs, rpartition du systme sur ces diffrents lments.

Il montre les liens de communication entre ces diffrentes entits. entits

Bouhlel Mohamed Salah

COO 2007/2008 2007/

295

Bouhlel Mohamed Salah

COO 2007/2008 2007/

296

Exemple

Exemple

Bouhlel Mohamed Salah

COO 2007/2008

297

Bouhlel Mohamed Salah

COO 2007/2008 2007/

298

Exemple

Bouhlel Mohamed Salah

COO 2007/2008 2007/

299